@charset "UTF-8";
/* ============================================================
   はしもと会計事務所 共通スタイルシート
   配色・フォント・余白はプロトタイプ（hashimoto-kaikei-top.html）準拠
   ============================================================ */

:root{
  --clay:#B5715A;        /* くすみテラコッタ（メイン） */
  --clay-deep:#96513C;   /* 濃いめテラコッタ（ボタン等） */
  --apricot:#E8C9B0;     /* くすみアプリコット */
  --ivory:#FBF7F0;       /* 生成りベージュ（背景） */
  --sand:#F3EAD9;        /* 砂色（セクション背景） */
  --umber:#4A3B33;       /* 深みブラウン（本文） */
  --umber-soft:#7A6A5F;  /* 薄めブラウン（補足文） */
  --serif:'Zen Maru Gothic', sans-serif;
  --sans:'Zen Kaku Gothic New', sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--umber);background:var(--ivory);line-height:2;font-size:15px;letter-spacing:.04em;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.inner{max-width:1040px;margin:0 auto;padding:0 24px;}

/* ===== Header ===== */
header{position:sticky;top:0;z-index:100;background:rgba(251,247,240,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(74,59,51,.08);}
.header-in{display:flex;align-items:center;justify-content:space-between;height:76px;}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:19px;font-weight:600;letter-spacing:.08em;}
.logo svg{flex-shrink:0;}
.logo small{display:block;font-family:var(--sans);font-size:9.5px;color:var(--clay);letter-spacing:.2em;font-weight:500;line-height:1.4;}
nav ul{display:flex;align-items:center;gap:30px;list-style:none;font-size:13.5px;font-weight:500;}
nav a{position:relative;padding:6px 0;transition:color .25s;}
nav a:hover{color:var(--clay);}
nav a.current{color:var(--clay);}
nav a.current::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--clay);}
.cta-btn{background:var(--clay-deep);color:#fff;padding:11px 26px;border-radius:999px;font-size:13.5px;font-weight:500;transition:opacity .25s;}
nav a.cta-btn.current{color:#fff;}
nav a.cta-btn.current::after{display:none;}
.cta-btn:hover{opacity:.85;color:#fff;}

/* ハンバーガーメニュー（スマホ用） */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:10px;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--umber);margin:6px 0;border-radius:2px;transition:.3s;}
.nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

/* ===== Hero（トップ用） ===== */
.hero{position:relative;padding:96px 0 110px;overflow:hidden;}
.hero::before{content:"";position:absolute;right:-160px;top:-120px;width:560px;height:560px;border-radius:50%;background:var(--apricot);opacity:.35;}
.hero::after{content:"";position:absolute;right:120px;bottom:-200px;width:380px;height:380px;border-radius:50%;background:var(--sand);}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
.hero-eyebrow{display:inline-block;font-size:12px;letter-spacing:.28em;color:var(--clay);font-weight:700;margin-bottom:22px;}
h1{font-family:var(--serif);font-size:clamp(34px,4.8vw,52px);font-weight:700;line-height:1.7;letter-spacing:.05em;margin-bottom:26px;}
h1 em{font-style:normal;color:var(--clay);}
.hero-lead{color:var(--umber-soft);font-size:15px;margin-bottom:36px;max-width:34em;}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:38px;}
.badge{background:#fff;border:1px solid rgba(74,59,51,.12);border-radius:999px;padding:7px 18px;font-size:12.5px;font-weight:500;color:var(--umber-soft);}
.hero-photo{aspect-ratio:4/5;border-radius:200px 200px 24px 24px;background:linear-gradient(160deg,var(--apricot),var(--clay) 130%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;letter-spacing:.2em;box-shadow:0 24px 60px -30px rgba(150,81,60,.5);overflow:hidden;}
.hero-photo img,.prof-photo img{width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.hero-photo svg{width:100%;height:100%;display:block;}
.prof-photo img{object-position:50% 18%;}

/* ===== 下層ページ用タイトル帯 ===== */
.page-hero{position:relative;padding:72px 0 64px;overflow:hidden;text-align:center;}
.page-hero::before{content:"";position:absolute;right:-140px;top:-160px;width:420px;height:420px;border-radius:50%;background:var(--apricot);opacity:.3;}
.page-hero::after{content:"";position:absolute;left:-120px;bottom:-220px;width:340px;height:340px;border-radius:50%;background:var(--sand);}
.page-hero .inner{position:relative;z-index:1;}
.page-hero .hero-eyebrow{margin-bottom:14px;}
.page-hero h1{font-size:clamp(26px,3.6vw,38px);margin-bottom:18px;}
.page-lead{color:var(--umber-soft);font-size:14.5px;max-width:38em;margin:0 auto;}

/* ===== Section common ===== */
section{padding:96px 0;}
.sec-label{font-size:12px;letter-spacing:.3em;color:var(--clay);font-weight:700;text-align:center;margin-bottom:14px;}
h2{font-family:var(--serif);font-size:clamp(24px,3vw,32px);font-weight:600;text-align:center;letter-spacing:.08em;margin-bottom:56px;}
.sec-sand{background:var(--sand);}
.sec-arch-top{border-radius:64px 64px 0 0;}

/* ===== Features（トップ） ===== */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.feat-card{background:#fff;border-radius:28px;padding:44px 32px 40px;text-align:center;box-shadow:0 14px 40px -28px rgba(74,59,51,.25);}
.feat-icon{width:68px;height:68px;margin:0 auto 24px;border-radius:50% 50% 50% 8px;background:var(--apricot);display:flex;align-items:center;justify-content:center;font-size:28px;}
.feat-icon svg,.medal svg{width:30px;height:30px;fill:none;stroke:var(--clay-deep);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.personal-card h3 span svg{width:18px;height:18px;fill:none;stroke:var(--clay-deep);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.feat-card h3{font-family:var(--serif);font-size:18.5px;font-weight:600;margin-bottom:14px;letter-spacing:.06em;}
.feat-card p{font-size:13.5px;color:var(--umber-soft);text-align:left;line-height:1.95;}

/* ===== サービスカード（トップの簡易版） ===== */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;max-width:900px;margin:0 auto;}
.svc-card{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(74,59,51,.1);border-radius:28px;padding:40px 36px;transition:transform .25s,box-shadow .25s;}
a.svc-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px -26px rgba(74,59,51,.35);}
.svc-card h3{font-family:var(--serif);font-size:19px;font-weight:600;margin-bottom:6px;}
.svc-card .svc-for{font-size:12.5px;color:var(--clay);font-weight:700;margin-bottom:14px;}
.svc-price{font-family:var(--serif);font-size:14px;margin-bottom:14px;}
.svc-price strong{font-size:26px;color:var(--clay-deep);}
.svc-card p.svc-desc{font-size:13.5px;color:var(--umber-soft);margin-bottom:10px;}
.svc-more{margin-top:auto;font-size:13px;color:var(--clay-deep);font-weight:700;}
.svc-note{text-align:center;font-size:12.5px;color:var(--umber-soft);margin-top:28px;}

/* ===== サービス詳細（service.html） ===== */
.svc-detail{max-width:860px;margin:0 auto 72px;}
.svc-detail:last-of-type{margin-bottom:0;}
.svc-detail-head{text-align:center;margin-bottom:36px;}
.svc-num{font-family:var(--serif);font-size:13px;letter-spacing:.3em;color:var(--clay);font-weight:700;}
.svc-detail h3{font-family:var(--serif);font-size:clamp(20px,2.6vw,26px);font-weight:600;letter-spacing:.08em;margin:6px 0 12px;}
.svc-detail-head p{font-size:13.5px;color:var(--umber-soft);max-width:36em;margin:0 auto;}
.svc-detail-box{background:#fff;border:1px solid rgba(74,59,51,.1);border-radius:28px;padding:40px 40px 36px;}
.svc-detail-box h4{font-family:var(--serif);font-size:16px;font-weight:600;color:var(--clay-deep);margin-bottom:14px;letter-spacing:.06em;}
.svc-detail-box h4:not(:first-child){margin-top:32px;}
.svc-detail-box>p{font-size:13.5px;color:var(--umber-soft);}
.check-list{list-style:none;font-size:13.5px;color:var(--umber-soft);}
.check-list li{padding-left:1.5em;position:relative;margin-bottom:7px;}
.check-list li::before{content:"✓";position:absolute;left:0;color:var(--clay);font-weight:700;}

/* 料金表 */
.table-wrap{overflow-x:auto;border-radius:16px;border:1px solid rgba(74,59,51,.12);}
table.price{width:100%;min-width:480px;border-collapse:collapse;font-size:13.5px;background:#fff;}
table.price th,table.price td{padding:13px 18px;text-align:left;border-bottom:1px solid rgba(74,59,51,.1);white-space:nowrap;}
table.price thead th{background:var(--sand);font-family:var(--serif);font-weight:600;font-size:13px;letter-spacing:.06em;}
table.price tbody tr:last-child th,table.price tbody tr:last-child td{border-bottom:none;}
table.price td.num{text-align:right;font-family:var(--serif);color:var(--clay-deep);font-weight:600;}
table.price td.numl{text-align:left;font-family:var(--serif);color:var(--clay-deep);font-weight:600;}
.price-note{font-size:12px;color:var(--umber-soft);line-height:1.9;margin-top:14px;}
.price-note li{margin-left:1.4em;}

/* ===== ご相談の流れ（first.html） ===== */
.step-list{max-width:720px;margin:0 auto;list-style:none;}
.step-item{position:relative;display:flex;gap:28px;padding-bottom:44px;}
.step-item:last-child{padding-bottom:0;}
.step-item::before{content:"";position:absolute;left:31px;top:64px;bottom:8px;width:2px;background:var(--apricot);}
.step-item:last-child::before{display:none;}
.step-num{flex-shrink:0;width:64px;height:64px;border-radius:50% 50% 50% 10px;background:var(--clay);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;line-height:1.2;}
.step-num small{font-size:9px;letter-spacing:.15em;font-weight:500;}
.step-num b{font-size:20px;}
.step-body{background:#fff;border:1px solid rgba(74,59,51,.1);border-radius:22px;padding:26px 30px;flex:1;}
.step-body h3{font-family:var(--serif);font-size:17px;font-weight:600;margin-bottom:8px;}
.step-body p{font-size:13.5px;color:var(--umber-soft);}

/* お悩みリスト */
.worry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;max-width:820px;margin:0 auto;}
.worry-item{background:#fff;border-radius:20px;padding:22px 26px;font-size:14px;display:flex;gap:12px;align-items:flex-start;box-shadow:0 10px 30px -24px rgba(74,59,51,.3);}
.worry-item .mark{color:var(--clay);font-weight:700;flex-shrink:0;}
.worry-close{text-align:center;margin-top:36px;font-family:var(--serif);font-size:17px;font-weight:600;}
.worry-close em{font-style:normal;color:var(--clay);}

/* ===== FAQ ===== */
.faq-list{max-width:760px;margin:0 auto;}
details.faq{background:#fff;border:1px solid rgba(74,59,51,.1);border-radius:20px;margin-bottom:14px;overflow:hidden;}
details.faq summary{display:flex;gap:14px;align-items:baseline;padding:20px 26px;cursor:pointer;font-weight:600;font-size:14.5px;font-family:var(--serif);list-style:none;}
details.faq summary::-webkit-details-marker{display:none;}
details.faq summary::before{content:"Q";color:var(--clay);font-weight:700;font-size:16px;}
details.faq summary::after{content:"＋";margin-left:auto;color:var(--clay);font-weight:500;transition:transform .25s;}
details.faq[open] summary::after{content:"－";}
.faq-a{position:relative;padding:0 26px 22px 54px;font-size:13.5px;color:var(--umber-soft);}
.faq-a::before{content:"A";position:absolute;left:26px;top:0;color:var(--clay-deep);font-weight:700;font-size:15px;font-family:var(--serif);}

/* ===== Profile ===== */
.prof-in{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center;max-width:900px;margin:0 auto;}
.prof-photo{aspect-ratio:1/1;border-radius:50% 50% 50% 16px;background:linear-gradient(150deg,#fff,var(--apricot));display:flex;align-items:center;justify-content:center;color:var(--umber-soft);font-size:12px;letter-spacing:.2em;}
.prof-name{font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:4px;}
.prof-name small{font-size:12px;color:var(--umber-soft);font-weight:500;margin-left:10px;}
.prof-title{font-size:12.5px;color:var(--clay);font-weight:700;letter-spacing:.14em;margin-bottom:22px;}
.prof-txt{font-size:14px;color:var(--umber-soft);margin-bottom:22px;}
.prof-facts{list-style:none;font-size:13px;color:var(--umber-soft);border-top:1px solid rgba(74,59,51,.12);}
.prof-facts li{padding:10px 0;border-bottom:1px solid rgba(74,59,51,.12);}

/* ごあいさつ（about.html） */
.greeting{max-width:680px;margin:0 auto;font-size:14.5px;color:var(--umber);}
.greeting p{margin-bottom:1.6em;}
.greeting .sign{text-align:right;font-family:var(--serif);font-size:16px;font-weight:600;}
.greeting .sign small{font-size:11.5px;color:var(--umber-soft);font-weight:500;display:block;}

/* 受賞・特長（about.html） */
.award-box{max-width:760px;margin:0 auto 40px;background:#fff;border:1.5px solid var(--apricot);border-radius:24px;padding:30px 36px;display:flex;gap:22px;align-items:center;box-shadow:0 14px 40px -28px rgba(74,59,51,.25);}
.award-box .medal{flex-shrink:0;width:64px;height:64px;border-radius:50% 50% 50% 8px;background:var(--apricot);display:flex;align-items:center;justify-content:center;font-size:30px;}
.award-box h3{font-family:var(--serif);font-size:17px;font-weight:600;margin-bottom:6px;letter-spacing:.05em;}
.award-box p{font-size:13px;color:var(--umber-soft);line-height:1.9;}
.award-photo{flex-shrink:0;width:220px;border-radius:16px;}
.feature-box{max-width:760px;margin:0 auto;background:#fff;border:1px solid rgba(74,59,51,.1);border-radius:28px;padding:36px 40px;}
@media(max-width:820px){
  .award-box{flex-direction:column;text-align:center;padding:26px 22px;}
  .award-box p{text-align:left;}
  .award-photo{width:100%;max-width:300px;margin:0 auto;}
  .feature-box{padding:28px 24px;}
}

/* 人となり（about.html） */
.personal-lead{text-align:center;font-size:13.5px;color:var(--umber-soft);margin:-28px auto 44px;max-width:34em;}
.personal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;max-width:880px;margin:0 auto;}
.personal-card{background:#fff;border:1px solid rgba(74,59,51,.08);border-radius:24px;padding:28px 30px;box-shadow:0 12px 34px -26px rgba(74,59,51,.28);}
.personal-card h3{font-family:var(--serif);font-size:16.5px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:9px;}
.personal-card h3 span{width:34px;height:34px;border-radius:50% 50% 50% 8px;background:var(--sand);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.personal-card ul{list-style:none;font-size:13px;color:var(--umber-soft);}
.personal-card li{padding-left:1.2em;position:relative;margin-bottom:7px;line-height:1.9;}
.personal-card li::before{content:"◦";position:absolute;left:0;color:var(--clay);font-weight:700;}

/* 事務所概要表 */
.office-table{max-width:720px;margin:0 auto;width:100%;border-collapse:collapse;font-size:14px;}
.office-table th,.office-table td{padding:16px 10px;border-bottom:1px solid rgba(74,59,51,.12);text-align:left;vertical-align:top;}
.office-table th{width:9em;font-family:var(--serif);font-weight:600;color:var(--clay-deep);white-space:nowrap;}

/* ===== お問い合わせ（contact.html） ===== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:900px;margin:0 auto;}
.contact-card{background:#fff;border:1px solid rgba(74,59,51,.1);border-radius:28px;padding:40px 36px;text-align:center;position:relative;}
.contact-card .rec{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--clay);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.1em;padding:4px 18px;border-radius:999px;white-space:nowrap;}
.contact-card h3{font-family:var(--serif);font-size:19px;font-weight:600;margin-bottom:10px;}
.contact-card p{font-size:13px;color:var(--umber-soft);text-align:left;margin-bottom:18px;}
.qr-box{width:170px;height:170px;margin:0 auto 20px;border:2px dashed rgba(74,59,51,.25);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:11.5px;color:var(--umber-soft);letter-spacing:.1em;line-height:1.8;text-align:center;}
.line-btn{display:inline-block;background:#06C755;color:#fff;padding:14px 40px;border-radius:999px;font-weight:700;font-size:14px;transition:opacity .25s;}
.line-btn:hover{opacity:.85;}
.form-embed{max-width:760px;margin:0 auto;background:#fff;border:1px solid rgba(74,59,51,.1);border-radius:28px;padding:20px 12px;text-align:center;}
.form-embed iframe{width:100%;height:2200px;border:none;}
.contact-info{max-width:640px;margin:56px auto 0;background:var(--sand);border-radius:24px;padding:30px 36px;font-size:13.5px;color:var(--umber-soft);}
.contact-info dt{font-weight:700;color:var(--umber);font-family:var(--serif);}
.contact-info dd{margin-bottom:12px;}

/* ===== CTA ===== */
.cta-sec{text-align:center;}
.cta-box{background:linear-gradient(150deg,var(--clay),var(--clay-deep));border-radius:40px;padding:72px 32px;color:#fff;}
.cta-box h2{color:#fff;margin-bottom:18px;}
.cta-box p{font-size:14px;opacity:.9;margin-bottom:36px;}
.cta-white{display:inline-block;background:#fff;color:var(--clay-deep);padding:16px 52px;border-radius:999px;font-weight:700;font-size:15px;transition:transform .25s;}
.cta-white:hover{transform:translateY(-2px);}

/* ===== Footer ===== */
footer{background:var(--sand);border-radius:64px 64px 0 0;padding:64px 0 36px;font-size:13px;color:var(--umber-soft);}
.footer-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px;margin-bottom:44px;}
.footer-info .logo{margin-bottom:14px;font-size:17px;}
.footer-info p{line-height:1.9;}
.footer-nav ul{list-style:none;}
.footer-nav li{margin-bottom:8px;}
.footer-nav a:hover{color:var(--clay);}
.footer-copy{text-align:center;font-size:11.5px;border-top:1px solid rgba(74,59,51,.12);padding-top:26px;}

/* 補助 */
.center{text-align:center;}
.mt-40{margin-top:40px;}
/* プライバシーポリシー等の規程ページ */
.policy{max-width:760px;margin:0 auto;font-size:14px;line-height:2.1;color:var(--umber-soft);}
.policy h3{font-family:var(--serif);font-size:16px;color:var(--umber);margin:36px 0 10px;}
.policy h3:first-of-type{margin-top:0;}
.policy ul{padding-left:1.4em;margin:6px 0;}
.policy .policy-date{margin-top:40px;text-align:right;font-size:13px;}

.link-arrow{display:inline-block;color:var(--clay-deep);font-weight:700;font-size:13.5px;border-bottom:2px solid var(--apricot);padding-bottom:2px;transition:opacity .25s;}
.link-arrow:hover{opacity:.7;}

/* ===== レスポンシブ（スマホ） ===== */
@media(max-width:820px){
  .nav-toggle{display:block;}
  nav{display:none;position:absolute;top:76px;left:0;right:0;background:rgba(251,247,240,.98);border-bottom:1px solid rgba(74,59,51,.1);padding:18px 24px 26px;}
  nav.open{display:block;}
  nav ul{flex-direction:column;gap:4px;align-items:stretch;}
  nav ul li a{display:block;padding:12px 6px;font-size:14.5px;}
  nav a.current::after{display:none;}
  nav .cta-btn{text-align:center;margin-top:10px;}

  .hero{padding:64px 0 80px;}
  .hero-in{grid-template-columns:1fr;gap:40px;}
  .hero-photo{max-width:320px;margin:0 auto;}
  .page-hero{padding:52px 0 48px;}
  section{padding:72px 0;}
  .feat-grid,.svc-grid,.worry-grid,.contact-grid,.personal-grid{grid-template-columns:1fr;}
  .prof-in{grid-template-columns:1fr;gap:36px;}
  .prof-photo{max-width:260px;margin:0 auto;}
  .svc-detail-box{padding:30px 24px;}
  .step-item{gap:16px;}
  .step-num{width:52px;height:52px;}
  .step-num b{font-size:16px;}
  .step-item::before{left:25px;top:54px;}
  .office-table th{width:7em;}
  .footer-in{flex-direction:column;gap:28px;}

  /* スマホでは表が横スクロールできることをテキストで示す（iOSはスクロールバーが隠れるため） */
  .table-wrap{position:relative;padding-top:28px;}
  .table-wrap::before{content:"→ 表は横にスクロールできます";position:absolute;top:8px;left:12px;font-size:11.5px;color:var(--umber-soft);}
}

/* 表の横スクロールバーを常時見やすく（Android・PC向け） */
.table-wrap::-webkit-scrollbar{height:6px;}
.table-wrap::-webkit-scrollbar-thumb{background:var(--apricot);border-radius:3px;}
.table-wrap::-webkit-scrollbar-track{background:rgba(74,59,51,.06);border-radius:3px;}

/* 狭いスマホ幅ではGoogleフォームが縦に伸びるため、iframeを高くする */
@media (max-width: 480px){
  .form-embed iframe{height:2650px;}
}
