  :root{
    /* ===== カラートークン ===== */
    --ocean-deep:#0B5E8C;     /* 見出し・濃い青 */
    --ocean-bright:#2AA8E0;   /* メインの明るい青 */
    --aqua-light:#A6EAF0;     /* 水色（背景・帯） */
    --foam-white:#FFFFFF;     /* 白 */
    --sand:#FFFFFF;           /* 背景色（白） */
    --sun-accent:#FFA94D;     /* 連絡ボックス用アクセント（オレンジ） */
    --sun-accent-deep:#FF8A33;
    --text-navy:#173A4E;      /* 本文の濃いネイビー */

    --font-display:'Zen Maru Gothic', sans-serif;
    --font-body:'Noto Sans JP', sans-serif;
  }

  *{ margin:0; padding:0; box-sizing:border-box; }

  html{ scroll-behavior:smooth; }

  /* ダークモード時も常に白背景・通常配色を維持 */
  @media (prefers-color-scheme: dark){
    html, body{ background:#FFFFFF !important; color:var(--text-navy) !important; }
    .hero, .section, .site-footer, .category-card, .sub-icon,
    .article-card, .article-card-body, .property-card, .property-name{
      background-color:#FFFFFF !important;
    }
    .section-title, .hero h1, .category-card h3, .article-card h5,
    .property-name, .logo-text{ color:var(--ocean-deep) !important; }
    .hero p, .article-card p{ color:#2E5B70 !important; }
  }

  html{ overflow-x:hidden; max-width:100%; }
  body{
    font-family:var(--font-body);
    color:var(--text-navy);
    background:var(--sand);
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    cursor:auto;
    overflow-x:hidden;
    max-width:100%;
  }

  img,svg{ display:block; }

  a{ color:inherit; text-decoration:none; }

  /* ============================================
     ヘッダー
  ============================================ */
  .site-header{
    position:sticky; top:0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 24px;
    background:rgba(255,255,255,0.85);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(42,168,224,0.15);
  }
  .logo{ display:flex; align-items:center; gap:10px; }
  .logo-text{
    font-family:var(--font-display);
    font-weight:900;
    font-size:1.05rem;
    color:var(--ocean-deep);
    line-height:1.2;
  }
  .logo-text small{
    display:block;
    font-family:var(--font-body);
    font-weight:500;
    font-size:0.65rem;
    color:var(--ocean-bright);
    letter-spacing:0.05em;
  }
  .header-nav{ display:flex; gap:22px; font-weight:700; font-size:0.9rem; }
  .header-nav a{ color:var(--ocean-deep); }
  @media (max-width:768px){
    .header-nav{ display:none; }
  }

  /* ============================================
     ヒーロー（波・太陽・イルカ・かもめイラスト）
  ============================================ */
  .hero{
    position:relative;
    overflow:hidden;
    background:#FFFFFF;
    padding:30px 24px 24px;
    text-align:center;
  }

  /* 浮かぶ泡（バブル） */
  .bubble{
    position:absolute;
    border-radius:50%;
    background:rgba(166,234,240,0.7);
    border:1px solid rgba(42,168,224,0.25);
    animation:floatUp 9s ease-in infinite;
  }
  @keyframes floatUp{
    0%{ transform:translateY(0) scale(1); opacity:0; }
    15%{ opacity:0.8; }
    100%{ transform:translateY(-340px) scale(1.3); opacity:0; }
  }

  .hero-inner{ position:relative; z-index:2; max-width:760px; margin:0 auto; top:-70px; }

  .hero-eyebrow{
    display:inline-block;
    font-size:0.78rem; font-weight:700; letter-spacing:0.12em;
    color:var(--ocean-deep);
    background:var(--aqua-light);
    border-radius:999px;
    padding:6px 18px;
    margin-bottom:18px;
    margin-top:6px;
  }

  .hero h1{
    font-family:var(--font-display);
    font-weight:900;
    font-size:clamp(1.32rem, 6.2vw, 3.4rem);
    color:var(--ocean-deep);
    line-height:1.35;
    letter-spacing:0.01em;
    white-space:nowrap;
  }
  .hero h1 .hl{
    display:inline-block;
    background:rgba(255,255,255,0.94);
    border-radius:7px;
    padding:2px 12px;
    box-decoration-break:clone;
    -webkit-box-decoration-break:clone;
    box-shadow:0 1px 4px rgba(0,0,0,0.08);
  }
  @media(max-width:400px){
    .hero{ padding-left:16px; padding-right:16px; }
    .hero h1{ font-size:5.6vw; letter-spacing:0; }
  }
  @media(max-width:340px){
    .hero h1{ font-size:5.2vw; }
  }
  .hero h1 .accent{
    color:var(--ocean-bright);
    position:relative;
  }

  .hero p{
    margin-top:18px;
    font-size:clamp(0.95rem, 2.4vw, 1.15rem);
    color:#2E5B70;
    font-weight:500;
  }
  .hero p .hl{
    display:inline-block;
    background:rgba(255,255,255,0.85);
    border-radius:6px;
    padding:1px 10px;
    box-decoration-break:clone;
    -webkit-box-decoration-break:clone;
  }

  .hero-cta{
    display:inline-flex; align-items:center; gap:8px;
    margin-top:30px;
    padding:16px 38px;
    border-radius:999px;
    font-family:var(--font-display);
    font-weight:700;
    font-size:1rem;
    color:#fff;
    background:linear-gradient(135deg, var(--ocean-bright), var(--ocean-deep));
    box-shadow:0 10px 24px -8px rgba(11,94,140,0.55);
    transition:transform .2s ease;
  }
  .hero-cta:hover{ transform:translateY(-2px); }

  /* ヒーロー画像（東京湾岸イラスト） */
  .hero-slides-wrap-old{
    position:relative;
    width:100%;
    margin-top:48px;
    overflow:hidden;
    border-radius:24px 24px 0 0;
    line-height:0;
  }
  .hero-slides-wrap-old img{
    width:100%;
    height:auto;
    display:block;
  }

  /* 左から右へのみ流れる波のオーバーレイ（速度はJSでランダム化） */
  .wave-overlay{
    position:absolute;
    left:0;
    width:200%;
    animation:waveScrollLTR 14s linear infinite;
    pointer-events:none;
  }
  .wave-overlay.wave-bottom{ bottom:-1px; height:22%; }
  .wave-overlay.wave-surface{ top:64%; height:13%; opacity:0.18; }

  @keyframes waveScrollLTR{
    0%   { transform:translateX(-50%); }
    100% { transform:translateX(0%); }
  }

  @media (max-width:768px){
    .wave-overlay.wave-bottom{ height:18%; }
    .wave-overlay.wave-surface{ top:62%; height:11%; }
  }

  @media (prefers-reduced-motion: reduce){
    .wave-overlay{ animation:none !important; }
  }

  /* ============================================
     セクション共通
  ============================================ */
  .section{ padding:64px 24px; max-width:1080px; margin:0 auto; }
  .section-head{ text-align:center; margin-bottom:40px; }
  .section-eyebrow{
    font-family:var(--font-display);
    font-weight:700;
    font-size:0.8rem;
    letter-spacing:0.2em;
    color:var(--ocean-bright);
    text-transform:uppercase;
  }
  .section-title{
    font-family:var(--font-display);
    font-weight:900;
    font-size:clamp(1.5rem, 4vw, 2.1rem);
    color:var(--ocean-deep);
    margin-top:8px;
  }

  /* ============================================
     分岐アイコン（賃貸 / 売買）
  ============================================ */
  .category-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
  }
  @media (max-width:768px){
    .category-grid{ gap:12px; max-width:480px; margin:0 auto; }
  }

  .category-card{
    background:var(--foam-white);
    border-radius:24px;
    padding:28px 24px;
    box-shadow:0 12px 30px -16px rgba(11,94,140,0.35);
    border:1px solid rgba(166,234,240,0.6);
  }
  @media (max-width:768px){
    .category-card{ padding:16px 12px; border-radius:18px; }
  }
  .category-card h3{
    font-family:var(--font-display);
    font-weight:900;
    font-size:1.5rem;
    color:var(--ocean-deep);
    display:flex; align-items:center; gap:10px;
    margin-bottom:18px;
    letter-spacing:0.02em;
  }
  @media (max-width:768px){
    .category-card h3{ font-size:1.1rem; margin-bottom:10px; gap:6px; }
  }
  .category-card h3 .tag-dot{
    width:10px; height:10px; border-radius:50%;
    background:var(--ocean-bright);
    display:inline-block;
  }

  .sub-icon-row{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:12px;
  }
  @media (max-width:768px){
    .sub-icon-row{ grid-template-columns:1fr; gap:8px; }
  }

  .sub-icon{
    display:flex; flex-direction:column; align-items:center; gap:10px;
    text-align:center;
    padding:18px 8px;
    border-radius:16px;
    background:linear-gradient(160deg, var(--aqua-light) 0%, #ffffff 70%);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  @media (max-width:768px){
    .sub-icon{
      flex-direction:row; justify-content:flex-start; text-align:left;
      padding:10px 12px; gap:10px;
    }
    .sub-icon svg{ width:28px; height:28px; flex-shrink:0; }
    .sub-icon span{ font-size:0.72rem; }
  }
  .sub-icon:hover{
    transform:translateY(-4px);
    box-shadow:0 10px 18px -10px rgba(42,168,224,0.5);
  }
  .sub-icon svg{ width:40px; height:40px; }
  .sub-icon span{
    font-size:0.78rem;
    font-weight:700;
    color:var(--text-navy);
    line-height:1.3;
  }

  /* ============================================
     物件写真 左右2列レイアウト
  ============================================ */
  .property-split{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    max-width:900px;
    margin:0 auto;
  }
  @media(max-width:640px){
    .property-split{ grid-template-columns:1fr 1fr; gap:10px; }
    .property-col-label{ font-size:1rem; }
    .property-photo{ height:75px; }
    .property-photo svg{ width:26px; height:26px; }
    .property-photo span{ font-size:0.58rem; }
    .property-name{ font-size:0.72rem; padding:8px 10px 10px; }
    .property-tag{ font-size:0.55rem; padding:2px 7px; }
  }
  .property-col{ display:flex; flex-direction:column; gap:14px; }
  .property-col-label{
    font-family:var(--font-display);
    font-weight:900;
    font-size:1.3rem;
    color:var(--ocean-deep);
    padding:6px 0 6px 12px;
    border-left:5px solid var(--ocean-bright);
  }
  .property-col-label span{
    font-size:0.75rem; font-weight:500;
    color:var(--ocean-bright); display:block;
  }
  .property-col-label.buy{ border-color:var(--sun-accent); color:var(--text-navy); }
  .property-col-label.buy span{ color:var(--sun-accent); }

  .property-card{
    background:var(--foam-white);
    border-radius:16px;
    overflow:hidden;
    border:1px solid rgba(166,234,240,0.6);
    box-shadow:0 8px 20px -14px rgba(11,94,140,0.28);
  }
  .property-photo{
    height:100px;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
    background:repeating-linear-gradient(135deg,#EFF6F8 0,#EFF6F8 14px,#E4EEF1 14px,#E4EEF1 28px);
    color:#8FA9B4;
  }
  .lease-photo{ background:repeating-linear-gradient(135deg,#EEF8FF 0,#EEF8FF 14px,#E0F0F8 14px,#E0F0F8 28px); }
  .buy-photo  { background:repeating-linear-gradient(135deg,#FFF6EE 0,#FFF6EE 14px,#FAE8D4 14px,#FAE8D4 28px); }
  .property-photo svg{ width:36px; height:36px; }
  .property-photo span{ font-size:0.68rem; font-weight:700; letter-spacing:0.04em; color:#8FA9B4; }
  .property-name{
    padding:10px 14px 12px;
    font-size:0.85rem; font-weight:700; color:var(--text-navy);
  }
  .property-tag{
    display:inline-block; margin-top:4px;
    font-size:0.65rem; font-weight:700;
    background:var(--aqua-light); color:var(--ocean-deep);
    border-radius:999px; padding:2px 10px;
  }
  .buy-tag{ background:#FFE3C2; color:var(--sun-accent-deep); }
  .property-note{ text-align:center; font-size:0.75rem; color:#7A99A6; margin-top:18px; }

  /* ============================================
     全画面バブルアニメーション
  ============================================ */
  #bubble-layer{
    position:fixed; inset:0;
    pointer-events:none; z-index:-1;
    overflow:hidden;
  }
  /* 全コンテンツをバブルより上に */
  .site-header,.hero,.section,footer,.contact-rail{
    position:relative; z-index:1;
  }
  .contact-rail{ z-index:60; }
  .gbbl{
    position:absolute;
    border-radius:50%;
    background:radial-gradient(circle at 35% 35%, rgba(255,255,255,0.9), rgba(166,234,240,0.35));
    border:1px solid rgba(42,168,224,0.18);
    animation:gbblRise linear infinite;
    bottom:-60px;
  }
  @keyframes gbblRise{
    0%  { transform:translateY(0) scale(1);   opacity:0; }
    10% { opacity:1; }
    90% { opacity:0.7; }
    100%{ transform:translateY(-105vh) scale(1.15); opacity:0; }
  }

  /* ============================================
     タッチエフェクト（スマホ）
  ============================================ */
  .touch-icon{
    position:fixed;
    pointer-events:none;
    z-index:9999;
    animation:touchPop 1.1s ease-out forwards;
  }
  @keyframes touchPop{
    0%  { transform:translate(-50%,-50%) scale(0.4) rotate(-10deg); opacity:1; }
    60% { transform:translate(-50%,-120%) scale(1.1) rotate(8deg); opacity:1; }
    100%{ transform:translate(-50%,-180%) scale(0.9) rotate(0deg); opacity:0; }
  }

  /* ============================================
     ヒーロースライドシステム（昼・夕方・夜・朝）
  ============================================ */
  /* ヒーロースライドCSS削除済み */

  /* 時間帯カラーオーバーレイ */
  .hslide-tint{
    position:absolute; inset:0; pointer-events:none; z-index:2;
  }

  /* スライドラベル（時刻バッジ） */
  .hslide-label{
    position:absolute; top:14px; right:18px; z-index:10;
    font-family:var(--font-display); font-weight:700; font-size:0.72rem;
    letter-spacing:0.1em; color:#fff;
    background:rgba(0,0,0,0.3); backdrop-filter:blur(4px);
    border-radius:999px; padding:4px 12px;
  }

  /* ============================================
     ヒーローアニメーション共通
  ============================================ */
  .hero-anim-layer{
    position:absolute; inset:0;
    pointer-events:none; overflow:hidden; z-index:3;
  }
  .anim-obj{ position:absolute; }

  /* かもめ：左から右へ、羽ばたきはCSSアニメーション */
  @keyframes gullFly{
    0%  { transform:translateX(-120px) translateY(0); }
    50% { transform:translateX(calc(50vw)) translateY(-22px); }
    100%{ transform:translateX(calc(115vw)) translateY(6px); }
  }
  /* かもめ羽ばたき（左翼・右翼それぞれCSS d-property） */
  @keyframes flapL{
    0%,100%{ d:path("M27 16 Q16 4 2 8"); }
    50%    { d:path("M27 16 Q16 26 2 22"); }
  }
  @keyframes flapR{
    0%,100%{ d:path("M27 16 Q38 4 52 8"); }
    50%    { d:path("M27 16 Q38 26 52 22"); }
  }
  .wing-l{ animation:flapL 0.9s ease-in-out infinite; }
  .wing-r{ animation:flapR 0.9s ease-in-out infinite; }

  /* 船（左から右へ） */
  @keyframes shipSail{
    0%  { transform:translateX(-100px); }
    100%{ transform:translateX(calc(110vw)); }
  }
  /* 飛行機（左から右へ、ジャンボ） */
  @keyframes planeFly{
    0%  { transform:translateX(-200px) translateY(0); }
    100%{ transform:translateX(calc(115vw)) translateY(-10px); }
  }
  /* 魚：常に頭を右（進行方向）に向けてLTR移動 */
  @keyframes fishLTR{
    0%   { transform:translateX(-80px) translateY(0); opacity:0; }
    5%   { opacity:1; }
    95%  { opacity:1; }
    100% { transform:translateX(calc(110vw)) translateY(8px); opacity:0; }
  }
  /* 夜景専用：星のきらめき */
  /* SVGフィルター（太陽・月グロウ）*/
  .sun-svg filter { }

  @keyframes starTwinkle{
    0%,100%{ opacity:0.3; transform:scale(0.8); }
    50%    { opacity:1;   transform:scale(1.2); }
  }

  /* ============================================
     デモ記事カード
  ============================================ */
  .article-tabs-label{
    display:flex; gap:10px; justify-content:center; margin-bottom:28px; flex-wrap:wrap;
  }
  .article-tabs-label span{
    font-family:var(--font-display);
    font-weight:700;
    font-size:0.85rem;
    color:var(--ocean-deep);
    background:var(--aqua-light);
    border-radius:999px;
    padding:6px 18px;
  }

  .article-group{ margin-bottom:36px; }
  .article-group h4{
    font-family:var(--font-display);
    font-weight:700;
    font-size:1.05rem;
    color:var(--ocean-deep);
    margin-bottom:16px;
    padding-left:14px;
    border-left:5px solid var(--ocean-bright);
  }

  .article-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:20px;
    align-items:stretch; /* 高さを揃える */
  }
  .article-grid .article-card{
    display:flex; flex-direction:column; height:100%;
  }
  .article-grid .article-card-body{
    flex:1; display:flex; flex-direction:column; justify-content:space-between;
  }
  @media (max-width:900px){
    .article-grid{ grid-template-columns:1fr; }
  }

  /* スマホ：賃貸（左）・売買（右）を中央から左右に配置 */
  @media (max-width:768px){
    .articles-wrapper{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:14px;
      align-items:start;
      max-width:560px;
      margin:0 auto;
    }
    .article-group{ margin-bottom:0; }
    .article-group h4{
      font-size:0.85rem;
      padding-left:8px;
      border-left-width:4px;
      margin-bottom:10px;
    }
    .article-grid{ grid-template-columns:1fr; gap:12px; }
    .article-thumb{ height:80px; }
    .article-thumb svg{ width:32px; height:32px; }
    .article-card-body{ padding:10px 12px 14px; }
    .article-card h5{ font-size:0.78rem; margin-bottom:4px; }
    .article-card p{ font-size:0.68rem; }
    .article-card-cat{ font-size:0.62rem; }
  }

  .article-card{
    background:var(--foam-white);
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 24px -16px rgba(11,94,140,0.35);
    border:1px solid rgba(166,234,240,0.6);
    display:flex; flex-direction:column;
  }
  .article-thumb{
    height:120px;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg, var(--aqua-light), var(--ocean-bright));
  }
  .article-thumb svg{ width:48px; height:48px; }
  .article-card-body{ padding:16px 18px 20px; }
  .article-card-cat{
    font-size:0.7rem; font-weight:700; color:var(--ocean-bright);
    letter-spacing:0.05em; margin-bottom:6px;
  }
  .article-card h5{
    font-size:0.92rem; font-weight:700; color:var(--text-navy);
    margin-bottom:8px; line-height:1.5;
  }
  .article-card p{ font-size:0.78rem; color:#5C7E8F; }

  /* ============================================
     フッター
  ============================================ */
  .site-footer{
    background:#FFFFFF;
    color:var(--text-navy);
    text-align:center;
    padding:36px 24px 90px;
    border-top:1px solid rgba(42,168,224,0.2);
    font-size:0.8rem;
  }
  .site-footer .logo-text, .site-footer .logo-text small{ color:var(--ocean-deep); }
  .site-footer-inner{ display:flex; flex-direction:column; align-items:center; gap:10px; }

  /* ============================================
     連絡ボックス（光沢仕様）
     PC：右側に縦並びで固定 / スマホ：下部に横並びで固定
  ============================================ */
  .contact-rail{
    position:fixed;
    z-index:60;
  }

  /* --- 光沢ボタン共通スタイル --- */
  .glossy-btn{
    position:relative;
    overflow:hidden;
    display:flex; align-items:center; gap:10px;
    background:linear-gradient(180deg, var(--sun-accent) 0%, var(--sun-accent-deep) 100%);
    color:#fff;
    border-radius:16px;
    box-shadow:0 8px 20px -6px rgba(255,138,51,0.6), inset 0 1px 0 rgba(255,255,255,0.5);
    font-weight:700;
  }
  /* 光の反射（リフレクト）演出：斜め45度の帯が左から右へのみ流れる（大中小3つ） */
  .glossy-btn .shine{
    position:absolute;
    top:-50%; left:-100%;
    height:200%;
    background:linear-gradient(45deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.22) 50%, rgba(255,255,255,0) 100%);
    pointer-events:none;
  }
  .glossy-btn .shine.large{  width:90%; opacity:0.3; animation:shineLTR 8.6s linear infinite; }
  .glossy-btn .shine.medium{ width:55%; opacity:0.18; animation:shineLTR 7.2s linear infinite; animation-delay:1.4s; }
  .glossy-btn .shine.small{  width:28%; opacity:0.4; animation:shineLTR 6.0s linear infinite; animation-delay:2.8s; }

  @keyframes shineLTR{
    0%   { left:-100%; }
    100% { left:100%; }
  }
  .glossy-btn svg{ flex-shrink:0; }

  /* --- PC版：右側固定の縦ボックス --- */
  .contact-rail.desktop{
    top:50%; right:18px;
    transform:translateY(-50%);
    display:flex; flex-direction:column; gap:14px;
  }
  .contact-rail.desktop .glossy-btn{
    flex-direction:column;
    width:84px; height:84px;
    justify-content:center;
    font-size:0.7rem;
    padding:8px;
  }
  .contact-rail.desktop .glossy-btn svg{ width:28px; height:28px; }

  /* ====== 連絡ボタン列：QRコード（LINEボタンの直下） ====== */
  .glossy-qr-box{
    width:84px; height:84px;
    border-radius:16px;
    background:linear-gradient(180deg, var(--sun-accent) 0%, var(--sun-accent-deep) 100%);
    box-shadow:0 8px 20px -6px rgba(255,138,51,0.6), inset 0 1px 0 rgba(255,255,255,0.5);
    display:flex;align-items:center;justify-content:center;
    padding:5px;box-sizing:border-box;
  }
  .glossy-qr-box img{
    width:100%;height:100%;object-fit:contain;
    border-radius:8px;background:#fff;padding:2px;box-sizing:border-box;
  }

  @media (max-width:768px){
    .contact-rail.desktop{ display:none; }
  }

  /* --- スマホ版：下部固定の横バー --- */
  .contact-rail.mobile{
    display:none;
    left:0; right:0; bottom:0;
    background:rgba(255,255,255,0.9);
    backdrop-filter:blur(6px);
    padding:10px 14px;
    border-top:1px solid rgba(42,168,224,0.2);
    gap:10px;
  }
  .contact-rail.mobile .glossy-btn{
    flex:1;
    flex-direction:column;
    justify-content:center;
    padding:10px 4px;
    font-size:0.68rem;
  }
  .contact-rail.mobile .glossy-btn svg{ width:24px; height:24px; }

  @media (max-width:768px){
    .contact-rail.mobile{ display:flex; }
  }

  /* ============================================
     下部スライダー：昼・夕方・夜景
  ============================================ */
  .bottom-slider-section{
    position:relative;
    background:#000;
    margin-top:0;
    padding-bottom:0; /* コールボタン直下に密着 */
  }

  /* コールボタン3つ */
  .bottom-call-btns{
    display:flex;
    gap:0;
    position:relative;
    z-index:10;
    border-top:1px solid rgba(255,255,255,0.15);
  }
  .call-btn{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:18px 12px;
    text-decoration:none;
    color:white;
    font-family:var(--font-display);
    font-weight:700;
    font-size:1rem;
    transition:filter .2s;
    position:relative;
    overflow:hidden;
  }
  /* call-btn::after - 波アニメーション削除済み */
  .call-btn:hover{ filter:brightness(1.15); }
  .call-tel { background:linear-gradient(135deg,#0B5E8C,#2AA8E0); }
  .call-mail{ background:linear-gradient(135deg,#1A7A6E,#2EC4B6); }
  .call-line{ background:linear-gradient(135deg,#06C755,#00A040); }
  .call-consult{ background:linear-gradient(135deg,#F59E0B,#EF4444); }
  .call-btn svg{ width:28px; height:28px; flex-shrink:0; }
  .call-btn span{ display:flex; flex-direction:column; line-height:1.3; }
  .call-btn small{ font-size:0.65rem; font-weight:400; opacity:0.88; }
  .call-disclaimer{ text-align:center; font-size:0.66rem; color:rgba(255,255,255,0.55); padding:8px 14px 10px; background:rgba(0,0,0,0.15); margin:0; }
  @media(max-width:768px){
    .call-btn{ padding:14px 8px; font-size:0.82rem; gap:6px; }
    .call-btn svg{ width:22px; height:22px; }
    .call-btn small{ font-size:0.58rem; }
    /* スマホは画面下固定バー（contact-rail.mobile）と役割が被るため
       bottom-call-btnsを少し透明感ある大きめに調整 */
    .bottom-call-btns{ padding-bottom:env(safe-area-inset-bottom,0); }
  }

  /* スライダー本体 */
  .time-slider{
    position:relative;
    width:100%;
    overflow:hidden;
    background:#000;
  }
  .tslide{
    position:absolute; inset:0;
    opacity:0;
    transition:opacity 1.4s ease-in-out;
  }
  .tslide.active{
    position:relative;
    opacity:1;
  }
  .tslide img{
    width:100%;
    height:auto;
    display:block;
    max-height:65vh;
    object-fit:cover;
  }

  /* キャプション */
  .tslide-caption{
    position:absolute;
    left:0; right:0; bottom:0;
    padding:40px 40px 70px;
    background:linear-gradient(0deg,rgba(0,0,0,0.72) 0%,rgba(0,0,0,0) 100%);
    color:white;
  }
  .tslide-time{
    display:inline-block;
    font-size:0.75rem; font-weight:700; letter-spacing:0.15em;
    background:rgba(255,255,255,0.2); backdrop-filter:blur(4px);
    border-radius:999px; padding:4px 14px; margin-bottom:12px;
  }
  .tslide-caption h3{
    font-family:var(--font-display);
    font-size:clamp(1.2rem,3vw,1.8rem);
    font-weight:900; line-height:1.4;
    margin-bottom:8px;
  }
  .tslide-caption p{
    font-size:clamp(0.8rem,1.8vw,0.95rem);
    opacity:0.88; line-height:1.7;
  }
  @media(max-width:768px){
    .tslide-caption{ padding:24px 20px 60px; }
  }

  /* ナビゲーションドット */
  .tslide-dots{
    position:absolute; bottom:16px; left:50%;
    transform:translateX(-50%);
    display:flex; gap:8px; z-index:10;
  }
  .tdot{
    width:10px; height:10px; border-radius:50%;
    background:rgba(255,255,255,0.45);
    border:none; cursor:pointer;
    transition:background .3s, transform .3s;
  }
  .tdot.active{
    background:white;
    transform:scale(1.3);
  }

  /* 左右矢印 */
  .tslide-arrow{
    position:absolute; top:38%; transform:translateY(-50%);
    background:rgba(255,255,255,0.2); backdrop-filter:blur(4px);
    border:1px solid rgba(255,255,255,0.3);
    color:white; font-size:2rem; line-height:1;
    width:44px; height:44px; border-radius:50%;
    cursor:pointer; z-index:10;
    transition:background .2s;
    display:flex; align-items:center; justify-content:center;
  }
  .tslide-arrow:hover{ background:rgba(255,255,255,0.4); }
  .tslide-prev{ left:10px; }
  .tslide-next{ right:10px; }
  @media(max-width:480px){
    .tslide-arrow{ width:32px; height:32px; font-size:1.2rem; top:30%; }
    .tslide-caption{ padding:18px 52px 55px; } /* 矢印幅分のpaddingを確保 */
    .tslide-caption h3{ font-size:1rem; }
    .tslide-caption p{ font-size:0.72rem; }
  }

  /* tslide-label-bar 削除済み */


  /* ====== クイズセクション（スマホファースト） ====== */
  .quiz-strip{
    background:#fff;
    padding:24px 14px 20px;
    border-top:1px solid rgba(42,168,224,0.15);
  }
  .quiz-strip-head{
    text-align:center;
    margin-bottom:16px;
  }
  .quiz-strip-eyebrow{
    font-size:0.68rem; font-weight:700; letter-spacing:0.18em;
    color:var(--ocean-bright); display:block; margin-bottom:4px;
  }
  .quiz-strip-title{
    font-family:var(--font-display); font-weight:900;
    font-size:1.15rem; color:var(--ocean-deep);
  }

  /* 2列グリッド：スマホでも2列（コンパクト） */
  .quiz-strip-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    width:100%;
    box-sizing:border-box;
  }

  .quiz-strip-col{
    background:linear-gradient(160deg,#EAF8FF 0%,#F8FCFF 100%);
    border:1.5px solid rgba(42,168,224,0.2);
    border-radius:14px;
    padding:12px 10px;
    min-width:0;
    box-sizing:border-box;
  }
  .quiz-strip-col.sell{
    background:linear-gradient(160deg,#FFF8EE 0%,#FFFCF8 100%);
    border-color:rgba(255,169,77,0.25);
  }

  .quiz-strip-col-title{
    font-family:var(--font-display); font-weight:900;
    font-size:0.88rem; color:var(--ocean-deep);
    display:flex; align-items:center; gap:5px;
    margin-bottom:8px; padding-bottom:8px;
    border-bottom:1px solid rgba(42,168,224,0.15);
  }
  .quiz-strip-col.sell .quiz-strip-col-title{ color:var(--text-navy); }
  .quiz-strip-col.sell .quiz-strip-col-title small{ color:var(--sun-accent); }
  .quiz-qdot{
    width:7px; height:7px; border-radius:50%;
    background:var(--ocean-bright); flex-shrink:0;
  }
  .quiz-strip-col.sell .quiz-qdot{ background:var(--sun-accent); }
  .quiz-strip-col-title small{
    font-size:0.6rem; font-weight:500; color:var(--ocean-bright);
  }

  /* クイズボタン */
  .quiz-strip-btn{
    display:flex; align-items:center; gap:7px;
    width:100%; padding:9px 8px;
    background:rgba(255,255,255,0.8);
    border:1px solid rgba(42,168,224,0.15);
    border-radius:9px; cursor:pointer;
    margin-bottom:6px; box-sizing:border-box;
    min-width:0; transition:background .15s;
  }
  .quiz-strip-btn:last-child{ margin-bottom:0; }
  .quiz-strip-col.sell .quiz-strip-btn{
    border-color:rgba(255,169,77,0.2);
  }
  .quiz-strip-btn:active{ background:rgba(42,168,224,0.1); }
  .quiz-strip-col.sell .quiz-strip-btn:active{ background:rgba(255,169,77,0.1); }

  .quiz-strip-btn-icon{
    width:26px; height:26px; border-radius:7px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    background:rgba(42,168,224,0.12);
  }
  .quiz-strip-col.sell .quiz-strip-btn-icon{ background:rgba(255,169,77,0.12); }
  .quiz-strip-btn-icon svg{ width:16px; height:16px; }

  .quiz-strip-btn-label{
    font-family:var(--font-display); font-weight:700;
    font-size:0.75rem; color:var(--text-navy);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    flex:1; min-width:0; text-align:left;
  }
  .quiz-strip-btn-arr{
    font-size:0.8rem; color:#B0C8D8; flex-shrink:0;
  }

  /* クイズモーダル */
  .qm-overlay{
    display:none; position:fixed; inset:0;
    background:rgba(5,20,60,0.72); backdrop-filter:blur(6px);
    z-index:9998; align-items:flex-end; justify-content:center;
    padding:0;
  }
  .qm-overlay.open{ display:flex; }
  .qm-modal{
    background:#fff;
    width:100%; max-width:540px;
    max-height:92vh; overflow-y:auto;
    border-radius:22px 22px 0 0;
    box-shadow:0 -8px 40px rgba(11,94,140,0.25);
    animation:qmSlideUp .28s ease;
  }
  @keyframes qmSlideUp{
    from{ transform:translateY(100%); }
    to{ transform:translateY(0); }
  }
  .qm-header{
    position:sticky; top:0; background:#fff;
    padding:14px 18px 12px;
    border-bottom:1px solid rgba(166,234,240,0.4);
    display:flex; align-items:center; justify-content:space-between;
    border-radius:22px 22px 0 0; z-index:2;
  }
  .qm-title{ font-family:var(--font-display); font-weight:900; font-size:0.95rem; color:var(--ocean-deep); }
  .qm-close{ background:none; border:none; font-size:1.4rem; color:#A0B8C4; cursor:pointer; padding:2px 6px; }

  .qm-progress-wrap{ padding:10px 18px 0; }
  .qm-prog-info{ display:flex; justify-content:space-between; font-size:0.72rem; color:#8FA9B4; font-weight:600; margin-bottom:4px; }
  .qm-prog-bar{ height:4px; background:#E8F4F8; border-radius:999px; overflow:hidden; }
  .qm-prog-fill{ height:100%; background:linear-gradient(90deg,var(--ocean-bright),var(--ocean-deep)); border-radius:999px; transition:width .4s ease; }

  .qm-body{ padding:16px 18px 20px; }
  .qm-question{
    font-family:var(--font-display); font-weight:700;
    font-size:0.98rem; color:var(--text-navy);
    line-height:1.7; margin-bottom:16px; min-height:50px;
  }
  .qm-choices{ display:flex; flex-direction:column; gap:8px; }
  .qm-choice{
    padding:11px 14px; border-radius:11px;
    border:1.5px solid #E0EEF4; background:#F8FCFF;
    font-size:0.88rem; font-weight:600; color:var(--text-navy);
    cursor:pointer; text-align:left; transition:all .14s; line-height:1.5;
  }
  .qm-choice:active{ background:#EAF7FF; border-color:var(--ocean-bright); }
  .qm-choice.correct{ border-color:#22C55E; background:#F0FFF4; color:#166534; }
  .qm-choice.wrong  { border-color:#EF4444; background:#FFF5F5; color:#991B1B; }
  .qm-choice:disabled{ cursor:default; }

  .qm-exp{
    margin-top:12px; padding:11px 14px;
    background:linear-gradient(135deg,#EAF8FF,#F0FAFF);
    border-radius:10px; border-left:4px solid var(--ocean-bright);
    font-size:0.8rem; color:var(--text-navy); line-height:1.7; display:none;
  }
  .qm-exp.show{ display:block; }
  .qm-next{
    margin-top:14px; width:100%; padding:12px;
    background:linear-gradient(135deg,var(--ocean-bright),var(--ocean-deep));
    color:#fff; border:none; border-radius:12px;
    font-family:var(--font-display); font-weight:700; font-size:0.95rem;
    cursor:pointer; display:none;
  }
  .qm-next.show{ display:block; }

  .qm-result{ display:none; text-align:center; padding:8px 0 12px; }
  .qm-result.show{ display:block; }
  .qm-score-ring{
    width:110px; height:110px; border-radius:50%; margin:0 auto 12px;
    background:conic-gradient(var(--ocean-bright) var(--pct,0%), #E8F4F8 0);
    display:flex; align-items:center; justify-content:center;
  }
  .qm-score-inner{ width:82px; height:82px; border-radius:50%; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; }
  .qm-score-num{ font-family:var(--font-display); font-weight:900; font-size:1.5rem; color:var(--ocean-deep); line-height:1; }
  .qm-score-of{ font-size:0.65rem; color:#8FA9B4; }
  .qm-result-msg{ font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--ocean-deep); margin-bottom:5px; }
  .qm-result-sub{ font-size:0.8rem; color:#5C7E8F; margin-bottom:16px; }
  .qm-retry{ padding:10px 26px; background:linear-gradient(135deg,var(--ocean-bright),var(--ocean-deep)); color:#fff; border:none; border-radius:999px; font-family:var(--font-display); font-weight:700; font-size:0.9rem; cursor:pointer; margin-right:8px; }
  .qm-close-r{ padding:10px 18px; background:#F0F4F8; color:#5C7E8F; border:none; border-radius:999px; font-weight:700; cursor:pointer; }


  .area-quiz-strip{background:linear-gradient(135deg,#F0FFF4 0%,#E0F7FA 50%,#FFF8E1 100%);padding:22px 14px 18px;border-top:1px solid rgba(0,0,0,0.07);}
  .area-quiz-head{text-align:center;margin-bottom:14px;}
  .area-quiz-eyebrow{display:inline-block;font-size:0.68rem;font-weight:700;letter-spacing:0.18em;color:#0B5E8C;background:rgba(42,168,224,0.12);border-radius:999px;padding:4px 12px;margin-bottom:5px;}
  .area-quiz-ttl{font-family:var(--font-display);font-weight:900;font-size:1.05rem;color:#0B3060;}
  .area-quiz-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;}
  .area-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 6px;border-radius:14px;border:none;cursor:pointer;gap:5px;min-height:82px;transition:transform .14s,box-shadow .14s;}
  .area-btn:active{transform:scale(0.95);}
  .ab-sg{background:linear-gradient(145deg,#FF8C42,#FF6B35);box-shadow:0 4px 14px rgba(255,107,53,.35);}
  .ab-ss{background:linear-gradient(145deg,#00D4E8,#00B4CC);box-shadow:0 4px 14px rgba(0,180,204,.35);}
  .ab-am{background:linear-gradient(145deg,#4ADE80,#22C55E);box-shadow:0 4px 14px rgba(34,197,94,.35);}
  .area-btn-ico{font-size:1.5rem;line-height:1;}
  .area-btn-lbl{font-family:var(--font-display);font-weight:800;font-size:0.7rem;color:#fff;text-align:center;line-height:1.35;text-shadow:0 1px 2px rgba(0,0,0,.2);}
  .area-btn-sub{font-size:0.6rem;color:rgba(255,255,255,.85);font-weight:600;}

  /* ====== 宅建チャレンジ エントリーボタン ====== */
  .tk-entry-strip{
    background:linear-gradient(135deg,#1A1A2E,#16213E,#0F3460);
    padding:16px 14px 18px;
  }
  .tk-entry-btn{
    display:flex;align-items:center;gap:12px;
    width:100%;padding:14px 16px;
    background:rgba(34,197,94,0.1);
    border:1.5px solid rgba(34,197,94,0.3);
    border-radius:14px;cursor:pointer;
    transition:background .15s;text-align:left;
  }
  .tk-entry-btn:active{background:rgba(34,197,94,0.2);}
  .tk-entry-icon{font-size:1.5rem;flex-shrink:0;}
  .tk-entry-text{flex:1;min-width:0;}
  .tk-entry-label{font-family:var(--font-display);font-weight:800;font-size:0.92rem;color:#1a56a0;display:block;}
  .tk-kokka-badge{
    display:inline-block;background:#E53935;color:#fff;
    font-size:0.72rem;font-weight:900;padding:2px 8px;
    border-radius:5px;margin-right:6px;letter-spacing:0.02em;
    vertical-align:middle;
  }
  .tk-entry-sub{font-size:0.68rem;color:rgba(30,80,160,0.6);display:block;margin-top:2px;}
  .tk-entry-arr{font-size:1.1rem;color:rgba(30,80,160,0.4);flex-shrink:0;}

  /* ====== 宅建チャレンジ フルスクリーンオーバーレイ ====== */
  .tk-overlay{
    display:none;position:fixed;inset:0;
    background:#0A1628;z-index:9990;
    flex-direction:column;overflow:hidden;
  }
  .tk-overlay.open{display:flex;}

  /* 共通ヘッダー */
  .tk-hdr{
    display:flex;align-items:center;padding:12px 14px;
    background:rgba(255,255,255,0.04);
    border-bottom:1px solid rgba(255,255,255,0.08);
    flex-shrink:0;gap:8px;
  }
  .tk-back{
    width:36px;height:36px;border-radius:50%;
    background:rgba(255,255,255,0.1);border:none;
    color:#fff;font-size:1rem;cursor:pointer;
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }
  .tk-hdr-title{
    font-family:var(--font-display);font-weight:800;
    font-size:0.9rem;color:#FFD700;text-align:center;flex:1;
  }
  .tk-snd-btn{
    width:36px;height:36px;border-radius:50%;
    background:rgba(255,255,255,0.1);border:none;
    color:#fff;font-size:1rem;cursor:pointer;
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }

  /* 画面切替 */
  .tk-screen{display:none;flex:1;overflow-y:auto;flex-direction:column;}
  .tk-screen.show{display:flex;}

  /* ── 免責画面 ── */
  .tk-s1{align-items:center;justify-content:flex-start;padding:24px 16px 32px;}
  .tk-logo{font-size:3rem;margin-bottom:8px;}
  .tk-main-ttl{font-family:var(--font-display);font-weight:900;font-size:1.4rem;color:#FFD700;text-align:center;margin-bottom:4px;}
  .tk-main-sub{font-size:0.78rem;color:rgba(255,255,255,0.6);text-align:center;margin-bottom:20px;}
  .tk-disc{
    background:rgba(255,255,255,0.05);
    border:1px solid rgba(255,255,255,0.12);
    border-radius:13px;padding:16px;
    width:100%;max-width:460px;margin-bottom:18px;
  }
  .tk-disc h3{font-size:0.82rem;color:#FF9B47;margin-bottom:10px;font-weight:700;}
  .tk-disc li{font-size:0.76rem;color:rgba(255,255,255,0.82);line-height:1.65;
    list-style:none;padding-left:20px;position:relative;margin-bottom:5px;}
  .tk-disc li::before{content:"";position:absolute;left:0;top:3px;width:9px;height:9px;border-left:2px solid #FF9B47;border-bottom:2px solid #FF9B47;transform:rotate(-45deg);}
  .tk-chk-wrap{
    display:flex;align-items:flex-start;gap:10px;
    width:100%;max-width:460px;margin-bottom:20px;cursor:pointer;
  }
  .tk-chk-wrap input{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:#FFD700;cursor:pointer;}
  .tk-chk-wrap span{font-size:0.8rem;color:rgba(255,255,255,0.85);line-height:1.6;}
  .tk-go-btn{
    width:100%;max-width:460px;padding:15px;
    background:linear-gradient(135deg,#F59E0B,#EF4444);
    color:#fff;border:none;border-radius:13px;
    font-family:var(--font-display);font-weight:900;
    font-size:1rem;cursor:pointer;
  }
  .tk-go-btn.locked{opacity:0.35;filter:grayscale(0.5);}
  .tk-resume-btn{
    width:100%;max-width:460px;padding:12px;margin-top:10px;
    background:rgba(79,195,247,0.1);border:1px solid rgba(79,195,247,0.3);
    border-radius:13px;color:#4FC3F7;font-weight:700;
    font-size:0.88rem;cursor:pointer;display:none;
  }

  /* ── 概要画面 ── */
  .tk-s2{padding:0;}
  .tk-ov-body{flex:1;overflow-y:auto;padding:18px 16px 16px;}
  .tk-ov-h{font-size:0.98rem;font-weight:800;color:#FFD700;margin-bottom:7px;display:flex;align-items:center;gap:6px;}
  .tk-ov-p{font-size:0.8rem;color:rgba(255,255,255,0.82);line-height:1.75;margin-bottom:18px;}
  .tk-table{width:100%;border-collapse:collapse;margin-bottom:18px;}
  .tk-table th{background:rgba(255,215,0,0.12);color:#FFD700;font-size:0.74rem;padding:7px 5px;text-align:center;border:1px solid rgba(255,255,255,0.08);}
  .tk-table td{font-size:0.78rem;padding:7px 5px;text-align:center;border:1px solid rgba(255,255,255,0.06);color:rgba(255,255,255,0.85);}
  .tk-table tr:nth-child(even) td{background:rgba(255,255,255,0.02);}
  .tk-cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:18px;}
  .tk-cat-c{background:rgba(255,255,255,0.05);border-radius:9px;padding:10px;border:1px solid rgba(255,255,255,0.08);}
  .tk-cat-c-nm{font-size:0.72rem;font-weight:700;color:#4FC3F7;margin-bottom:2px;}
  .tk-cat-c-n{font-size:1.15rem;font-weight:900;color:#FFD700;}
  .tk-cat-c-s{font-size:0.62rem;color:rgba(255,255,255,0.4);}
  .tk-ov-footer{padding:14px;flex-shrink:0;}
  .tk-start-btn{
    width:100%;padding:15px;
    background:linear-gradient(135deg,#22C55E,#15803D);
    color:#fff;border:none;border-radius:13px;
    font-family:var(--font-display);font-weight:900;
    font-size:1rem;cursor:pointer;
  }

  /* ── クイズ画面 ── */
  .tk-s3{padding:0;}
  .tk-q-hdr{
    display:flex;align-items:center;padding:8px 12px;gap:7px;flex-shrink:0;
  }
  .tk-icon-btn{
    width:34px;height:34px;border-radius:50%;
    background:rgba(255,255,255,0.1);border:none;
    color:#fff;font-size:0.9rem;cursor:pointer;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
  }
  .tk-timer-box{
    display:flex;align-items:center;gap:5px;
    background:rgba(255,255,255,0.09);border-radius:999px;
    padding:5px 11px;flex:1;
  }
  .tk-timer-val{
    font-weight:800;font-size:0.88rem;
    font-variant-numeric:tabular-nums;min-width:50px;text-align:center;
    color:#fff;
  }
  .tk-timer-val.red{color:#FF6B6B;animation:tkBlink .8s infinite;}
  @keyframes tkBlink{0%,100%{opacity:1;}50%{opacity:.4;}}
  .tk-rest-btn{
    background:rgba(255,215,0,0.12);border:1px solid rgba(255,215,0,0.25);
    color:#FFD700;border-radius:999px;padding:5px 11px;
    font-size:0.74rem;font-weight:700;cursor:pointer;flex-shrink:0;white-space:nowrap;
  }
  .tk-prog{padding:4px 12px 6px;flex-shrink:0;}
  .tk-prog-info{display:flex;justify-content:space-between;font-size:0.68rem;color:rgba(255,255,255,0.55);margin-bottom:3px;font-weight:600;}
  .tk-prog-bar{height:3px;background:rgba(255,255,255,0.12);border-radius:999px;overflow:hidden;}
  .tk-prog-fill{height:100%;background:linear-gradient(90deg,#4FC3F7,#F59E0B);border-radius:999px;transition:width .4s;}
  .tk-q-body{flex:1;overflow-y:auto;padding:6px 12px 14px;display:flex;flex-direction:column;gap:9px;}
  .tk-cat-tag{display:inline-block;font-size:0.62rem;font-weight:700;padding:2px 9px;border-radius:999px;}
  .tk-tag-k{background:rgba(74,222,128,0.18);color:#4ADE80;}
  .tk-tag-t{background:rgba(79,195,247,0.18);color:#4FC3F7;}
  .tk-tag-h{background:rgba(251,191,36,0.18);color:#FBB024;}
  .tk-tag-z{background:rgba(248,113,113,0.18);color:#F87171;}
  .tk-q-txt{
    font-family:var(--font-display);font-weight:700;
    font-size:0.95rem;color:#fff;line-height:1.68;
    background:rgba(255,255,255,0.05);border-radius:11px;padding:13px;
  }
  .tk-choices{display:flex;flex-direction:column;gap:7px;}
  .tk-choice{
    padding:11px 13px;border-radius:10px;
    border:1.5px solid rgba(255,255,255,0.18);
    background:rgba(255,255,255,0.06);color:#fff;
    font-size:0.86rem;font-weight:600;text-align:left;
    cursor:pointer;line-height:1.5;width:100%;
  }
  .tk-choice.ok{border-color:#4ADE80;background:rgba(74,222,128,0.16);color:#86EFAC;}
  .tk-choice.ng{border-color:#F87171;background:rgba(248,113,113,0.16);color:#FCA5A5;}
  .tk-choice:disabled{cursor:default;}
  .tk-exp{
    display:none;font-size:0.76rem;color:rgba(255,255,255,0.87);
    background:rgba(79,195,247,0.07);
    border-left:3px solid #4FC3F7;border-radius:9px;
    padding:11px 12px;line-height:1.72;
  }
  .tk-exp.show{display:block;}
  .tk-exp-pt{font-size:0.71rem;color:#FFD700;font-weight:700;margin-top:5px;}
  .tk-exp-yr{font-size:0.65rem;color:rgba(255,255,255,0.38);margin-top:3px;}
  .tk-exp-cm{font-size:0.71rem;color:#A5B4FC;font-style:italic;margin-top:3px;}
  .tk-next-btn{
    width:100%;padding:12px;border:none;border-radius:11px;
    font-weight:800;font-size:0.92rem;cursor:pointer;display:none;
    background:linear-gradient(135deg,#4FC3F7,#2196F3);color:#fff;
    box-shadow:0 3px 10px rgba(33,150,243,0.35);
  }
  .tk-next-btn.show{display:block;}

  /* 休憩モーダル */
  .tk-rest-modal{
    display:none;position:fixed;inset:0;
    background:rgba(0,0,0,0.72);z-index:9995;
    align-items:center;justify-content:center;padding:20px;
  }
  .tk-rest-modal.open{display:flex;}
  .tk-rest-card{
    background:#0D2040;border:1px solid rgba(255,215,0,0.28);
    border-radius:16px;padding:24px 18px;text-align:center;max-width:280px;width:100%;
  }
  .tk-rest-card h2{font-size:1.1rem;font-weight:900;color:#FFD700;margin-bottom:7px;}
  .tk-rest-card p{font-size:0.78rem;color:rgba(255,255,255,.7);line-height:1.6;margin-bottom:16px;}
  .tk-rest-resume{
    width:100%;padding:12px;
    background:linear-gradient(135deg,#4FC3F7,#2196F3);
    color:#fff;border:none;border-radius:10px;font-weight:800;cursor:pointer;
  }

  /* ── 結果画面 ── */
  .tk-s4{align-items:center;padding:20px 16px 36px;}
  .tk-r-box{max-width:440px;width:100%;display:flex;flex-direction:column;align-items:center;}
  .tk-r-stars{font-size:2rem;margin-bottom:10px;min-height:34px;}
  .tk-r-ring{
    width:118px;height:118px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;margin-bottom:12px;
  }
  .tk-r-inner{
    width:90px;height:90px;border-radius:50%;background:#0A2850;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
  }
  .tk-r-num{font-family:var(--font-display);font-weight:900;font-size:1.7rem;color:#FFD700;line-height:1;}
  .tk-r-of{font-size:0.65rem;color:rgba(255,255,255,.45);}
  .tk-r-msg{font-family:var(--font-display);font-weight:900;font-size:1.05rem;color:#fff;text-align:center;margin-bottom:4px;}
  .tk-r-sub{font-size:0.78rem;color:rgba(255,255,255,.62);text-align:center;line-height:1.6;margin-bottom:16px;}
  .tk-cat-rs{width:100%;display:flex;flex-direction:column;gap:7px;margin-bottom:18px;}
  .tk-cat-r{background:rgba(255,255,255,.04);border-radius:9px;padding:9px 12px;}
  .tk-cat-r-nm{font-size:0.72rem;color:rgba(255,255,255,.5);margin-bottom:3px;}
  .tk-cat-r-row{display:flex;align-items:center;gap:7px;}
  .tk-cat-r-bar{flex:1;height:5px;background:rgba(255,255,255,.1);border-radius:999px;overflow:hidden;}
  .tk-cat-r-fill{height:100%;background:linear-gradient(90deg,#4FC3F7,#F59E0B);border-radius:999px;}
  .tk-cat-r-sc{font-size:0.74rem;font-weight:700;color:#FFD700;white-space:nowrap;}
  .tk-r-btns{display:flex;flex-direction:column;gap:9px;width:100%;}
  .tk-retry-btn{
    padding:14px;background:linear-gradient(135deg,#F59E0B,#EF4444);
    color:#fff;border:none;border-radius:12px;font-weight:900;font-size:0.95rem;cursor:pointer;
  }
  .tk-home-btn{
    padding:12px;background:rgba(255,255,255,.08);
    color:rgba(255,255,255,.82);
    border:1px solid rgba(255,255,255,.18);
    border-radius:12px;font-weight:700;cursor:pointer;
  }


  /* ====== フルスクリーンクイズ ====== */
  .qmfs{display:none;position:fixed;inset:0;background:linear-gradient(160deg,#061830,#0A2850,#0B3060);z-index:9998;flex-direction:column;overflow:hidden;}
  .qmfs.open{display:flex;}
  .qmfs-hdr{display:flex;align-items:center;padding:12px 14px 0;flex-shrink:0;gap:8px;}
  .qmfs-hbtn{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);font-size:1.1rem;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .qmfs-ttl{font-family:var(--font-display);font-weight:900;font-size:.85rem;color:rgba(255,255,255,.9);text-align:center;flex:1;}
  .qmfs-badge{text-align:center;padding:5px 14px 2px;font-family:var(--font-display);font-weight:800;font-size:.88rem;color:#FFD700;min-height:26px;flex-shrink:0;}
  .qmfs-pwrap{padding:5px 14px 8px;flex-shrink:0;}
  .qmfs-pinfo{display:flex;justify-content:space-between;font-size:.7rem;color:rgba(255,255,255,.65);margin-bottom:4px;font-weight:600;}
  .qmfs-pbar{height:4px;background:rgba(255,255,255,.18);border-radius:999px;overflow:hidden;}
  .qmfs-pfill{height:100%;background:linear-gradient(90deg,#4FC3F7,#F59E0B);border-radius:999px;transition:width .4s;}
  .qmfs-wrap{flex:1;overflow-y:auto;display:flex;flex-direction:column;}
  .qmfs-body{flex:1;overflow-y:auto;padding:8px 14px 16px;display:flex;flex-direction:column;gap:10px;}
  .qmfs-q{font-family:var(--font-display);font-weight:700;font-size:.97rem;color:#fff;line-height:1.68;background:rgba(255,255,255,.07);border-radius:12px;padding:14px;}
  .qmfs-chls{display:flex;flex-direction:column;gap:8px;}
  .qmfs-c{padding:12px 14px;border-radius:11px;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;font-size:.88rem;font-weight:600;text-align:left;cursor:pointer;line-height:1.5;transition:background .14s;}
  .qmfs-c:active{background:rgba(255,255,255,.2);}
  .qmfs-c.qok{border-color:#4ADE80;background:rgba(74,222,128,.18);color:#86EFAC;}
  .qmfs-c.qng{border-color:#F87171;background:rgba(248,113,113,.18);color:#FCA5A5;}
  .qmfs-c:disabled{cursor:default;}
  .qmfs-exp{font-size:.78rem;color:rgba(255,255,255,.85);background:rgba(79,195,247,.09);border-left:4px solid #4FC3F7;border-radius:10px;padding:11px 13px;line-height:1.75;display:none;}
  .qmfs-exp.on{display:block;}
  .qmfs-nxt{width:100%;padding:13px;flex-shrink:0;background:linear-gradient(135deg,#4FC3F7,#2196F3);color:#fff;border:none;border-radius:12px;font-family:var(--font-display);font-weight:800;font-size:.95rem;cursor:pointer;display:none;box-shadow:0 4px 12px rgba(33,150,243,.4);}
  .qmfs-nxt.on{display:block;}
  .qmfs-res{display:none;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:18px;text-align:center;}
  .qmfs-res.on{display:flex;}
  .qmfs-rstars{font-size:2.2rem;margin-bottom:12px;min-height:38px;}
  .qmfs-rring{width:120px;height:120px;border-radius:50%;background:conic-gradient(#4FC3F7 var(--pct,0%),rgba(255,255,255,.12) 0);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
  .qmfs-rin{width:90px;height:90px;border-radius:50%;background:#0A2850;display:flex;flex-direction:column;align-items:center;justify-content:center;}
  .qmfs-rnum{font-family:var(--font-display);font-weight:900;font-size:1.7rem;color:#FFD700;line-height:1;}
  .qmfs-rof{font-size:.68rem;color:rgba(255,255,255,.55);}
  .qmfs-rmsg{font-family:var(--font-display);font-weight:900;font-size:1.05rem;color:#fff;margin-bottom:5px;}
  .qmfs-rsub{font-size:.8rem;color:rgba(255,255,255,.7);line-height:1.6;margin-bottom:18px;}
  .qmfs-rretry{width:100%;padding:13px;background:linear-gradient(135deg,#4FC3F7,#2196F3);color:#fff;border:none;border-radius:12px;font-family:var(--font-display);font-weight:800;font-size:.95rem;cursor:pointer;margin-bottom:10px;}
  .qmfs-rclose{width:100%;padding:12px;background:rgba(255,255,255,.12);color:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.22);border-radius:12px;font-weight:700;cursor:pointer;}
  /* 判定◯✕ */
  .qmfs-jover{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10001;}
  .qmfs-jsym{font-size:min(44vw,180px);font-weight:900;line-height:1;opacity:0;}
  .qmfs-jsym.aok{color:#4ADE80;text-shadow:0 0 45px rgba(74,222,128,.9),0 0 90px rgba(74,222,128,.5);animation:qJA .85s ease forwards;}
  .qmfs-jsym.ang{color:#F87171;text-shadow:0 0 45px rgba(248,113,113,.9),0 0 90px rgba(248,113,113,.5);animation:qJA .85s ease forwards;}
  @keyframes qJA{0%{transform:scale(.2);opacity:0;}38%{transform:scale(1.22);opacity:1;}68%{transform:scale(1);opacity:1;}100%{transform:scale(1);opacity:0;}}
  /* 連続メッセージ */
  .qmfs-smsg{position:fixed;top:26%;left:50%;transform:translateX(-50%);font-family:var(--font-display);font-weight:900;font-size:1.45rem;color:#FFD700;text-shadow:0 0 16px rgba(255,215,0,.9),0 2px 4px rgba(0,0,0,.5);pointer-events:none;z-index:10002;opacity:0;white-space:nowrap;}
  .qmfs-smsg.on{animation:qSMA 1.6s ease forwards;}
  @keyframes qSMA{0%{opacity:0;transform:translateX(-50%) translateY(14px) scale(.8);}18%{opacity:1;transform:translateX(-50%) translateY(0) scale(1.1);}65%{opacity:1;transform:translateX(-50%) translateY(0) scale(1);}100%{opacity:0;transform:translateX(-50%) translateY(-14px) scale(.9);}}
  /* パーティクル */
  .qmfs-play{position:fixed;inset:0;pointer-events:none;z-index:10000;overflow:hidden;}
  .qmfs-pt{position:absolute;bottom:12%;animation:qPU 1.7s ease-out forwards;}
  @keyframes qPU{0%{transform:translateY(0) rotate(0deg) scale(.5);opacity:1;}100%{transform:translateY(-72vh) rotate(540deg) scale(1);opacity:0;}}


  /* ====== PC版: クイズセクション中央コンパクト ====== */
  @media(min-width:768px){
    /* 不動産クイズ */
    .quiz-strip{ padding:28px 20px 24px; }
    .quiz-strip-head{ max-width:640px; margin:0 auto 20px; }
    .quiz-strip-grid{ max-width:640px; margin:0 auto; }

    /* 宅建チャレンジ エントリー */
    .tk-entry-strip{ padding:20px; }
    .tk-entry-btn{
      max-width:640px; margin:0 auto;
      border-radius:16px;
    }

    /* エリアクイズ */
    .area-quiz-strip{ padding:26px 20px 22px; }
    .area-quiz-head{ max-width:640px; margin:0 auto 16px; }
    .area-quiz-row{ max-width:640px; margin:0 auto; }
  }

  /* ====== 宅建アイコン：ホワイト背景でライトな印象 ====== */
  .tk-entry-icon{
    font-size:1.6rem;flex-shrink:0;
    width:48px;height:48px;
    background:#fff;
    border-radius:12px;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 2px 8px rgba(0,0,0,0.12);
  }
  .tk-entry-btn{
    background:#fff;
    border:1.5px solid rgba(0,100,200,0.15);
    box-shadow:0 2px 12px rgba(0,80,180,0.08);
  }
  .tk-entry-btn:active{ background:#f0f6ff; }
  .tk-entry-strip{
    background:linear-gradient(135deg,#f8faff,#eef4ff,#f0f8ff);border-top:1px solid rgba(0,100,200,0.08);
  }


  /* ====== ヘッダーロゴ画像 ====== */
  .logo-img{
    height:36px;
    width:auto;
    display:block;
    object-fit:contain;
  }
  @media(min-width:768px){
    .logo-img{ height:44px; }
  }
  /* 一番小さい画面（iPhone SE等 375px以下）向けの追加調整
     ヘッダーのボタン3個（電話・メール・メニュー）と衝突しないよう、
     ロゴをさらに一回り小さくする */
  @media(max-width:375px){
    .logo-img{ height:26px; }
    .site-header{ padding:12px 14px; gap:6px; }
    .tel-header-btn, .mailto-btn, .hamburger-btn{ width:38px;height:38px; }
  }


  @keyframes qmfsCrownPop{
    0%{transform:scale(0) rotate(-20deg);opacity:0;}
    60%{transform:scale(1.3) rotate(8deg);opacity:1;}
    80%{transform:scale(0.9) rotate(-4deg);}
    100%{transform:scale(1) rotate(0deg);opacity:1;}
  }

  /* ====== アクセスセクション ====== */
  .access-section{
    background:#f8faff;
    padding:32px 20px 0;
    border-top:3px solid #2AA8E0;
  }
  .access-inner{
    max-width:680px;
    margin:0 auto;
  }
  .access-head{
    font-family:var(--font-display);font-weight:900;
    font-size:1.1rem;color:#0B3060;
    text-align:center;margin-bottom:22px;
    display:flex;align-items:center;justify-content:center;gap:8px;
  }
  .access-info{
    background:#fff;border-radius:14px;
    padding:20px;margin-bottom:18px;
    box-shadow:0 2px 10px rgba(0,80,160,0.08);
  }
  .access-company{
    font-family:var(--font-display);font-weight:900;
    font-size:1.0rem;color:#0B3060;margin-bottom:14px;
    padding-bottom:10px;border-bottom:1px solid rgba(0,80,160,0.1);
  }
  .access-rows{
    display:flex;flex-direction:column;gap:10px;
  }
  .access-row{
    display:flex;align-items:flex-start;gap:10px;
    font-size:0.84rem;color:#334155;line-height:1.6;
  }
  .access-row-icon{
    width:28px;height:28px;border-radius:8px;
    background:linear-gradient(135deg,#2AA8E0,#0B5E8C);
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;font-size:0.8rem;color:#fff;
  }
  .access-row-label{
    font-size:0.68rem;font-weight:700;color:#2AA8E0;
    display:block;margin-bottom:1px;
  }
  .access-row a{color:#0B5E8C;text-decoration:none;font-weight:600;}
  .access-map{
    border-radius:14px;overflow:hidden;
    box-shadow:0 2px 10px rgba(0,80,160,0.1);
    margin-bottom:0;
  }
  .access-map iframe{
    width:100%;height:240px;border:none;display:block;
  }
  @media(min-width:768px){
    .access-map iframe{ height:320px; }
  }


  /* ====== 無料送迎案内＋エリアマップタブ ====== */
  .shuttle-section{
    background:#f8faff;padding:28px 20px 32px;
  }
  .shuttle-inner{max-width:680px;margin:0 auto;}
  .shuttle-head{
    font-family:var(--font-display);font-weight:900;
    font-size:1.05rem;color:#0B3060;
    text-align:center;margin-bottom:8px;
    display:flex;align-items:center;justify-content:center;gap:8px;
  }
  .shuttle-sub{
    text-align:center;font-size:0.8rem;color:#475569;
    line-height:1.7;margin-bottom:18px;
  }
  .shuttle-tabs{
    display:grid;grid-template-columns:repeat(4,1fr);
    gap:6px;margin-bottom:14px;
  }
  .shuttle-tab{
    padding:9px 4px;border-radius:10px;
    border:1.5px solid rgba(42,168,224,0.25);
    background:#fff;color:#0B5E8C;
    font-size:0.74rem;font-weight:700;cursor:pointer;
    text-align:center;transition:all .15s;
  }
  .shuttle-tab.active{
    background:linear-gradient(135deg,#2AA8E0,#0B5E8C);
    color:#fff;border-color:transparent;
  }
  .shuttle-map-wrap{ }
  /* ====== 地図カード共通（アクセス・送迎共通） ====== */
  .map-card{
    display:block;text-decoration:none;
    border-radius:14px;overflow:hidden;
    box-shadow:0 2px 10px rgba(0,80,160,0.1);
    background:#fff;border:1px solid rgba(42,168,224,0.12);
    transition:transform .15s;
  }
  .map-card:active{ transform:scale(0.98); }
  .map-card-visual{
    position:relative;width:100%;height:150px;
    overflow:hidden;background:#EAF4FB;
  }
  .map-card-visual svg:first-child{ position:absolute;inset:0;width:100%;height:100%; }
  .map-card-pin{
    position:absolute;top:50%;left:50%;
    transform:translate(-50%,-65%);
    filter:drop-shadow(0 4px 6px rgba(0,0,0,0.25));
  }
  .map-card-info{ padding:14px 16px; }
  .map-card-addr{
    font-size:0.78rem;color:#334155;font-weight:600;
    margin-bottom:8px;line-height:1.6;
  }
  .map-card-cta{
    display:flex;align-items:center;gap:6px;
    font-size:0.78rem;color:#2AA8E0;font-weight:700;
  }
  @media(min-width:768px){
    .map-card-visual{ height:200px; }
  }


  /* ====== フッターリンク＋法的ページモーダル ====== */
  .footer-links{
    display:flex;flex-wrap:wrap;justify-content:center;gap:14px;
    margin-top:6px;padding-top:10px;
    border-top:1px solid rgba(255,255,255,0.15);
    width:100%;max-width:400px;
  }
  .footer-links button{
    background:none;border:none;cursor:pointer;
    font-size:0.72rem;color:rgba(255,255,255,0.75);
    text-decoration:underline;text-underline-offset:3px;
    padding:4px;font-family:inherit;
  }
  .footer-links button:active{ color:#fff; }
  .legal-overlay{
    display:none;position:fixed;inset:0;z-index:9997;
    background:rgba(5,20,40,0.6);
    align-items:flex-end;justify-content:center;
  }
  .legal-overlay.open{ display:flex; }
  .legal-modal{
    background:#fff;border-radius:18px 18px 0 0;
    width:100%;max-width:600px;max-height:85vh;
    display:flex;flex-direction:column;
    animation:legalSlideUp .3s ease;
  }
  @media(min-width:768px){
    .legal-overlay{ align-items:center; }
    .legal-modal{ border-radius:18px; max-height:80vh; }
  }
  @keyframes legalSlideUp{
    from{ transform:translateY(40px); opacity:0; }
    to{ transform:translateY(0); opacity:1; }
  }
  .legal-hdr{
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 20px;border-bottom:1px solid #eef2f7;flex-shrink:0;
  }
  .legal-hdr h2{
    font-family:var(--font-display);font-weight:900;
    font-size:1.05rem;color:#0B3060;
  }
  .legal-close{
    width:32px;height:32px;border-radius:50%;
    background:#f1f5f9;border:none;color:#475569;
    font-size:0.95rem;cursor:pointer;
  }
  .legal-body{
    flex:1;overflow-y:auto;padding:18px 20px 28px;
    font-size:0.82rem;color:#334155;line-height:1.85;
  }
  .legal-body h3{
    font-size:0.9rem;color:#0B5E8C;font-weight:800;
    margin:18px 0 8px;
  }
  .legal-body h3:first-child{ margin-top:0; }
  .legal-body p, .legal-body li{ margin-bottom:6px; }
  .legal-body ul{ padding-left:18px; }
  .legal-updated{
    font-size:0.7rem;color:#94a3b8;margin-top:20px;
    padding-top:14px;border-top:1px solid #eef2f7;
  }


  /* ====== ハンバーガーメニュー ====== */
  .hamburger-btn{
    display:none;
    width:42px;height:42px;border-radius:10px;
    background:rgba(42,168,224,0.1);border:none;
    flex-direction:column;align-items:center;justify-content:center;
    gap:5px;cursor:pointer;flex-shrink:0;
  }
  .hamburger-btn span{
    width:20px;height:2.4px;border-radius:2px;
    background:var(--ocean-deep);transition:all .25s;
  }
  .hamburger-btn.open span:nth-child(1){ transform:translateY(7.4px) rotate(45deg); }
  .hamburger-btn.open span:nth-child(2){ opacity:0; }
  .hamburger-btn.open span:nth-child(3){ transform:translateY(-7.4px) rotate(-45deg); }
  @media(max-width:768px){
    .hamburger-btn{ display:flex; }
  }

  .mdrawer-overlay{
    display:none;position:fixed;inset:0;z-index:9994;
    background:rgba(5,20,40,0.5);
  }
  .mdrawer-overlay.open{ display:block; }
  .mdrawer{
    position:fixed;top:0;right:0;bottom:0;z-index:9995;
    width:82%;max-width:340px;
    background:#fff;
    transform:translateX(100%);
    transition:transform .3s ease;
    overflow-y:auto;
    box-shadow:-4px 0 24px rgba(0,0,0,0.15);
  }
  .mdrawer.open{ transform:translateX(0); }
  .mdrawer-hdr{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 18px 14px;border-bottom:1px solid #eef2f7;
  }
  .mdrawer-hdr-title{
    font-family:var(--font-display);font-weight:900;
    font-size:1rem;color:var(--ocean-deep);
  }
  .mdrawer-close{
    width:34px;height:34px;border-radius:50%;
    background:#f1f5f9;border:none;color:#475569;
    font-size:1rem;cursor:pointer;
  }
  .mdrawer-search{
    margin:16px 18px 8px;position:relative;
  }
  /* 「サジェスト検索」ラベル（検索バーの少し上に表示） */
  .site-search-suggest-label{
    font-size:0.7rem;color:#2AA8E0;font-weight:700;
    margin-bottom:6px;letter-spacing:0.02em;
    display:flex;align-items:center;gap:4px;
  }
  .site-search-suggest-label::before{
    content:"✨";font-size:0.75rem;
  }
  .site-search-box{
    display:flex;align-items:center;gap:8px;
    padding:10px 14px;
    background:#f8faff;border:1.5px solid rgba(42,168,224,0.2);
    border-radius:999px;
  }
  .site-search-box input{
    border:none;background:none;outline:none;
    flex:1;font-size:0.85rem;color:#334155;font-family:inherit;
  }
  .site-search-box button{
    background:none;border:none;cursor:pointer;
    color:#2AA8E0;font-size:1rem;display:flex;
  }
  /* サジェスト候補リスト */
  .site-search-suggest{
    display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;
    background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(0,40,90,0.15);
    max-height:240px;overflow-y:auto;z-index:50;
  }
  .site-search-suggest.show{ display:block; }
  .site-search-suggest-item{
    padding:10px 16px;cursor:pointer;border-bottom:1px solid #F0F4F8;
    display:flex;justify-content:space-between;align-items:center;
  }
  .site-search-suggest-item:hover, .site-search-suggest-item.active{ background:#EAF4FB; }
  .site-search-suggest-title{ font-weight:700;color:#0B5E8C;font-size:0.85rem; }
  .site-search-suggest-type{
    font-size:0.65rem;color:#64748B;background:#F0F4F8;
    padding:2px 8px;border-radius:999px;flex-shrink:0;margin-left:8px;
  }
  .site-search-suggest-empty{ padding:14px;text-align:center;color:#64748B;font-size:0.8rem; }

  /* ============================================
     トップ検索バー（おすすめピックアップの上に設置）
     メニュー内の検索と同じ機能を、本文中でも使えるようにしたもの
  ============================================ */
  .top-search-widget{
    max-width:640px;margin:0 auto 32px;padding:20px 22px;
    background:#fff;border-radius:20px;
    box-shadow:0 4px 20px rgba(11,94,140,0.08);
    position:relative;
  }
  .top-search-box{
    display:flex;align-items:center;gap:8px;
    padding:12px 16px;
    background:#f8faff;border:1.5px solid rgba(42,168,224,0.2);
    border-radius:999px;
  }
  .top-search-box input{
    border:none;background:none;outline:none;
    flex:1;font-size:0.92rem;color:#334155;font-family:inherit;
  }
  .top-search-box button{
    background:linear-gradient(135deg,#2AA8E0,#0B5E8C);
    color:#fff;border:none;border-radius:999px;
    padding:8px 18px;font-size:0.8rem;font-weight:700;cursor:pointer;
    flex-shrink:0;
  }
  .mdrawer-nav{ padding:4px 0 8px; }
  .mdrawer-nav a{
    display:flex;align-items:center;gap:12px;
    padding:13px 18px;
    color:#334155;text-decoration:none;
    font-weight:700;font-size:0.9rem;
    border-bottom:1px solid #f4f6fa;
  }
  .mdrawer-nav a:active{ background:#f8faff; }
  .mdrawer-nav a .micon{
    width:20px;text-align:center;flex-shrink:0;
  }
  .mdrawer-sns{
    display:flex;justify-content:center;gap:14px;
    padding:18px;border-top:1px solid #eef2f7;margin-top:8px;
  }
  .mdrawer-sns a{
    width:42px;height:42px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:#f1f5f9;color:#334155;
    text-decoration:none;font-size:1.1rem;
  }

  /* ====== 会社概要 / 代表メッセージ 簡易セクション ====== */
  .info-mini-section{
    padding:30px 20px;max-width:680px;margin:0 auto;
  }
  .info-mini-head{
    font-family:var(--font-display);font-weight:900;
    font-size:1.05rem;color:#0B3060;
    text-align:center;margin-bottom:16px;
    display:flex;align-items:center;justify-content:center;gap:8px;
  }
  .info-mini-card{
    background:#f8faff;border-radius:14px;padding:20px;
    font-size:0.85rem;color:#334155;line-height:1.9;
  }
  .info-mini-card table{ width:100%; border-collapse:collapse; }
  .info-mini-card td{
    padding:7px 0;border-bottom:1px solid rgba(0,80,160,0.08);
    vertical-align:top;
  }
  .info-mini-card td:first-child{
    width:90px;font-weight:700;color:#2AA8E0;font-size:0.78rem;
  }
  .info-mini-note{
    font-size:0.72rem;color:#94a3b8;margin-top:14px;text-align:center;
  }
  .ceo-msg-card{
    background:#f8faff;border-radius:14px;padding:22px 20px;
    margin-top:16px;
  }
  .ceo-msg-name{
    font-family:var(--font-display);font-weight:800;
    font-size:0.88rem;color:#0B3060;margin-top:18px;text-align:right;
    line-height:1.7;
  }
  .ceo-msg-body{
    font-size:0.84rem;color:#334155;line-height:2;
    margin-bottom:16px;
  }
  .ceo-msg-body:last-of-type{ margin-bottom:0; }
  .ceo-msg-quote{
    font-family:var(--font-display);font-weight:800;
    font-size:0.92rem;color:#2AA8E0;text-align:center;
    margin:20px 0;padding:14px;
    background:rgba(42,168,224,0.07);border-radius:10px;
  }
  .ceo-catch-card{
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,#050E24 0%,#0B3060 18%,#0E4C82 50%,#0B3060 82%,#050E24 100%);
    border-radius:16px;padding:28px 22px;
    text-align:center;color:#fff;
  }
  .ceo-catch-card>*{ position:relative;z-index:2; }
  .ceo-star{
    position:absolute;border-radius:50%;
    background:#fff;
    animation:ceoTwinkle ease-in-out infinite;
    z-index:1;
    pointer-events:none;
  }
  @keyframes ceoTwinkle{
    0%,100%{ opacity:0.15; transform:scale(0.7); }
    50%{ opacity:1; transform:scale(1.15); }
  }
  .ceo-catch-text{
    font-family:var(--font-display);font-weight:900;
    font-size:1.05rem;line-height:1.8;margin-bottom:18px;
  }
  .ceo-catch-sub{
    font-size:0.8rem;line-height:1.9;color:rgba(255,255,255,0.82);
    margin-bottom:18px;
  }
  .ceo-catch-lead{
    font-size:0.82rem;line-height:1.85;color:rgba(255,255,255,0.92);
    margin-bottom:16px;
  }
  .ceo-catch-motto{
    font-family:var(--font-display);font-weight:800;
    font-size:0.95rem;color:#FFD27A;
    padding-top:14px;border-top:1px solid rgba(255,255,255,0.2);
  }


  /* ====== 通話確認モーダル ====== */
  .call-confirm-overlay{
    display:none;position:fixed;inset:0;z-index:9996;
    background:rgba(5,20,40,0.55);
    align-items:center;justify-content:center;padding:20px;
  }
  .call-confirm-overlay.open{ display:flex; }
  .call-confirm-card{
    background:#fff;border-radius:18px;
    padding:28px 24px;max-width:300px;width:100%;
    text-align:center;
    animation:callConfirmPop .25s ease;
  }
  @keyframes callConfirmPop{
    from{ transform:scale(0.9); opacity:0; }
    to{ transform:scale(1); opacity:1; }
  }
  .call-confirm-icon{ font-size:2.2rem;margin-bottom:10px; }
  .call-confirm-title{
    font-family:var(--font-display);font-weight:900;
    font-size:1rem;color:#0B3060;margin-bottom:10px;
  }
  /* 電話番号：一番目立つ要素として大きく表示 */
  .call-confirm-number{
    font-family:var(--font-display);font-weight:900;
    font-size:1.6rem;color:#0B5E8C;letter-spacing:0.02em;
    margin-bottom:2px;
  }
  .call-confirm-text{
    font-size:0.8rem;color:#475569;line-height:1.75;margin-bottom:22px;
  }
  .call-confirm-text b{ color:#EF4444; }
  .call-confirm-btns{ display:flex;flex-direction:column;gap:10px; }
  .call-confirm-yes{
    padding:13px;background:linear-gradient(135deg,#0B5E8C,#2AA8E0);
    color:#fff;border:none;border-radius:11px;
    font-weight:800;font-size:0.92rem;cursor:pointer;
  }
  .call-confirm-no{
    padding:11px;background:#f1f5f9;color:#475569;
    border:none;border-radius:11px;
    font-weight:700;font-size:0.88rem;cursor:pointer;
  }


  .footer-logo-img{ height:32px; width:auto; filter:brightness(0) invert(1); opacity:0.92; }


  .ashrink{ white-space:nowrap; display:inline-block; }


  .ppt-links{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    margin-top:16px;
  }
  .ppt-link-card{
    display:flex;align-items:center;gap:10px;
    padding:12px;background:#fff;border-radius:11px;
    border:1.5px solid rgba(42,168,224,0.18);
    text-decoration:none;transition:background .15s;
  }
  .ppt-link-card:active{ background:#eef6fc; }
  .ppt-link-icon{
    width:38px;height:38px;border-radius:9px;
    background:rgba(42,168,224,0.1);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }
  .ppt-link-text{ display:flex;flex-direction:column;min-width:0; }
  .ppt-link-label{ font-size:0.74rem;font-weight:800;color:#0B3060; }
  .ppt-link-sub{ font-size:0.64rem;color:#94a3b8;margin-top:2px; }


  /* ====== 問い合わせ6アイコン（売買貸借＋管理・買取） ====== */
  .inquiry-section{
    padding:32px 20px;background:linear-gradient(160deg,#F0FFF4,#E8F8FF);
  }
  .inquiry-inner{ max-width:680px;margin:0 auto; }
  .inquiry-head{
    font-family:var(--font-display);font-weight:900;
    font-size:1.05rem;color:#0B3060;text-align:center;
    margin-bottom:6px;
  }
  .inquiry-sub{
    text-align:center;font-size:0.78rem;color:#475569;margin-bottom:20px;
  }
  .inquiry-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:11px;
  }
  .inquiry-card{
    display:flex;flex-direction:column;align-items:center;
    gap:8px;padding:18px 10px;border-radius:16px;
    text-decoration:none;
    box-shadow:0 3px 12px rgba(0,40,90,0.08);
    transition:transform .15s;
  }
  .inquiry-card:active{ transform:scale(0.96); }
  .inquiry-card.sell{ background:linear-gradient(150deg,#FFF3E0,#FFE3C2); }
  .inquiry-card.rent-out{ background:linear-gradient(150deg,#E3F6FF,#C9ECFB); }
  .inquiry-card.buy{ background:linear-gradient(150deg,#FFEAEA,#FFD2D2); }
  .inquiry-card.rent-in{ background:linear-gradient(150deg,#E8F9EE,#CDF2DB); }
  .inquiry-card.manage{ background:linear-gradient(150deg,#F1ECFF,#DCD0FB); }
  .inquiry-card.buyback{ background:linear-gradient(150deg,#FFF9E0,#FCEEB3); }
  .inquiry-card-icon{
    width:46px;height:46px;border-radius:50%;
    background:rgba(255,255,255,0.65);
    display:flex;align-items:center;justify-content:center;
  }
  .inquiry-card-label{
    font-family:var(--font-display);font-weight:800;
    font-size:0.86rem;color:#0B3060;
  }
  .inquiry-card-sub{
    font-size:0.62rem;color:#64748b;
  }
  @media(min-width:600px){
    .inquiry-grid{ grid-template-columns:repeat(3,1fr); }
  }


  /* ====== おすすめピックアップ物件 ====== */
  .pickup-section{ padding:8px 16px 8px; }
  .pickup-split{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    grid-auto-rows:auto;
    align-items:stretch;
  }
  .pickup-col-label{
    font-family:var(--font-display);font-weight:900;
    font-size:0.82rem;padding:8px 12px;border-radius:8px;
    display:flex;align-items:center;gap:6px;
  }
  .pickup-col-label.lease{ background:rgba(11,94,140,0.1);color:var(--ocean-deep); }
  .pickup-col-label.buy{ background:rgba(255,138,51,0.12);color:#C9650F; }
  .pickup-col-label small{ font-size:0.6rem;font-weight:600;opacity:0.7; }
  .pickup-card{
    background:#fff;border-radius:13px;overflow:hidden;
    box-shadow:0 2px 10px rgba(0,40,90,0.07);
    border:1px solid rgba(0,40,90,0.05);
    display:flex;flex-direction:column;height:100%;
  }
  .pickup-body{ display:flex;flex-direction:column;flex:1; }
  .pickup-points{ margin-top:auto; }
  .pickup-photos{
    display:grid;grid-template-columns:1fr 1fr;gap:1.5px;
    background:#e2e8f0;
  }
  .pickup-photo{
    aspect-ratio:4/3;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:3px;
    background:linear-gradient(135deg,#EAF4FB,#D6ECF8);
    font-size:0.56rem;color:#7C9CB5;font-weight:700;
  }
  .pickup-photo.buy-tone{ background:linear-gradient(135deg,#FFF3E5,#FFE3C2);color:#C9842E; }
  .pickup-body{ padding:12px 14px 14px; }
  .pickup-name-row{
    display:flex;align-items:flex-start;justify-content:space-between;
    gap:8px;margin-bottom:6px;
  }
  .pickup-name{
    font-family:var(--font-display);font-weight:800;
    font-size:0.86rem;color:#0B3060;line-height:1.4;
  }
  .pickup-tag{
    flex-shrink:0;font-size:0.6rem;font-weight:700;
    padding:3px 9px;border-radius:999px;white-space:nowrap;
  }
  .pickup-tag.lease-tag{ background:rgba(11,94,140,0.12);color:var(--ocean-deep); }
  .pickup-tag.buy-tag{ background:rgba(255,138,51,0.15);color:#C9650F; }
  .pickup-spec{
    font-size:0.74rem;color:#475569;font-weight:600;
    margin-bottom:8px;line-height:1.6;
  }
  .pickup-spec b{ color:#EF4444;font-size:0.88rem; }
  .pickup-points{
    background:#f8faff;border-radius:9px;padding:9px 11px;
  }
  .pickup-points-h{
    font-size:0.66rem;font-weight:800;color:#2AA8E0;margin-bottom:4px;
  }
  .pickup-points ul{
    list-style:none;display:flex;flex-direction:column;gap:3px;
  }
  .pickup-points li{
    font-size:0.7rem;color:#334155;padding-left:13px;position:relative;
  }
  .pickup-points li::before{
    content:"";position:absolute;left:0;top:6px;
    width:5px;height:5px;border-radius:50%;background:#2AA8E0;
  }
  .pickup-note{
    text-align:center;font-size:0.68rem;color:#94a3b8;
    margin-top:6px;padding:0 16px;
  }
  @media(min-width:700px){
    .pickup-photos{ grid-template-columns:repeat(4,1fr); }
  }


  /* ====== 記事アクセスランキングTOP3 ====== */
  .ranking-section{ padding:8px 16px 8px; }
  .ranking-split{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    grid-auto-rows:auto;
    align-items:stretch;
  }
  .ranking-block{
    background:#fff;border-radius:13px;padding:12px;
    box-shadow:0 2px 8px rgba(0,40,90,0.06);
    border:1px solid rgba(0,40,90,0.05);
    display:flex;flex-direction:column;height:100%;
  }
  .ranking-block-h{
    font-family:var(--font-display);font-weight:800;
    font-size:0.74rem;color:#0B3060;margin-bottom:8px;
    padding-bottom:7px;border-bottom:1px solid #f0f4f8;
    display:flex;align-items:center;gap:5px;
  }
  .ranking-row{
    display:flex;align-items:center;gap:8px;
    padding:6px 0;text-decoration:none;
  }
  .ranking-row:not(:last-child){ border-bottom:1px dashed #eef2f7; }
  .ranking-empty{
    font-size:0.78rem;color:#9CA9B5;padding:10px 0;text-align:center;
  }
  .ranking-num{
    flex-shrink:0;width:20px;height:20px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-family:var(--font-display);font-weight:900;font-size:0.68rem;
    color:#fff;
  }
  .ranking-num.r1{ background:linear-gradient(135deg,#FFD27A,#FFA94D); }
  .ranking-num.r2{ background:linear-gradient(135deg,#CBD5E1,#94A3B8); }
  .ranking-num.r3{ background:linear-gradient(135deg,#E0B88A,#C28A52); }
  .ranking-thumb{
    flex-shrink:0;width:30px;height:30px;border-radius:7px;
    background:linear-gradient(135deg,#EAF4FB,#D6ECF8);
    display:flex;align-items:center;justify-content:center;
    color:#7C9CB5;
  }
  .ranking-thumb.buy-tone{ background:linear-gradient(135deg,#FFF3E5,#FFE3C2);color:#C9842E; }
  .ranking-title{
    font-size:0.7rem;color:#334155;font-weight:600;line-height:1.4;
    flex:1;min-width:0;
  }


  .info-row{ padding:9px 0;border-bottom:1px solid rgba(0,80,160,0.08); }
  .info-row:last-child{ border-bottom:none; }
  .info-label{
    display:block;font-size:0.7rem;font-weight:700;
    color:#2AA8E0;margin-bottom:3px;
  }
  .info-value{
    display:block;font-size:0.82rem;color:#334155;
    line-height:1.5;white-space:nowrap;overflow:hidden;
  }
  /* 会社概要内のメールボタン（ヘッダーの✉️と同じ仕組み・見た目を簡易版で） */
  .company-mail-btn{
    display:inline-flex;align-items:center;
    background:rgba(42,168,224,0.1);border:none;border-radius:8px;
    padding:5px 12px;font-size:0.78rem;color:#0B5E8C;font-weight:700;
    cursor:pointer;
  }
  .company-mail-btn:hover{ background:rgba(42,168,224,0.2); }


  .time-slider-standalone{
    position:relative;
    background:#000;
    padding:0;
    margin:0;
  }


  /* ====== パンくずリスト＋サイトマップ（フッター最下部） ====== */
  .footer-breadcrumb{
    display:flex;align-items:center;justify-content:center;gap:6px;
    font-size:0.7rem;color:#94a3b8;
    margin-top:18px;padding-top:16px;
    border-top:1px solid rgba(11,48,96,0.1);
    width:100%;max-width:480px;
  }
  .footer-breadcrumb .crumb-sep{ color:#cbd5e1; }
  .footer-breadcrumb .crumb-current{ color:var(--ocean-deep);font-weight:700; }
  .footer-sitemap{
    width:100%;max-width:480px;margin-top:14px;
  }
  .footer-sitemap-h{
    font-size:0.66rem;font-weight:700;letter-spacing:0.08em;
    color:#94a3b8;text-align:center;margin-bottom:10px;
  }
  .sitemap-grid{
    display:grid;grid-template-columns:repeat(2,1fr);gap:7px 10px;
  }
  .sitemap-grid a{
    font-size:0.72rem;color:#475569;
    text-decoration:none;padding:6px 4px;
    border-bottom:1px solid rgba(11,48,96,0.08);
    display:flex;align-items:center;gap:5px;
  }
  .sitemap-grid a::before{
    content:"";width:4px;height:4px;border-radius:50%;
    background:var(--ocean-bright);flex-shrink:0;
  }
  .sitemap-grid a:active{ color:var(--ocean-deep); }
  @media(min-width:600px){
    .sitemap-grid{ grid-template-columns:repeat(3,1fr); }
  }


  /* ====== エリア紹介6ブロック ====== */
  .area-intro-section{
    padding:30px 16px 8px;background:#fff;
  }
  .area-intro-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    max-width:680px;margin:0 auto;
  }
  .area-intro-card{
    display:block;
    border-radius:14px;overflow:hidden;
    box-shadow:0 3px 12px rgba(0,40,90,0.08);
    background:#fff;border:1px solid rgba(0,40,90,0.06);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .area-intro-card:hover{
    transform:translateY(-2px);
    box-shadow:0 6px 18px rgba(0,40,90,0.14);
  }
  .area-intro-visual{
    position:relative;height:92px;
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
  }
  .area-intro-visual svg.bgwave{ position:absolute;inset:0;width:100%;height:100%; }
  .area-intro-visual .area-icon{ position:relative;z-index:2; }
  .area-intro-body{ padding:11px 12px 13px; }
  .area-intro-name{
    font-family:var(--font-display);font-weight:900;
    font-size:0.84rem;color:#0B3060;margin-bottom:4px;
  }
  .area-intro-desc{
    font-size:0.66rem;color:#64748b;line-height:1.6;
  }
  .area-intro-note{
    text-align:center;font-size:0.68rem;color:#94a3b8;
    margin-top:10px;max-width:680px;margin-left:auto;margin-right:auto;
  }


  /* ====== 空のいきものギミック ====== */
  #skyCritterLayer{
    position:fixed;inset:0;z-index:55;
    pointer-events:none;overflow:hidden;
  }
  .sky-critter{
    position:fixed;
    pointer-events:auto;
    cursor:pointer;
    filter:drop-shadow(0 2px 5px rgba(0,0,0,0.18));
    will-change:transform;
    animation-timing-function:linear;
    animation-fill-mode:forwards;
  }
  .sky-critter.fly-ltr{ animation-name:critterFlyLTR; }
  .sky-critter.fly-rtl{ animation-name:critterFlyRTL; }
  @keyframes critterFlyLTR{
    0%{ transform:translateX(-60px) translateY(0); }
    50%{ transform:translateX(50vw) translateY(-14px); }
    100%{ transform:translateX(calc(100vw + 60px)) translateY(0); }
  }
  @keyframes critterFlyRTL{
    0%{ transform:translateX(calc(100vw + 60px)) scaleX(-1) translateY(0); }
    50%{ transform:translateX(50vw) scaleX(-1) translateY(-14px); }
    100%{ transform:translateX(-60px) scaleX(-1) translateY(0); }
  }
  .sky-critter.poof{
    animation:critterPoof .4s ease forwards !important;
  }
  @keyframes critterPoof{
    0%{ opacity:1; transform:scale(1); }
    100%{ opacity:0; transform:scale(1.6); }
  }

  /* リアクション吹き出し */
  .critter-bubble{
    position:fixed;z-index:9990;pointer-events:none;
    font-family:var(--font-display);font-weight:800;
    font-size:0.95rem;color:#0B3060;
    background:#fff;padding:7px 14px;border-radius:999px;
    box-shadow:0 4px 14px rgba(0,40,90,0.22);
    transform:translate(-50%,-100%);
    animation:critterBubblePop 1.4s ease forwards;
    white-space:nowrap;
  }
  @keyframes critterBubblePop{
    0%{ opacity:0; transform:translate(-50%,-80%) scale(0.6); }
    20%{ opacity:1; transform:translate(-50%,-115%) scale(1.08); }
    35%{ transform:translate(-50%,-110%) scale(1); }
    80%{ opacity:1; }
    100%{ opacity:0; transform:translate(-50%,-150%) scale(0.92); }
  }

  /* パーティクル共通 */
  .critter-ptcl{
    position:fixed;z-index:9989;pointer-events:none;
    border-radius:50%;
    animation:critterPtcl 1s ease-out forwards;
  }
  @keyframes critterPtcl{
    0%{ opacity:1; transform:translate(0,0) scale(1); }
    100%{ opacity:0; transform:var(--ptcl-end) scale(0.3); }
  }

  /* 月・太陽：画面全体グロー */
  .critter-glow-overlay{
    position:fixed;inset:0;z-index:9988;pointer-events:none;
    animation:critterGlow 1.6s ease forwards;
  }
  @keyframes critterGlow{
    0%{ opacity:0; }
    30%{ opacity:1; }
    100%{ opacity:0; }
  }


  .mdrawer-toggle-row{
    display:flex;align-items:center;justify-content:space-between;
    padding:13px 18px;border-top:1px solid #f4f6fa;
    border-bottom:1px solid #f4f6fa;
  }
  /* ====== ドロワー内：文字サイズ設定 ====== */
  .mdrawer-fontsize-row{
    display:flex;align-items:center;justify-content:space-between;
    padding:13px 18px;border-bottom:1px solid #f4f6fa;
    flex-wrap:wrap;gap:8px;
  }
  .mdrawer-fontsize-label{
    display:flex;align-items:center;gap:10px;
    font-size:0.86rem;font-weight:700;color:#334155;
  }
  .mdrawer-fontsize-btns{ display:flex;gap:6px; }
  .mdrawer-fontsize-btns button{
    padding:6px 12px;border-radius:8px;border:1.5px solid #E2E8F0;
    background:#fff;color:#334155;font-size:0.8rem;font-weight:700;
    cursor:pointer;transition:.15s;
  }
  .mdrawer-fontsize-btns button.active{
    background:linear-gradient(135deg,#2AA8E0,#0B5E8C);
    color:#fff;border-color:transparent;
  }
  .mdrawer-toggle-label{
    display:flex;align-items:center;gap:10px;
    font-size:0.86rem;font-weight:700;color:#334155;
  }
  .mdrawer-switch{
    position:relative;display:inline-block;width:44px;height:25px;flex-shrink:0;
  }
  .mdrawer-switch input{ opacity:0;width:0;height:0; }
  .mdrawer-switch-slider{
    position:absolute;cursor:pointer;inset:0;
    background:#cbd5e1;border-radius:999px;
    transition:background .2s;
  }
  .mdrawer-switch-slider::before{
    content:"";position:absolute;height:19px;width:19px;
    left:3px;bottom:3px;background:#fff;border-radius:50%;
    transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,0.25);
  }
  .mdrawer-switch input:checked + .mdrawer-switch-slider{
    background:linear-gradient(135deg,#2AA8E0,#0B5E8C);
  }
  .mdrawer-switch input:checked + .mdrawer-switch-slider::before{
    transform:translateX(19px);
  }


  /* ====== TOP3ランキング：題名・賃貸/売買 強調表示 ====== */
  .ranking-section .section-head, .pickup-section .section-head{
    text-align:left;
  }
  .ranking-section .section-title{
    font-size:clamp(1.7rem, 5.5vw, 2.4rem);
    text-align:left;
  }
  .ranking-section .pickup-col-label{
    font-size:1.0rem;
    padding:10px 12px;
  }
  .ranking-thumb{ display:none; }
  /* ② おすすめピックアップ物件：題名も拡大＋左揃え */
  .pickup-section .section-title{
    font-size:clamp(1.7rem, 5.5vw, 2.4rem);
    text-align:left;
  }


  /* ====== 文字サイズ変更ボタン ====== */
  .fontsize-btn{
    display:flex;
    width:42px;height:42px;border-radius:10px;
    background:rgba(42,168,224,0.1);border:none;
    align-items:center;justify-content:center;
    cursor:pointer;flex-shrink:0;
    font-family:var(--font-display);font-weight:900;
    color:var(--ocean-deep);font-size:1rem;
  }
  /* ====== ヘッダー電話ボタン ====== */
  .tel-header-btn{
    display:flex;
    width:42px;height:42px;border-radius:10px;
    background:rgba(42,168,224,0.1);border:none;
    align-items:center;justify-content:center;
    cursor:pointer;flex-shrink:0;text-decoration:none;
    transition:transform .15s ease, background .15s ease;
    position:relative;
    gap:8px;
  }
  .tel-header-btn:hover{ background:rgba(42,168,224,0.2); }
  .tel-header-btn:active{ transform:scale(0.88); background:rgba(42,168,224,0.3); }
  /* 電話は最重要アクションのため、控えめに注目を集める光の輪を追加 */
  .tel-header-btn::before{
    content:"";position:absolute;inset:0;border-radius:10px;
    box-shadow:0 0 0 0 rgba(42,168,224,0.4);
    animation:telHeaderPulse 2.6s ease-out infinite;
    pointer-events:none;
  }
  @keyframes telHeaderPulse{
    0%{ box-shadow:0 0 0 0 rgba(42,168,224,0.4); }
    70%{ box-shadow:0 0 0 8px rgba(42,168,224,0); }
    100%{ box-shadow:0 0 0 0 rgba(42,168,224,0); }
  }
  /* 電話番号のテキスト：スマホでは非表示（アイコンのみ） */
  .tel-header-num{
    display:none;
    font-size:0.92rem;font-weight:800;
    color:var(--ocean-deep);white-space:nowrap;
    font-family:var(--font-display);
  }
  /* 900px以上（PC・横向きタブレット等の余裕がある画面）では番号も表示 */
  @media(min-width:900px){
    .tel-header-btn{
      width:auto;padding:0 18px 0 14px;border-radius:999px;
    }
    .tel-header-num{ display:inline-block; }
  }

  /* ====== ヘッダー：電話ボタン＋QRコードの縦並び ====== */
  .tel-qr-stack{
    display:contents; /* スマホでは電話ボタンだけが直接ヘッダーに並ぶ */
  }
  .header-qr-img{
    display:none; /* スマホでは非表示 */
  }
  @media(min-width:900px){
    .tel-qr-stack{
      display:flex;flex-direction:column;align-items:center;gap:6px;
      position:relative;
    }
    .header-qr-img{
      display:block;
      width:42px;height:42px;border-radius:10px;
      border:1.5px solid rgba(42,168,224,0.3);
      background:rgba(42,168,224,0.1);padding:4px;
      box-shadow:0 2px 8px rgba(11,94,140,0.12);
      box-sizing:border-box;
    }
  }

  /* ====== ⭐ ホーム画面に追加ボタン ====== */
  .favorite-btn{
    display:flex;
    width:42px;height:42px;border-radius:10px;
    background:rgba(255,169,77,0.15);border:none;
    align-items:center;justify-content:center;
    cursor:pointer;flex-shrink:0;
    transition:transform .15s ease, background .15s ease;
  }
  .favorite-btn:hover{ background:rgba(255,169,77,0.28); }
  .favorite-btn:active{ transform:scale(0.85) rotate(-8deg); }
  .favorite-btn.added svg path{ fill:#FFA94D; }

  /* ====== ホーム画面追加：iPhone向け案内モーダル ====== */
  .a2hs-overlay{
    display:none;position:fixed;inset:0;z-index:9997;
    background:rgba(11,48,96,0.55);
    align-items:center;justify-content:center;
    padding:20px;
  }
  .a2hs-overlay.open{ display:flex; }
  .a2hs-card{
    background:#fff;border-radius:20px;padding:28px 24px;
    max-width:340px;width:100%;text-align:center;
  }
  .a2hs-title{
    font-family:var(--font-display);font-weight:900;
    font-size:1.05rem;color:#0B3060;margin-bottom:20px;
  }
  .a2hs-steps{ display:flex;flex-direction:column;gap:16px;margin-bottom:20px; }
  .a2hs-step{
    display:flex;align-items:center;gap:12px;text-align:left;
    background:#F7FBFD;border-radius:12px;padding:12px 14px;
  }
  .a2hs-step-num{
    flex-shrink:0;width:24px;height:24px;border-radius:50%;
    background:linear-gradient(135deg,#2AA8E0,#0B5E8C);color:#fff;
    display:flex;align-items:center;justify-content:center;
    font-weight:900;font-size:0.8rem;
  }
  .a2hs-step-text{
    flex:1;font-size:0.78rem;color:#334155;line-height:1.5;
  }
  .a2hs-step-text strong{ color:#0B5E8C; }
  .a2hs-step-icon{ flex-shrink:0; }
  .a2hs-close-btn{
    width:100%;padding:12px;border-radius:10px;border:none;
    background:#F0F4F8;color:#5C7E8F;font-weight:700;cursor:pointer;
  }

  .mailto-btn{
    display:flex;
    width:42px;height:42px;border-radius:10px;
    background:rgba(42,168,224,0.1);border:none;
    align-items:center;justify-content:center;
    cursor:pointer;flex-shrink:0;
    transition:transform .15s ease, background .15s ease;
  }
  .mailto-btn:hover{ background:rgba(42,168,224,0.2); }
  .mailto-btn:active{ transform:scale(0.88); background:rgba(42,168,224,0.3); }
  .fontsize-popover{
    display:none;position:fixed;z-index:9993;
    top:64px;right:62px;
    background:#fff;border-radius:14px;
    box-shadow:0 8px 28px rgba(0,40,90,0.22);
    padding:8px;flex-direction:column;gap:4px;
    min-width:120px;
  }
  .fontsize-popover.open{ display:flex; }
  .fontsize-popover button{
    display:flex;align-items:center;justify-content:space-between;
    background:none;border:none;text-align:left;
    padding:10px 12px;border-radius:9px;
    font-family:inherit;color:#334155;font-size:0.84rem;font-weight:700;
    cursor:pointer;
  }
  .fontsize-popover button.active{
    background:rgba(42,168,224,0.12);color:var(--ocean-deep);
  }
  .fontsize-popover button .fsz-preview{
    font-family:var(--font-display);font-weight:900;color:var(--ocean-bright);
  }

  /* ====== 文字サイズ拡大対象（読みもの中心・UI要素は対象外） ====== */
  html.fsz-large .hero p,
  html.fsz-large .ceo-catch-text, html.fsz-large .ceo-catch-sub, html.fsz-large .ceo-catch-lead, html.fsz-large .ceo-catch-motto,
  html.fsz-large .ceo-msg-body, html.fsz-large .ceo-msg-quote,
  html.fsz-large .info-value,
  html.fsz-large .area-intro-desc,
  html.fsz-large .pickup-spec, html.fsz-large .pickup-points li,
  html.fsz-large .ranking-title,
  html.fsz-large .legal-body,
  html.fsz-large .access-row,
  html.fsz-large .shuttle-sub,
  html.fsz-large .qmfs-q, html.fsz-large .qmfs-c,
  html.fsz-large .tk-q-txt, html.fsz-large .tk-choice
  { font-size:1.14em !important; line-height:1.75 !important; }

  html.fsz-xlarge .hero p,
  html.fsz-xlarge .ceo-catch-text, html.fsz-xlarge .ceo-catch-sub, html.fsz-xlarge .ceo-catch-lead, html.fsz-xlarge .ceo-catch-motto,
  html.fsz-xlarge .ceo-msg-body, html.fsz-xlarge .ceo-msg-quote,
  html.fsz-xlarge .info-value,
  html.fsz-xlarge .area-intro-desc,
  html.fsz-xlarge .pickup-spec, html.fsz-xlarge .pickup-points li,
  html.fsz-xlarge .ranking-title,
  html.fsz-xlarge .legal-body,
  html.fsz-xlarge .access-row,
  html.fsz-xlarge .shuttle-sub,
  html.fsz-xlarge .qmfs-q, html.fsz-xlarge .qmfs-c,
  html.fsz-xlarge .tk-q-txt, html.fsz-xlarge .tk-choice
  { font-size:1.28em !important; line-height:1.8 !important; }


  /* ====== オープニング演出 ====== */
  #openingOverlay{
    position:fixed;inset:0;z-index:99999;
    background:linear-gradient(180deg,#04101F,#0B2A4A 60%,#0E3E66);
    overflow:hidden;
    display:flex;align-items:center;justify-content:center;
  }
  #openingOverlay.hide{
    animation:openingFadeOut .6s ease forwards;
    pointer-events:none;
  }
  @keyframes openingFadeOut{
    to{ opacity:0; visibility:hidden; }
  }
  .opening-skip{
    position:absolute;top:max(18px,env(safe-area-inset-top));right:18px;z-index:20;
    background:rgba(255,255,255,0.12);color:#fff;
    border:1px solid rgba(255,255,255,0.3);
    padding:8px 16px;border-radius:999px;
    font-size:0.78rem;font-weight:700;
    backdrop-filter:blur(4px);
    cursor:pointer;
  }
  /* 水滴 */
  .op-drop{
    position:absolute;top:-30px;left:50%;
    width:9px;height:13px;
    background:linear-gradient(180deg,#D4F4FC,#2AA8E0);
    border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
    transform:translateX(-50%) rotate(180deg);
    opacity:0;
    box-shadow:0 0 8px rgba(159,224,245,0.8);
    animation:opDropFall 0.55s cubic-bezier(.7,0,.9,.5) forwards;
  }
  @keyframes opDropFall{
    0%{ opacity:1; top:-30px; }
    80%{ opacity:1; top:50%; }
    100%{ opacity:0; top:50%; }
  }
  .op-ripple{
    position:absolute;top:50%;left:50%;
    width:8px;height:8px;border-radius:50%;
    border:1.6px solid rgba(210,245,255,0.95);
    box-shadow:0 0 10px rgba(159,224,245,0.5), inset 0 0 6px rgba(255,255,255,0.4);
    transform:translate(-50%,-50%);
    opacity:0;
  }
  .op-ripple.go{
    animation:opRippleGo 0.85s cubic-bezier(.15,.6,.35,1) forwards;
  }
  @keyframes opRippleGo{
    0%{ width:8px;height:8px;opacity:1; }
    100%{ width:340px;height:340px;opacity:0; }
  }
  /* 全画面 走馬灯モンタージュ */
  .op-fullimg{
    position:absolute;inset:0;
    background-size:cover;background-position:center;
    opacity:0;
    transform:scale(1.22);
    filter:brightness(0.7) saturate(1.05);
  }
  @media(max-width:768px){
    .op-fullimg{
      background-size:100% auto;
      background-repeat:no-repeat;
      background-color:#04101F;
    }
  }
  .op-fullimg::after{
    content:"";position:absolute;inset:0;
    background:radial-gradient(ellipse at center,rgba(0,0,0,0) 45%,rgba(0,10,30,0.35) 100%);
  }
  .op-fullimg.show{
    animation:opFullShow 0.42s ease-in-out forwards;
  }
  @keyframes opFullShow{
    0%{ opacity:0; transform:scale(1.2); filter:brightness(0.86) saturate(1.02) blur(10px); }
    25%{ opacity:1; transform:scale(1.15); filter:brightness(1) saturate(1.04) blur(0px); }
    85%{ opacity:1; transform:scale(1.0); filter:brightness(1) saturate(1.02) blur(0px); }
    100%{ opacity:0; transform:scale(0.97); filter:brightness(0.9) saturate(1) blur(9px); }
  }
  /* 最後の画像専用：70%アップから全体が見え、3秒静止してから消える */
  .op-fullimg.show-last{
    animation-name:opLastImgShow;
    animation-timing-function:ease;
    animation-fill-mode:forwards;
  }
  @keyframes opLastImgShow{
    0%{ opacity:0; transform:scale(1.42); filter:brightness(0.85) saturate(1.02) blur(8px); }
    8%{ opacity:1; transform:scale(1.4); filter:brightness(1) saturate(1.04) blur(0px); }
    38%{ opacity:1; transform:scale(1.0); filter:brightness(1) saturate(1.02) blur(0px); }
    92%{ opacity:1; transform:scale(1.0); filter:brightness(1) saturate(1.02) blur(0px); }
    100%{ opacity:0; transform:scale(0.97); filter:brightness(0.9) saturate(1) blur(6px); }
  }

  /* 光の渦 */
  .op-vortex{
    position:absolute;top:50%;left:50%;width:6px;height:6px;
    border-radius:50%;
    background:radial-gradient(circle,#fff 0%,#FFD27A 35%,#2AA8E0 70%,transparent 100%);
    transform:translate(-50%,-50%);
    opacity:0;
    filter:blur(1px);
  }
  .op-vortex.core-pulse{
    animation:opVortexCore 1.7s ease-in forwards;
  }
  @keyframes opVortexCore{
    0%{ width:6px;height:6px;opacity:0; }
    25%{ opacity:0.9;width:14px;height:14px; }
    70%{ opacity:0.95;width:22px;height:22px; }
    100%{ width:160px;height:160px;opacity:1; }
  }
  /* 大小さまざまな泡が渦を巻きながら中心に吸い込まれる */
  .op-bubble{
    position:fixed;border-radius:50%;
    background:radial-gradient(circle at 35% 32%, rgba(255,255,255,0.98) 0%, rgba(180,232,248,0.85) 45%, rgba(42,168,224,0.35) 80%, transparent 100%);
    box-shadow:0 0 6px rgba(159,224,245,0.7), inset 0 0 4px rgba(255,255,255,0.6);
    opacity:0;
    pointer-events:none;
    z-index:5;
    animation-name:opBubbleSuck;
    animation-timing-function:cubic-bezier(.45,0,.6,1);
    animation-fill-mode:forwards;
  }
  .svg-bubble{
    opacity:0;
    pointer-events:none;
    transform-box:fill-box;
    transform-origin:center;
    animation-name:opBubbleSuck;
    animation-timing-function:cubic-bezier(.45,0,.6,1);
    animation-fill-mode:forwards;
  }
  @keyframes opBubbleSuck{
    0%{ opacity:0; transform:translate(0,0) scale(1) rotate(0deg); }
    12%{ opacity:1; }
    65%{ opacity:0.95; }
    100%{ opacity:0; transform:translate(var(--tx),var(--ty)) scale(0.06) rotate(var(--brot)); }
  }
  /* フラッシュアウト */
  .op-flash{
    position:absolute;inset:0;background:#fff;opacity:0;
  }

  /* ====== 冒頭：アナログ日付スタンプ風タイプライター ====== */
  .op-typewriter-bg{
    position:absolute;inset:0;background:#000;
    opacity:1;
  }
  .op-typewriter{
    position:absolute;
    top:50%;left:8%;
    font-family:'Courier New',Courier,monospace;
    font-weight:700;
    font-size:clamp(0.85rem,2.6vw,1.3rem);
    letter-spacing:0.06em;
    color:#FF7A1A;
    text-shadow:0 0 4px rgba(255,122,26,0.85),0 0 14px rgba(255,122,26,0.5),0 0 26px rgba(255,90,0,0.3);
    opacity:0;
    transform:translateY(-50%) skewX(-3deg);
    white-space:nowrap;
  }
  .op-typewriter.go{ animation:opTwShow 0.1s ease forwards; }
  @keyframes opTwShow{ to{ opacity:1; } }
  .op-typewriter.hide{
    transition:opacity 0.85s ease;
    opacity:0 !important;
  }
  .op-typewriter-bg.hide{
    transition:opacity 0.85s ease;
    opacity:0 !important;
  }
  .op-tw-cursor{
    display:inline-block;width:0.5em;
    background:#FF7A1A;
    box-shadow:0 0 6px rgba(255,122,26,0.9);
    margin-left:2px;
    animation:opTwBlink 0.5s step-end infinite;
  }
  @keyframes opTwBlink{ 50%{ opacity:0; } }
  .op-flash.go{
    animation:opFlashGo 0.7s ease-in forwards;
  }
  @keyframes opFlashGo{
    0%{ opacity:0; }
    55%{ opacity:1; }
    100%{ opacity:1; }
  }


  /* ====== ヒーロー背景スライダー（3〜5枚設定可） ====== */
  .hero{ position:relative; overflow:hidden; }
  .hero-slider{
    position:absolute;inset:0;z-index:0;
  }
  .hero-slide{
    position:absolute;inset:0;
    background-size:cover;background-position:center;
    opacity:0;
    transition:opacity 1.8s ease;
  }
  @media(max-width:768px){
    .hero-slide{
      background-size:100% auto;
      background-repeat:no-repeat;
      background-color:#EAF4FB;
    }
  }
  .hero-slide.active{ opacity:1; }
  .hero-slide::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(255,255,255,0.55) 0%,rgba(255,255,255,0.32) 45%,rgba(255,255,255,0.6) 100%);
  }
  .hero-inner, .hero .bubble{ position:relative; z-index:2; }
  .hero-slider-dots{
    position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
    z-index:3;display:flex;gap:7px;
  }
  .hero-slider-dots button{
    width:7px;height:7px;border-radius:50%;
    background:rgba(11,94,140,0.3);border:none;padding:0;cursor:pointer;
  }
  .hero-slider-dots button.on{ background:var(--ocean-deep); width:18px;border-radius:4px; }


  /* ============================================
     不動産用語集 専用スタイル
  ============================================ */
  .glossary-archive-lead{
    font-size:0.85rem;color:#5C7E8F;line-height:1.7;margin-top:8px;text-align:center;
  }
  .glossary-search-box{ position:relative;margin:20px 0 16px; }
  .glossary-search-input{
    width:100%;padding:14px 44px 14px 18px;border-radius:999px;
    border:2px solid #A6EAF0;font-size:1rem;outline:none;font-family:inherit;
  }
  .glossary-search-input:focus{ border-color:#2AA8E0; }
  .glossary-search-icon{ position:absolute;right:18px;top:50%;transform:translateY(-50%);color:#2AA8E0; }
  .glossary-suggest-list{
    position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;
    border-radius:14px;box-shadow:0 8px 24px rgba(0,40,90,0.15);
    max-height:280px;overflow-y:auto;display:none;z-index:20;
  }
  .glossary-suggest-list.show{ display:block; }
  .glossary-suggest-item{
    padding:11px 16px;cursor:pointer;border-bottom:1px solid #F0F4F8;
    display:flex;justify-content:space-between;align-items:center;
  }
  .glossary-suggest-item:hover, .glossary-suggest-item.active{ background:#EAF4FB; }
  .glossary-suggest-term{ font-weight:700;color:#0B5E8C; }
  .glossary-suggest-genre{ font-size:0.7rem;color:#64748B;background:#F0F4F8;padding:2px 8px;border-radius:999px; }
  .glossary-suggest-empty{ padding:16px;text-align:center;color:#64748B;font-size:0.85rem; }

  .glossary-mode-tabs{ display:flex;gap:8px;margin-bottom:16px; }
  .glossary-mode-tab{
    flex:1;padding:10px;text-align:center;border-radius:10px;background:#fff;
    border:1px solid #A6EAF0;font-weight:700;font-size:0.85rem;color:#5C7E8F;cursor:pointer;
  }
  .glossary-mode-tab.active{
    background:linear-gradient(135deg,#2AA8E0,#0B5E8C);color:#fff;border-color:transparent;
  }
  .glossary-filter-tabs{ display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px; }
  .glossary-filter-tab{
    padding:7px 14px;border-radius:999px;background:#fff;border:1px solid #A6EAF0;
    font-size:0.78rem;color:#0B5E8C;cursor:pointer;font-weight:600;
  }
  .glossary-filter-tab.active{ background:#2AA8E0;color:#fff;border-color:#2AA8E0; }
  .glossary-index-tabs{ display:flex;gap:4px;flex-wrap:wrap;margin-bottom:16px;padding:10px;background:#fff;border-radius:12px; }
  .glossary-index-tab{
    width:30px;height:30px;display:flex;align-items:center;justify-content:center;
    border-radius:8px;background:#F0F4F8;font-size:0.78rem;font-weight:700;color:#0B5E8C;cursor:pointer;
    position:relative;
  }
  /* タップ領域を44px相当に拡張（見た目のサイズは30pxのまま、誤タップを防止） */
  .glossary-index-tab::after{
    content:"";position:absolute;top:50%;left:50%;
    width:44px;height:44px;transform:translate(-50%,-50%);
  }
  .glossary-index-tab.active{ background:#2AA8E0;color:#fff; }
  .glossary-index-tab.disabled{ opacity:0.3;cursor:default; }

  .glossary-term-count{ font-size:0.78rem;color:#5C7E8F;margin-bottom:10px; }
  .glossary-term-grid{ display:grid;gap:10px; }
  .glossary-term-card{
    display:block;background:#fff;border-radius:14px;padding:16px 18px;
    box-shadow:0 2px 10px rgba(0,40,90,0.06);text-decoration:none;
    border:1px solid transparent;transition:.15s;
  }
  .glossary-term-card:hover{ border-color:#2AA8E0; }
  .glossary-term-card-top{ display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:4px; }
  .glossary-term-name{ font-weight:800;color:#0B5E8C;font-size:1.02rem; }
  .glossary-term-genre-tag{ font-size:0.68rem;background:#EAF4FB;color:#2AA8E0;padding:3px 9px;border-radius:999px;white-space:nowrap;font-weight:700; }
  .glossary-term-yomi{ font-size:0.72rem;color:#64748B;margin-bottom:6px; }
  .glossary-term-short{ font-size:0.85rem;color:#3D5A6C;line-height:1.6; }
  .glossary-no-result{ text-align:center;padding:40px 0;color:#64748B; }

  /* 用語集 単体ページ */
  .glossary-genre-badge{
    display:inline-block;font-size:0.74rem;background:#EAF4FB;color:#2AA8E0;
    padding:5px 14px;border-radius:999px;font-weight:700;margin-bottom:10px;text-decoration:none;
  }
  .glossary-term-title{ font-size:1.5rem;color:#0B3060;margin-bottom:4px;font-weight:900; }
  .glossary-term-yomi{ font-size:0.85rem;color:#64748B;margin-bottom:18px; }
  .glossary-summary-box{
    background:linear-gradient(135deg,#EAF4FB,#D6ECF8);border-radius:14px;
    padding:18px 20px;margin-bottom:22px;font-size:1rem;line-height:1.8;color:#0B3060;
  }
  .glossary-content{ font-size:0.95rem;line-height:1.9;color:#2D4452; }
  .glossary-related-box{ margin-top:28px;padding-top:20px;border-top:1px dashed #DCE8F0; }
  .glossary-related-h{ font-size:0.9rem;color:#5C7E8F;margin-bottom:10px;font-weight:700; }
  .glossary-related-chips{ display:flex;flex-wrap:wrap;gap:8px; }
  .glossary-related-chip{
    display:inline-block;padding:8px 16px;background:#F0F4F8;border-radius:999px;
    font-size:0.82rem;color:#0B5E8C;text-decoration:none;font-weight:600;
  }
  .glossary-related-chip:hover{ background:#A6EAF0; }
  .glossary-cta-box{
    margin-top:28px;padding:22px 18px;border-radius:14px;
    background:linear-gradient(135deg,#FFF4E6,#FFE8CC);text-align:center;
  }
  .glossary-cta-box p{ font-weight:700;color:#7A4A12;margin-bottom:14px;font-size:0.88rem; }
  .glossary-cta-btns{ display:flex;gap:10px;justify-content:center;flex-wrap:wrap; }
  .glossary-cta-btn{
    display:inline-flex;align-items:center;gap:6px;padding:11px 22px;border-radius:999px;
    font-weight:700;font-size:0.85rem;text-decoration:none;
  }
  .glossary-cta-btn.tel{ background:linear-gradient(135deg,#FFA94D,#D9740B);color:#fff; }
  .glossary-cta-btn.mail{ background:#fff;color:#D9740B;border:1px solid #D9740B; }
  .glossary-back-link{ margin-top:24px;text-align:center; }
  .glossary-back-link a{ color:#2AA8E0;font-weight:700;font-size:0.85rem;text-decoration:none; }
  .glossary-cta-secondary{ margin-top:12px;text-align:center; }
  .glossary-cta-secondary a{ color:#D9740B;font-weight:700;font-size:0.8rem;text-decoration:underline; }
  .glossary-archive-cta{
    margin-top:36px;padding:24px 20px;border-radius:16px;
    background:linear-gradient(135deg,#EAF4FB,#D6ECF8);text-align:center;
  }
  .glossary-archive-cta p{ font-weight:700;color:#0B3060;margin-bottom:16px;font-size:0.9rem; }

  /* パンくずリスト（全ページ共通） */
  .seaside-breadcrumb{ margin-bottom:16px; }
  .seaside-breadcrumb ol{ list-style:none;display:flex;flex-wrap:wrap;gap:4px;padding:0;margin:0; }
  .seaside-breadcrumb li{ font-size:0.74rem;color:#64748B;display:flex;align-items:center;gap:4px; }
  .seaside-breadcrumb a{ color:#2AA8E0;text-decoration:none; }
  .seaside-bc-sep{ color:#CBD5E1; }

  /* サイト内自動リンク（用語集へのリンク） */
  .seaside-glossary-link{
    color:#0B5E8C;text-decoration:underline;text-decoration-style:dotted;
    text-underline-offset:3px;font-weight:600;
  }
  .seaside-glossary-link:hover{ color:#2AA8E0; }

  /* ============================================
     メールコピー通知（トースト）
     メールソフトが無い方でも、コピーされたことが
     分かるよう画面下にふわっと表示する演出
  ============================================ */
  .mail-copy-toast{
    position:fixed;left:50%;bottom:24px;
    transform:translateX(-50%) translateY(20px);
    background:linear-gradient(135deg,#0B5E8C,#2AA8E0);
    color:#fff;padding:14px 22px;border-radius:14px;
    box-shadow:0 8px 24px rgba(11,94,140,0.35);
    font-size:0.85rem;line-height:1.5;
    display:flex;align-items:center;gap:10px;
    max-width:90vw;z-index:99999;
    opacity:0;transition:opacity .3s ease, transform .3s ease;
    pointer-events:none;
  }
  .mail-copy-toast.show{
    opacity:1;transform:translateX(-50%) translateY(0);
  }
  .mail-copy-toast-icon{ font-size:1.3rem;flex-shrink:0; }
  .mail-copy-toast strong{ font-size:0.9rem;letter-spacing:0.02em; }

  /* ============================================
     品川の街を紹介する仲間たち
  ============================================ */
  .mascot-lead{
    font-size:0.82rem;color:#5C7E8F;line-height:1.7;
    text-align:center;margin-top:8px;max-width:520px;
    margin-left:auto;margin-right:auto;
  }
  .mascot-grid{
    display:grid;grid-template-columns:repeat(2,1fr);
    gap:12px;margin-top:24px;
  }
  @media(min-width:600px){
    .mascot-grid{ grid-template-columns:repeat(4,1fr); }
  }
  .mascot-card{
    display:flex;flex-direction:column;align-items:center;
    background:#fff;border:none;border-radius:16px;
    padding:18px 10px;cursor:pointer;
    box-shadow:0 3px 12px rgba(11,94,140,0.08);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .mascot-card:hover{
    transform:translateY(-4px);
    box-shadow:0 8px 20px rgba(11,94,140,0.16);
  }
  .mascot-avatar{
    width:56px;height:56px;border-radius:50%;
    background:linear-gradient(135deg, var(--m-color1), var(--m-color2));
    display:flex;align-items:center;justify-content:center;
    margin-bottom:10px;
  }
  .mascot-name{
    font-family:var(--font-display);font-weight:900;
    font-size:0.85rem;color:#0B3060;
  }
  .mascot-role{
    font-size:0.65rem;color:#94A3B8;margin-top:3px;text-align:center;
  }

  /* ====== キャラクター紹介モーダル（タブ切替式） ====== */
  .mascot-modal-overlay{
    display:none;position:fixed;inset:0;z-index:9998;
    background:rgba(11,48,96,0.55);
    align-items:center;justify-content:center;padding:16px;
  }
  .mascot-modal-overlay.open{ display:flex; }
  .mascot-modal-card{
    background:#fff;border-radius:22px;
    max-width:420px;width:100%;max-height:85vh;
    overflow-y:auto;position:relative;
  }
  .mascot-modal-close{
    position:absolute;top:14px;right:14px;z-index:2;
    width:32px;height:32px;border-radius:50%;
    background:#F0F4F8;border:none;color:#5C7E8F;
    display:flex;align-items:center;justify-content:center;cursor:pointer;
  }
  .mascot-modal-tabs{
    display:flex;flex-wrap:wrap;gap:6px;
    padding:20px 20px 0;
  }
  .mascot-tab-btn{
    padding:7px 12px;border-radius:999px;border:1.5px solid #E2E8F0;
    background:#fff;color:#5C7E8F;font-size:0.72rem;font-weight:700;
    cursor:pointer;transition:.15s;
  }
  .mascot-tab-btn.active{
    background:linear-gradient(135deg,#2AA8E0,#0B5E8C);
    color:#fff;border-color:transparent;
  }
  .mascot-modal-body{
    padding:24px 24px 28px;text-align:center;
  }
  .mascot-modal-avatar{
    width:88px;height:88px;border-radius:50%;
    background:linear-gradient(135deg, var(--m-color1,#2AA8E0), var(--m-color2,#0B5E8C));
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 14px;
  }
  .mascot-modal-name{
    font-family:var(--font-display);font-weight:900;
    font-size:1.1rem;color:#0B3060;
  }
  .mascot-modal-role{
    font-size:0.75rem;color:#94A3B8;margin-top:4px;margin-bottom:14px;
  }
  .mascot-modal-desc{
    font-size:0.85rem;color:#3D5A6C;line-height:1.8;
  }

  /* ============================================
     人気の検索キーワード（検索バーの下）
  ============================================ */
  .popular-keywords-box{ margin-top:10px; }
  .popular-keywords-label{
    font-size:0.7rem;color:#94A3B8;margin-bottom:8px;font-weight:700;
  }
  .popular-keywords-chips{ display:flex;flex-wrap:wrap;gap:8px; }
  .popular-keyword-chip{
    padding:7px 14px;border-radius:999px;
    background:linear-gradient(135deg,#EAF4FB,#D6ECF8);
    border:1px solid rgba(42,168,224,0.25);
    color:#0B5E8C;font-size:0.78rem;font-weight:700;
    cursor:pointer;transition:.15s;
  }
  .popular-keyword-chip:hover{
    background:linear-gradient(135deg,#2AA8E0,#0B5E8C);
    color:#fff;border-color:transparent;
  }
