/* Global Styles */
body {
    font-family: 'Noto Sans JP', sans-serif;
    line-height: 1.6;
    color: #333;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
}

/* Header */
.navbar-brand {
    font-weight: bold;
}

/* Footer */
footer {
    margin-top: 30px;
}

/* Card styling */
.card {
    margin-bottom: 20px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    border-radius: 8px;
    overflow: hidden;
}

.card-header {
    font-weight: bold;
}

/* Home page */
.jumbotron {
    background-size: cover;
    background-position: center;
    margin-bottom: 30px;
}

/* Blog styling */
.blog-content {
    line-height: 1.8;
}

.blog-content img {
    max-width: 100%;
    height: auto;
    margin: 20px 0;
}

.blog-content h2, 
.blog-content h3 {
    margin-top: 30px;
    margin-bottom: 15px;
}

.blog-content ul, 
.blog-content ol {
    margin-bottom: 20px;
    padding-left: 20px;
}

/* Staff profile */
.staff-profile img {
    max-width: 100%;
    border-radius: 50%;
    margin-bottom: 15px;
}

/* Repair menus */
.repair-price {
    font-size: 1.2rem;
    font-weight: bold;
    color: #198754;
}

/* FAQ */
.accordion-button:not(.collapsed) {
    background-color: #f8f9fa;
    color: #0d6efd;
}

/* Admin Dashboard */
.admin-sidebar {
    min-height: calc(100vh - 56px);
    background-color: #343a40;
}

.admin-sidebar .nav-link {
    color: rgba(255, 255, 255, 0.8);
}

.admin-sidebar .nav-link:hover,
.admin-sidebar .nav-link.active {
    color: #fff;
    background-color: rgba(255, 255, 255, 0.1);
}

/* Responsive */
@media (max-width: 768px) {
    .jumbotron {
        padding: 2rem 1rem;
    }
    
    h1 {
        font-size: 2rem;
    }
    
    h2 {
        font-size: 1.75rem;
    }
}

/* Utility classes */
.text-bold {
    font-weight: bold;
}

.bg-light-gray {
    background-color: #f8f9fa;
}

/* カードタイトルの後の疑問符アイコンを非表示 */
.card-header .card-title::after {
    display: none !important;
}

/* Form styling */
.form-control:focus {
    border-color: #80bdff;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

/* Flash messages */
#msg-flash {
    margin-top: 10px;
    margin-bottom: 10px;
    border-radius: 4px;
    padding: 10px 15px;
}

/* =========================================================
   X-repair テーマ（www 準拠デザイン） 2026-07
   すべて .xr- 接頭辞で Bootstrap と分離
   ========================================================= */
:root{
  --xr-brand:#e60028; --xr-brand-dark:#bf0000; --xr-orange:#ea5404; --xr-orange-lt:#ff7a15;
  --xr-teal:#387d7e; --xr-green:#6ba563;
  --xr-ink:#2b2b2f; --xr-ink-soft:#5c5c66; --xr-line:#e7e8ec;
  --xr-bg:#ffffff; --xr-panel:#f5f6f8; --xr-card:#ffffff;
  --xr-shadow:0 10px 30px rgba(20,20,40,.08); --xr-radius:16px;
  --xr-disp:"Sawarabi Gothic","Hiragino Kaku Gothic ProN","Yu Gothic Medium",Meiryo,sans-serif;
  --xr-body:"Noto Sans JP","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
}

/* 横スクロール防止（フルブリード用） */
body{overflow-x:hidden;}

/* container を突き抜けて画面幅にするユーティリティ */
.xr-fullbleed{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;}
.xr-wrap{max-width:1140px;margin:0 auto;padding:0 20px;}
.xr section,.xr-section{padding:66px 0;}
.xr *{box-sizing:border-box;}
.xr h1,.xr h2,.xr h3{font-family:var(--xr-disp);font-weight:700;line-height:1.35;margin:0;text-wrap:balance;}
.xr p{margin:0;}
.xr a{text-decoration:none;color:inherit;}

/* 上部お知らせバー */
.xr-topbar{background:linear-gradient(90deg,var(--xr-brand),var(--xr-orange));color:#fff;font-size:13px;text-align:center;padding:7px 12px;letter-spacing:.02em;}

/* 見出し共通 */
.xr-sec-head{text-align:center;margin-bottom:38px;}
.xr-sec-head .en{font-family:var(--xr-disp);color:var(--xr-brand);font-weight:800;letter-spacing:.14em;font-size:13px;}
.xr-sec-head h2{font-size:clamp(24px,3.2vw,34px);margin-top:6px;color:var(--xr-ink);}
.xr-alt{background:var(--xr-panel);}

/* ヒーロー */
.xr-hero{position:relative;overflow:hidden;background:
   radial-gradient(1200px 500px at 80% -10%, rgba(234,84,4,.18), transparent 60%),
   radial-gradient(900px 500px at 0% 110%, rgba(230,0,40,.14), transparent 55%),
   var(--xr-panel);}
.xr-hero .xr-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:center;padding:60px 20px 68px;max-width:1140px;margin:0 auto;}
.xr-badges{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
.xr-chip{display:inline-flex;align-items:center;gap:7px;background:var(--xr-card);border:1px solid var(--xr-line);color:var(--xr-ink);padding:7px 14px;border-radius:999px;font-weight:700;font-size:13px;font-family:var(--xr-disp);box-shadow:var(--xr-shadow);}
.xr-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--xr-green);}
.xr-hero h1{font-size:clamp(30px,4.6vw,52px);letter-spacing:.01em;color:var(--xr-ink);}
.xr-hero h1 .accent{color:var(--xr-brand);}
.xr-hero h1 .u{background:linear-gradient(transparent 62%, rgba(255,122,21,.45) 62%);}
.xr-lead{color:var(--xr-ink-soft);font-size:17px;margin:18px 0 26px;max-width:34em;}
.xr-cta{display:flex;gap:12px;flex-wrap:wrap;}
.xr-btn{display:inline-flex;align-items:center;gap:9px;padding:14px 24px;border-radius:999px;font-weight:800;font-family:var(--xr-disp);font-size:16px;border:2px solid transparent;cursor:pointer;}
.xr-btn-tel{background:var(--xr-brand);color:#fff;box-shadow:0 10px 22px rgba(230,0,40,.32);}
.xr-btn-tel:hover{background:var(--xr-brand-dark);color:#fff;}
.xr-btn-line{background:#06c755;color:#fff;box-shadow:0 10px 22px rgba(6,199,85,.3);}
.xr-btn-line:hover{filter:brightness(.95);color:#fff;}
.xr-hero-note{margin-top:16px;font-size:13px;color:var(--xr-ink-soft);}
.xr-hero-visual{position:relative;display:grid;place-items:center;min-height:340px;}
.xr-hero-visual .phone{width:min(300px,80%);filter:drop-shadow(0 24px 40px rgba(0,0,0,.22));position:relative;z-index:2;}
.xr-hero-visual .guarantee{position:absolute;top:4%;right:8%;width:112px;z-index:3;animation:xr-float 4s ease-in-out infinite;}
.xr-blob{position:absolute;width:330px;height:330px;border-radius:46% 54% 60% 40%/50% 44% 56% 50%;background:linear-gradient(135deg,var(--xr-orange-lt),var(--xr-brand));opacity:.16;filter:blur(6px);z-index:1;}
@keyframes xr-float{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@media(prefers-reduced-motion:reduce){.xr-hero-visual .guarantee{animation:none;}}

/* 対応デバイス */
.xr-devices{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.xr-device{background:var(--xr-card);border:1px solid var(--xr-line);border-radius:var(--xr-radius);padding:26px 18px;text-align:center;box-shadow:var(--xr-shadow);transition:transform .18s;}
.xr-device:hover{transform:translateY(-4px);}
.xr-device .ic{width:64px;height:64px;margin:0 auto 12px;border-radius:16px;display:grid;place-items:center;font-size:30px;background:linear-gradient(135deg,rgba(230,0,40,.10),rgba(234,84,4,.12));}
.xr-device h3{font-size:17px;color:var(--xr-ink);}
.xr-device p{margin:4px 0 0;font-size:13px;color:var(--xr-ink-soft);}

/* 修理メニュー */
.xr-menu{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.xr-mcard{background:var(--xr-card);border:1px solid var(--xr-line);border-radius:var(--xr-radius);overflow:hidden;box-shadow:var(--xr-shadow);transition:transform .18s;}
.xr-mcard:hover{transform:translateY(-4px);}
.xr-mcard .top{padding:18px 18px 0;display:flex;align-items:center;justify-content:space-between;}
.xr-mcard .no{font-family:var(--xr-disp);font-weight:800;font-size:12px;letter-spacing:.12em;color:var(--xr-brand);}
.xr-mcard .emoji{font-size:26px;}
.xr-mcard .bd{padding:10px 18px 20px;}
.xr-mcard h3{font-size:17px;margin-bottom:4px;color:var(--xr-ink);}
.xr-mcard p{font-size:13px;color:var(--xr-ink-soft);}
.xr-mcard .price{margin-top:12px;font-family:var(--xr-disp);font-weight:800;color:var(--xr-teal);font-size:14px;}

/* CTA バンド */
.xr-band{background:linear-gradient(120deg,var(--xr-brand),var(--xr-orange));color:#fff;border-radius:24px;padding:44px;text-align:center;box-shadow:var(--xr-shadow);}
.xr-band h2{color:#fff;font-size:clamp(22px,3vw,30px);}
.xr-band p{opacity:.92;margin:10px 0 22px;}
.xr-band .xr-btn-tel{background:#fff;color:var(--xr-brand);}
.xr-band .xr-btn-line{background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.6);color:#fff;}

/* 店舗情報・アクセス */
.xr-info{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;}
.xr-info-table dl{display:grid;grid-template-columns:auto 1fr;margin:0;background:var(--xr-card);border:1px solid var(--xr-line);border-radius:var(--xr-radius);overflow:hidden;}
.xr-info-table dt{font-family:var(--xr-disp);font-weight:700;background:var(--xr-panel);padding:12px 16px;border-bottom:1px solid var(--xr-line);color:var(--xr-ink);white-space:nowrap;}
.xr-info-table dd{margin:0;padding:12px 16px;border-bottom:1px solid var(--xr-line);color:var(--xr-ink-soft);}
.xr-info-table dt:nth-last-of-type(1),.xr-info-table dd:nth-last-of-type(1){border-bottom:none;}
.xr-info-table dd a{color:var(--xr-brand);font-weight:700;}
.xr-info-cta{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap;}
.xr-info-map iframe{width:100%;border:0;border-radius:var(--xr-radius);box-shadow:var(--xr-shadow);min-height:360px;display:block;}

/* レスポンシブ */
@media(max-width:980px){.xr-menu{grid-template-columns:repeat(2,1fr);}}
@media(max-width:820px){
  .xr-hero .xr-inner{grid-template-columns:1fr;text-align:center;}
  .xr-badges,.xr-cta{justify-content:center;}
  .xr-lead{margin-inline:auto;}
  .xr-devices{grid-template-columns:repeat(2,1fr);}
  .xr-info{grid-template-columns:1fr;}
}