/* === 大地総合法律事務所 - 原网站完整CSS === */
:root {
  --primary: #1a365d;
  --primary-dark: #0f2b46;
  --primary-light: #2c5282;
  --secondary: #38a169;
  --accent: #e53e3e;
  --gold: #c9a84c;
  --bg-light: #f7f5f0;
  --bg-stripe: #f0ede6;
  --bg-dark: #1a202c;
  --text-dark: #333;
  --text-muted: #666;
  --border: #ddd;
  --shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
  --radius: 8px;
}
*{margin:0;padding:0;box-sizing:border-box}
img{max-width:100%;height:auto;display:block}
body{font-family:'Noto Sans JP',sans-serif;line-height:1.8;color:var(--text-dark);background:#fff}
.Lato{font-family:'Lato',sans-serif}
.Oswald{font-family:'Oswald',sans-serif}
.red{color:var(--accent)}
.yellow{color:#d4a017}
.marker{background:linear-gradient(transparent 60%,#ffeaa7 60%);padding:0 4px}
.pc-only{display:inline}
.sp-only{display:none}

/* 编辑模式 */
.edit-mode{padding-top:60px}
.edit-toolbar{position:fixed;top:0;left:0;right:0;background:var(--primary);color:#fff;padding:15px 20px;z-index:10000;display:flex;justify-content:space-between;align-items:center}
.toolbar-left{display:flex;align-items:center;gap:10px}
.toolbar-title{font-weight:700;font-size:16px}
.btn-save,.btn-logout{background:#fff;color:var(--primary);border:none;padding:8px 20px;border-radius:6px;cursor:pointer;font-weight:600;text-decoration:none;display:inline-block}
.btn-save:hover,.btn-logout:hover{background:var(--secondary);color:#fff}
[contenteditable="true"]{outline:2px dashed #4299e1;outline-offset:4px;cursor:text}
[contenteditable="true"]:focus{outline-color:var(--accent);background:rgba(66,153,225,0.05)}
[data-editable]:hover{outline:2px solid #4299e1}
.delete-btn{position:absolute;top:5px;right:5px;background:var(--accent);color:#fff;border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px;display:none;align-items:center;justify-content:center;z-index:100}
.edit-mode [data-module],.edit-mode [data-submodule]{position:relative}
.edit-mode .delete-btn{display:flex}

/* ヘッダー */
.l-header{background:#fff;padding:15px 30px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px rgba(0,0,0,0.08);position:sticky;top:0;z-index:1000}
.l-header__logo img{height:55px;width:auto}
.l-header__right{display:flex;gap:15px;align-items:center}
.header-line a,.header-form a{display:inline-block;padding:10px 25px;border-radius:25px;font-weight:700;font-size:14px;text-decoration:none;transition:all 0.3s;color:#fff}
.header-line a{background:#06c755}
.header-form a{background:var(--primary)}
.header-line a:hover,.header-form a:hover{opacity:0.85;transform:translateY(-1px)}

/* ヒーロー */
.c-hero{position:relative;width:100%;overflow:hidden}
.c-hero__slide{position:relative}
.c-hero__slide .pc{display:block;width:100%}
.c-hero__slide .sp{display:none;width:100%}
.heroSec__btnArea{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:10}
.heroSec__btn a{display:inline-block;background:#06c755;color:#fff;padding:18px 50px;border-radius:50px;font-weight:700;font-size:20px;text-decoration:none;box-shadow:0 6px 20px rgba(6,199,85,0.4);transition:all 0.3s;text-align:center;line-height:1.5}
.heroSec__btn a:hover{transform:translateY(-3px);box-shadow:0 8px 25px rgba(6,199,85,0.5)}

/* 共通タイトル */
.c-title01{font-size:30px;font-weight:900;text-align:center;margin-bottom:50px;color:var(--text-dark);line-height:1.6}

/* メディア */
.c-media{background:var(--bg-light);padding:60px 20px}
.c-media__inner{max-width:1000px;margin:0 auto}
.c-media__list{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-bottom:25px}
.c-media__item{background:#fff;padding:25px;border-radius:var(--radius);text-align:center;box-shadow:var(--shadow)}
.c-media__item .ttl{font-size:16px;font-weight:700;margin-bottom:15px;line-height:1.5;color:var(--primary)}
.c-media__item .pic img{width:100%;border-radius:6px}
.c-media__txt{text-align:center;font-size:15px;color:var(--text-muted)}

/* 解決実績 */
.c-case{padding:80px 20px;background:#fff}
.c-case__inner{max-width:900px;margin:0 auto}
.c-case__list{display:flex;flex-direction:column;gap:60px}
.c-case__sec{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:40px}
.case-num{display:inline-block;background:var(--primary);color:#fff;padding:6px 20px;border-radius:20px;font-weight:700;font-size:14px;margin-bottom:15px}
.case-num .Lato{font-size:18px;margin-left:5px}
.case-ttl{font-size:22px;font-weight:700;line-height:1.6;margin-bottom:30px;color:var(--text-dark)}
.case-head{display:flex;gap:30px;margin-bottom:30px;align-items:flex-start}
.case-left{display:flex;gap:20px;align-items:center;flex:1}
.case-pic img{width:100px;height:100px;object-fit:cover;border-radius:8px}
.case-name{font-weight:700;font-size:18px;margin-bottom:5px}
.case-info{font-size:14px;line-height:1.6;color:var(--text-muted)}
.case-right{flex:1;text-align:center}
.case-sub-ttl{font-size:18px;font-weight:700;margin-bottom:15px;color:var(--text-dark)}
.case-amount-box{display:flex;flex-direction:column;gap:10px}
.case-amount-before,.case-amount-after{font-size:24px;font-weight:900;padding:10px 20px;border-radius:8px}
.case-amount-before{background:#f0f0f0;color:var(--text-dark)}
.case-amount-after{background:#fff0f0;color:var(--accent)}
.case-content{background:var(--bg-light);padding:30px;border-radius:var(--radius);margin-bottom:20px}
.case-content__ttl{font-size:18px;font-weight:700;text-align:center;margin-bottom:20px;color:var(--primary);line-height:1.4}
.case-content__txt{font-size:15px;line-height:2;color:var(--text-dark)}
.case-result{background:#fff;border:2px solid var(--accent);border-radius:var(--radius);padding:25px}
.case-result__txt{font-size:16px;line-height:1.8;text-align:center}

/* 受任が難しいケース */
.c-difficult{width:100%}
.c-difficult__top{background:#fff;padding:80px 20px}
.c-difficult__top-inner{max-width:1000px;margin:0 auto}
.c-difficult__title{font-size:28px;font-weight:900;text-align:center;margin-bottom:50px;line-height:1.6}
.c-difficult__case-row{display:flex;flex-direction:column;gap:30px}
.c-difficult__case-box{display:flex;gap:40px;align-items:center;background:var(--bg-light);padding:40px;border-radius:var(--radius)}
.c-difficult__case-left{display:flex;align-items:center;gap:25px;flex:1}
.c-difficult__clock img{width:80px;height:80px;object-fit:contain}
.c-difficult__phone img{width:180px;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.1)}
.c-difficult__timeline{display:flex;align-items:center;gap:10px}
.c-difficult__timeline-year{font-size:20px;font-weight:700;font-family:'Oswald',sans-serif}
.c-difficult__timeline-bar{display:flex;align-items:center;gap:6px;flex:1}
.c-difficult__timeline-dot{width:14px;height:14px;background:var(--gold);border-radius:50%;box-shadow:0 2px 4px rgba(201,168,76,0.3)}
.c-difficult__case-right{flex:0 0 auto;text-align:center}
.c-difficult__case-sub{font-size:18px;margin:8px 0;line-height:1.6}
.c-difficult__case-highlight{font-size:32px;font-weight:900;color:var(--gold);margin:12px 0}
.c-difficult__text{font-size:16px;line-height:2;text-align:center;color:var(--text-dark)}

.c-difficult__sep{text-align:center;padding:40px 0;background:var(--primary)}
.c-difficult__sep-badge{display:inline-block;background:var(--gold);color:#fff;padding:18px 55px;font-size:26px;font-weight:900;border-radius:50px;box-shadow:0 6px 20px rgba(201,168,76,0.5);letter-spacing:2px}

.c-difficult__solution{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 100%);padding:80px 20px;color:#fff}
.c-difficult__solution-inner{max-width:900px;margin:0 auto}
.c-difficult__solution-head{display:flex;align-items:center;justify-content:center;gap:30px;margin-bottom:50px}
.c-difficult__leaf-l,.c-difficult__leaf-r{width:70px;opacity:0.9}
.c-difficult__solution-title{font-size:28px;font-weight:900;text-align:center;color:var(--gold);line-height:1.7;flex:1}
.c-difficult__solution-body{text-align:center}
.c-difficult__solution-text{font-size:16px;line-height:2;margin-bottom:20px;color:rgba(255,255,255,0.95)}
.c-difficult__solution-text:last-of-type{margin-bottom:0}
.c-difficult__consult{margin-top:40px}
.c-difficult__consult-balloon{background:#fff;color:var(--text-dark);padding:30px 45px;border-radius:25px;margin:0 auto 40px;max-width:500px;font-size:20px;font-weight:700;line-height:1.8;box-shadow:0 8px 30px rgba(0,0,0,0.3)}
.c-difficult__consult-red{color:var(--accent);font-size:22px}
.c-difficult__consult-pic img{max-width:220px;margin:0 auto;border-radius:var(--radius);box-shadow:0 6px 20px rgba(0,0,0,0.3)}

/* 評価・統計 */
.c-evaluation{background:var(--bg-light);padding:80px 20px}
.c-evaluation__inner{max-width:1000px;margin:0 auto;display:flex;gap:50px;align-items:stretch}
.c-evaluation__left,.c-evaluation__right{flex:1;background:#fff;padding:40px;border-radius:var(--radius);box-shadow:var(--shadow);text-align:center}
.eval-ttl{font-size:22px;font-weight:700;color:var(--primary);margin-bottom:20px}
.eval-num{font-size:42px;font-weight:900;color:var(--primary);margin-bottom:10px}
.eval-txt01{font-size:22px;font-weight:700;color:var(--accent);margin-top:10px}
.eval-stars{display:flex;justify-content:center;gap:8px;margin:20px 0;list-style:none}
.eval-stars img{width:35px;height:35px}
.eval-point{font-size:42px;font-weight:900;color:var(--primary);margin-bottom:15px}
.eval-note{margin-top:20px;padding:15px;background:var(--bg-light);border-radius:6px;font-size:13px;color:var(--text-muted);line-height:1.7}

/* お客様の声 */
.c-review{padding:80px 20px;background:#fff}
.c-review__inner{max-width:1000px;margin:0 auto}
.c-review__slides{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}
.c-review__slide{background:var(--bg-light);padding:30px;border-radius:var(--radius);box-shadow:var(--shadow)}
.review-name{font-size:18px;font-weight:700;color:var(--primary);margin-bottom:12px}
.review-stars{display:flex;gap:4px;margin-bottom:15px;list-style:none}
.review-stars img{width:22px;height:22px}
.review-txt{font-size:14px;line-height:1.9;color:var(--text-dark)}

/* よくある質問 */
.c-faq{background:var(--bg-stripe);padding:80px 20px}
.c-faq__inner{max-width:900px;margin:0 auto}
.c-faq-list dl{background:#fff;border-radius:var(--radius);margin-bottom:20px;overflow:hidden;box-shadow:var(--shadow)}
.c-faq-list dt,.c-faq-list dd{padding:20px 25px;display:flex;gap:15px;align-items:flex-start}
.c-faq-list dt{background:var(--bg-light);border-bottom:2px solid var(--border)}
.faq-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:16px;color:#fff;font-family:'Lato',sans-serif}
dt .faq-icon{background:var(--primary)}
dd .faq-icon{background:var(--secondary)}
.faq-ttl{font-size:16px;font-weight:700;line-height:1.6;flex:1}
.faq-cont{flex:1;font-size:15px;line-height:1.8}

/* 流れ */
.c-flow{padding:80px 20px;background:#fff}
.c-flow__inner{max-width:1100px;margin:0 auto}
.c-flow__list{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}
.c-flow__item{flex:1;min-width:180px;max-width:200px;text-align:center}
.flow-num{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;background:var(--primary);color:#fff;border-radius:50%;font-weight:700;font-size:22px;font-family:'Lato',sans-serif;margin-bottom:15px}
.flow-pic{margin-bottom:15px}
.flow-pic img{width:100%;border-radius:8px}
.flow-ttl{font-size:17px;font-weight:700;margin-bottom:10px;color:var(--primary)}
.flow-txt{font-size:13px;line-height:1.7;color:var(--text-muted)}

/* 事務所について */
.c-office{background:var(--bg-stripe);padding:80px 20px}
.c-office__inner{max-width:900px;margin:0 auto}
.c-office__content{background:#fff;padding:40px;border-radius:var(--radius);box-shadow:var(--shadow)}
.office-name{font-size:22px;font-weight:700;margin-bottom:25px;color:var(--primary);text-align:center}
.office-list{margin-bottom:30px}
.office-list dl{display:flex;padding:12px 0;border-bottom:1px solid var(--border);font-size:15px;line-height:1.8}
.office-list dt{font-weight:700;min-width:160px;color:var(--primary);flex-shrink:0}
.office-list dd{flex:1}
.office-greeting{display:flex;gap:30px;align-items:flex-start}
.office-greeting__txt{flex:1}
.office-greeting__ttl{font-size:20px;font-weight:700;margin-bottom:15px;color:var(--primary)}
.office-greeting__txt p{font-size:14px;line-height:2}
.office-greeting__pic{flex:0 0 300px}
.office-greeting__pic img{width:100%;border-radius:8px}

/* 費用 */
.c-fee{padding:80px 20px;background:#fff}
.c-fee__inner{max-width:800px;margin:0 auto}
.c-fee__content{background:var(--bg-light);padding:40px;border-radius:var(--radius);text-align:center;box-shadow:var(--shadow)}
.fee-txt01{font-size:22px;font-weight:700;margin-bottom:25px;line-height:1.8}
.fee-txt02{font-size:20px;font-weight:700;line-height:1.8}
.fee-note{font-size:14px;color:var(--text-muted);font-weight:400}

/* お問い合わせ */
.c-contact{background:var(--bg-light);padding:80px 20px}
.c-contact__inner{max-width:700px;margin:0 auto}
.contact-form{background:#fff;padding:40px;border-radius:var(--radius);box-shadow:var(--shadow)}
.form-field{margin-bottom:25px}
.form-field label{display:block;font-weight:700;margin-bottom:8px;font-size:15px;color:var(--primary)}
.required{color:var(--accent);margin-left:5px}
.form-field input,.form-field textarea{width:100%;padding:12px 15px;border:2px solid var(--border);border-radius:8px;font-size:15px;font-family:inherit;transition:border-color 0.2s}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--primary)}
.form-field textarea{min-height:150px;resize:vertical}
.field-note{font-size:13px;color:var(--text-muted);margin-top:6px}
.btn-submit{width:100%;background:var(--primary);color:#fff;border:none;padding:16px;border-radius:var(--radius);font-size:18px;font-weight:700;cursor:pointer;transition:all 0.3s}
.btn-submit:hover{background:var(--primary-light)}

/* ページトップ */
.l-pageTop{text-align:center;padding:30px 0}
.l-pageTop img{width:50px;margin:0 auto}

/* フッター */
.l-footer{background:var(--bg-dark);padding:40px 20px}
.l-footer__inner{max-width:900px;margin:0 auto;text-align:center}
.l-footer__logo img{height:50px;margin:0 auto 20px;filter:brightness(0) invert(1)}
.l-footer__copy{color:rgba(255,255,255,0.6);font-size:13px}

/* フロートCTA */
.float-cta{position:fixed;bottom:30px;right:30px;z-index:999}
.float-btn{width:60px;height:60px;border-radius:50%;border:none;background:#06c755;color:#fff;font-size:24px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,0.2);transition:all 0.3s}
.float-btn:hover{transform:scale(1.1)}

/* チャットウィジェット */
.chat-widget{position:fixed;bottom:100px;right:30px;width:350px;height:500px;background:#fff;border-radius:var(--radius);box-shadow:0 10px 40px rgba(0,0,0,0.2);display:none;flex-direction:column;z-index:1000}
.chat-widget.active{display:flex}
.chat-header{background:var(--primary);color:#fff;padding:18px 20px;border-radius:var(--radius) var(--radius) 0 0;display:flex;justify-content:space-between;align-items:center;font-weight:700}
.chat-close-btn{background:none;border:none;cursor:pointer;padding:0}
.chat-close-btn img{width:24px;height:24px}
.chat-messages{flex:1;overflow-y:auto;padding:20px}
.chat-msg{margin-bottom:12px;padding:12px 16px;border-radius:12px;max-width:80%;font-size:14px;line-height:1.6}
.chat-incoming{background:var(--bg-light);margin-right:auto}
.chat-outgoing{background:var(--primary);color:#fff;margin-left:auto}
.chat-input{padding:15px;border-top:1px solid var(--border);display:flex;gap:10px}
.chat-input input{flex:1;padding:10px 15px;border:2px solid var(--border);border-radius:8px;font-size:14px}
.chat-input button{background:var(--primary);color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer}

/* 响应式 */
@media(max-width:768px){
  .pc-only{display:none!important}
  .sp-only{display:inline!important}
  .l-header{flex-direction:column;gap:10px;padding:10px 15px}
  .l-header__logo img{height:40px}
  .l-header__right{flex-direction:column;gap:8px;width:100%}
  .header-line a,.header-form a{width:100%;text-align:center;font-size:13px;padding:8px 15px}
  .c-hero__slide .pc{display:none}
  .c-hero__slide .sp{display:block}
  .heroSec__btnArea{bottom:20px;width:90%}
  .heroSec__btn a{padding:14px 30px;font-size:16px;width:100%}
  .c-title01{font-size:22px;margin-bottom:30px}
  .c-media__list{grid-template-columns:1fr}
  .c-case__sec{padding:20px}
  .case-head{flex-direction:column;gap:20px}
  .case-left{flex-direction:column;width:100%}
  .case-right{width:100%}
  .case-ttl{font-size:18px}
  .case-amount-before,.case-amount-after{font-size:18px}
  .c-difficult__top{padding:40px 15px}
  .c-difficult__title{font-size:22px;margin-bottom:30px}
  .c-difficult__case-box{flex-direction:column;gap:20px;padding:20px}
  .c-difficult__case-left{flex-direction:column;gap:15px;width:100%}
  .c-difficult__clock img{width:60px;height:60px}
  .c-difficult__phone img{width:100%}
  .c-difficult__timeline{width:100%}
  .c-difficult__case-right{width:100%}
  .c-difficult__case-highlight{font-size:24px}
  .c-difficult__case-sub{font-size:15px}
  .c-difficult__text{font-size:14px;padding:0 10px}
  .c-difficult__sep{padding:25px 0}
  .c-difficult__sep-badge{font-size:20px;padding:12px 35px}
  .c-difficult__solution{padding:40px 15px}
  .c-difficult__solution-head{flex-direction:column;gap:15px}
  .c-difficult__leaf-l,.c-difficult__leaf-r{width:50px}
  .c-difficult__solution-title{font-size:20px}
  .c-difficult__solution-text{font-size:14px}
  .c-difficult__consult-balloon{font-size:16px;padding:20px 25px;max-width:100%}
  .c-difficult__consult-red{font-size:18px}
  .c-difficult__consult-pic img{max-width:180px}
  .c-evaluation__inner{flex-direction:column;gap:30px}
  .eval-num,.eval-point{font-size:32px}
  .c-review__slides{grid-template-columns:1fr}
  .c-flow__list{flex-direction:column;align-items:center}
  .c-flow__item{max-width:100%;min-width:auto;width:100%}
  .office-greeting{flex-direction:column}
  .office-greeting__pic{flex:none;width:100%}
  .office-list dl{flex-direction:column;gap:5px}
  .office-list dt{min-width:auto}
  .fee-txt01,.fee-txt02{font-size:16px}
  .chat-widget{width:calc(100% - 40px);right:20px;bottom:90px}
}
