/* ============================================================
   酒瀬川公認会計士・税理士事務所 — サイト共通スタイル
   デザイン案A「信頼」: 紺 × 白 × 真鍮
   ============================================================ */
:root{
  --ground:#F7F8FA;
  --paper:#FFFFFF;
  --ink:#1A2334;
  --ink-2:#4A5568;
  --navy:#1B3A5C;
  --navy-deep:#12263F;
  --brass:#A98A54;
  --line:#D8DDE4;
  --serif:"Noto Serif JP","Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
  --sans:"Noto Sans JP","Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);line-height:1.9;font-size:15.5px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}

.wrap{max-width:1040px;margin:0 auto;padding:0 28px}

/* ---- header ---- */
header{position:sticky;top:0;z-index:20;background:rgba(247,248,250,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font-family:var(--serif);font-size:17px;letter-spacing:.06em;font-weight:600}
.brand small{display:block;font-size:10px;letter-spacing:.28em;color:var(--brass);font-family:var(--sans)}
.nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0;font-size:13.5px;letter-spacing:.08em}
.nav ul a:hover{color:var(--brass)}
.nav .cta{border:1px solid var(--navy);padding:8px 20px;color:var(--navy);transition:.2s}
.nav .cta:hover{background:var(--navy);color:#fff}
@media (max-width:760px){.nav ul li:not(:last-child){display:none}}

/* ---- hero ---- */
.hero{position:relative;padding:96px 0 110px;overflow:hidden}
.hero .wrap{display:flex;gap:56px;align-items:flex-start}
.tate{writing-mode:vertical-rl;font-family:var(--serif);font-size:clamp(30px,4.6vw,44px);font-weight:600;letter-spacing:.22em;line-height:1.7;height:20em;max-height:60vh;color:var(--ink);text-wrap:balance;margin:0}
.tate em{font-style:normal;color:var(--brass)}
.hero-body{max-width:30em;padding-top:14px}
.eyebrow{font-size:11px;letter-spacing:.3em;color:var(--brass);margin:0 0 18px;font-weight:600}
.hero-body p{margin:0 0 14px;color:var(--ink-2)}
.hero-body .name{font-family:var(--serif);font-size:19px;color:var(--ink);letter-spacing:.1em;margin-top:28px}
.hero-rule{position:absolute;inset:auto 0 0 0;height:1px;background:linear-gradient(90deg,var(--brass),transparent 60%)}
@media (max-width:760px){
  .hero{padding:56px 0 70px}
  .hero .wrap{flex-direction:column;gap:36px}
  .tate{writing-mode:horizontal-tb;height:auto;max-height:none;letter-spacing:.12em;line-height:1.5}
}

/* ---- sections ---- */
section{padding:88px 0;border-top:1px solid var(--line)}
.sec-head{display:flex;align-items:baseline;gap:22px;margin-bottom:44px}
.sec-head h2{font-family:var(--serif);font-size:27px;font-weight:600;letter-spacing:.12em;margin:0}
.sec-head span{font-size:11px;letter-spacing:.3em;color:var(--brass);font-weight:600}
.lead{max-width:38em;color:var(--ink-2);margin:0 0 40px}

/* greeting */
.greet{display:grid;grid-template-columns:1fr 1.6fr;gap:48px}
.greet .side{border-left:2px solid var(--brass);padding-left:22px;font-family:var(--serif);font-size:20px;letter-spacing:.1em;line-height:2.2;align-self:start;margin:0}
.greet .body p{margin:0 0 16px;color:var(--ink-2)}
@media (max-width:760px){.greet{grid-template-columns:1fr}}

/* services */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc article{background:var(--paper);padding:36px 30px}
.svc h3{font-family:var(--serif);font-size:18.5px;font-weight:600;letter-spacing:.08em;margin:0 0 6px}
.svc .en{font-size:10.5px;letter-spacing:.24em;color:var(--brass);font-weight:600;margin-bottom:18px}
.svc p{font-size:14px;color:var(--ink-2);margin:0;line-height:2}
@media (max-width:820px){.svc{grid-template-columns:1fr}}

/* results (紺の反転面) */
.results{background:var(--navy-deep);color:#E9EDF3;border-top:none}
.results .sec-head h2{color:#fff}
.results .lead{color:#B9C4D4}
.track{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-bottom:52px}
.track .cell{border-top:1px solid rgba(255,255,255,.22);padding-top:18px}
.track .num{font-family:var(--serif);font-size:38px;color:var(--brass);line-height:1;font-variant-numeric:tabular-nums}
.track .num small{font-size:15px;letter-spacing:.1em;margin-left:4px}
.track .cap{font-size:13px;color:#B9C4D4;margin-top:8px}
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.case{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);padding:26px 24px}
.case .tag{display:inline-block;font-size:10.5px;letter-spacing:.18em;color:var(--brass);border:1px solid currentColor;padding:3px 10px;margin-bottom:14px}
.case h4{font-size:15px;margin:0 0 10px;font-weight:600;letter-spacing:.04em}
.case p{font-size:13px;color:#B9C4D4;margin:0;line-height:1.9}
.note{font-size:12px;color:#8B99AC;margin-top:30px}
@media (max-width:820px){.track,.cases{grid-template-columns:1fr}}

/* career */
.career{display:grid;grid-template-columns:150px 1fr;gap:0 34px;max-width:760px;margin:0}
.career dt{font-family:var(--serif);color:var(--brass);font-variant-numeric:tabular-nums;letter-spacing:.06em;padding:14px 0;border-top:1px solid var(--line)}
.career dd{margin:0;padding:14px 0;border-top:1px solid var(--line);color:var(--ink-2);font-size:14.5px}
@media (max-width:560px){.career{grid-template-columns:86px 1fr}}

/* pricing */
.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-bottom:34px}
.price-card{background:var(--paper);border:1px solid var(--line)}
.price-card h3{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:.1em;margin:0;padding:20px 26px;border-bottom:1px solid var(--line)}
.price-card h3 span{font-size:11px;color:var(--brass);letter-spacing:.24em;margin-left:12px}
table{width:100%;border-collapse:collapse;font-size:14px}
.tbl-wrap{overflow-x:auto}
th,td{text-align:left;padding:13px 26px;border-top:1px solid var(--line);font-weight:400;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
thead th{font-size:12px;letter-spacing:.14em;color:var(--ink);border-top:none}
td strong{color:var(--ink);font-weight:600}
.consult{background:var(--paper);border:1px solid var(--line);padding:8px 26px 22px}
.consult h3{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:.1em}
.consult ul{list-style:none;margin:0;padding:0;columns:2;column-gap:48px}
.consult li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;break-inside:avoid}
.consult li b{font-weight:600}
.consult li span{color:var(--ink-2)}
.small{font-size:12.5px;color:var(--ink-2);margin-top:22px}
@media (max-width:820px){.price-grid{grid-template-columns:1fr}.consult ul{columns:1}}

/* flow */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;counter-reset:step}
.flow > div{border-top:2px solid var(--navy);padding-top:18px;counter-increment:step}
.flow > div::before{content:"第"counter(step)"段階";font-size:11px;letter-spacing:.24em;color:var(--brass);font-weight:600;display:block;margin-bottom:10px}
.flow h4{font-family:var(--serif);font-size:16.5px;margin:0 0 8px;font-weight:600;letter-spacing:.06em}
.flow p{font-size:13px;color:var(--ink-2);margin:0}
.flow-note{margin-top:36px;font-size:14px;color:var(--ink-2)}
.flow-note b{color:var(--brass)}
@media (max-width:820px){.flow{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.flow{grid-template-columns:1fr}}

/* contact */
.contact{background:var(--paper)}
.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:start}
.tel{font-family:var(--serif);font-size:34px;letter-spacing:.06em;color:var(--navy);font-variant-numeric:tabular-nums;margin:6px 0 2px}
.tel a{color:inherit}
.tel-cap{font-size:12.5px;color:var(--ink-2)}
.btn{display:inline-block;background:var(--navy);color:#fff;padding:16px 46px;letter-spacing:.14em;font-size:14px;transition:.2s;border:1px solid var(--navy);cursor:pointer}
.btn:hover{background:transparent;color:var(--navy)}
.form-box{border:1px solid var(--line);background:var(--ground);padding:30px;min-height:200px}
.form-box .placeholder{color:var(--ink-2);font-size:13.5px;text-align:center;padding:40px 10px}
.form-box--embed{padding:0;background:#fff}
.form-box--embed iframe{width:100%;height:1150px;border:0;display:block}
@media (max-width:760px){.contact-grid{grid-template-columns:1fr}}

/* access */
.access-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start}
.access dl{margin:0;display:grid;grid-template-columns:110px 1fr;gap:0 20px;font-size:14.5px}
.access dt{color:var(--brass);padding:12px 0;border-top:1px solid var(--line);letter-spacing:.08em}
.access dd{margin:0;padding:12px 0;border-top:1px solid var(--line);color:var(--ink-2)}
.map-box{border:1px solid var(--line);background:var(--paper);aspect-ratio:16/10}
.map-box iframe{width:100%;height:100%;border:0;display:block}
.map-box .placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ink-2);font-size:13.5px}
@media (max-width:760px){.access-grid{grid-template-columns:1fr}}

/* footer */
footer{border-top:1px solid var(--line);padding:34px 0 44px;font-size:12.5px;color:var(--ink-2)}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

/* ---- FASページ誘導バナー（トップ用） ---- */
.fas-banner{border:1px solid var(--line);border-left:3px solid var(--brass);background:var(--paper);padding:38px 42px;display:flex;gap:32px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.fas-banner h3{font-family:var(--serif);font-size:21px;font-weight:600;letter-spacing:.1em;margin:0 0 8px}
.fas-banner p{margin:0;font-size:14px;color:var(--ink-2);max-width:34em}
.fas-banner .en{font-size:10.5px;letter-spacing:.24em;color:var(--brass);font-weight:600;display:block;margin-bottom:10px}

/* ---- FAS専用ページ ---- */
.page-hero{padding:80px 0 70px;border-bottom:1px solid var(--line)}
.page-hero h1{font-family:var(--serif);font-size:clamp(26px,3.8vw,36px);font-weight:600;letter-spacing:.14em;margin:0 0 10px;text-wrap:balance}
.page-hero .sub{font-family:var(--serif);font-size:17px;color:var(--brass);letter-spacing:.1em;margin:0 0 26px}
.page-hero .lead{margin-bottom:0}

.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 44px;max-width:820px}
.check-grid li{list-style:none;padding:13px 0 13px 30px;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink-2);position:relative}
.check-grid li::before{content:"";position:absolute;left:2px;top:22px;width:12px;height:7px;border-left:2px solid var(--brass);border-bottom:2px solid var(--brass);transform:rotate(-45deg)}
ul.check-grid{margin:0;padding:0}
@media (max-width:680px){.check-grid{grid-template-columns:1fr}}

.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);counter-reset:reason}
.reasons article{background:var(--paper);padding:34px 30px;counter-increment:reason}
.reasons article::before{content:"0" counter(reason);font-family:var(--serif);font-size:30px;color:var(--brass);display:block;line-height:1;margin-bottom:16px}
.reasons h3{font-family:var(--serif);font-size:17.5px;font-weight:600;letter-spacing:.06em;margin:0 0 10px}
.reasons p{font-size:13.5px;color:var(--ink-2);margin:0;line-height:2}
@media (max-width:820px){.reasons{grid-template-columns:1fr}}

.menu-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.menu-card{background:var(--paper);border:1px solid var(--line);padding:32px 28px;display:flex;flex-direction:column}
.menu-card.featured{border-color:var(--brass)}
.menu-card .tag{font-size:10.5px;letter-spacing:.22em;color:var(--brass);font-weight:600;margin-bottom:14px}
.menu-card h3{font-family:var(--serif);font-size:17.5px;font-weight:600;letter-spacing:.06em;margin:0 0 6px}
.menu-card .price{font-family:var(--serif);font-size:24px;color:var(--navy);letter-spacing:.04em;margin:2px 0 16px;font-variant-numeric:tabular-nums}
.menu-card .price small{font-size:13px;color:var(--ink-2)}
.menu-card p{font-size:13.5px;color:var(--ink-2);margin:0;line-height:2}
@media (max-width:820px){.menu-cards{grid-template-columns:1fr}}

/* FAS 料金表 */
.fee-group{margin-bottom:46px}
.fee-group:last-of-type{margin-bottom:0}
.fee-group h3{font-family:var(--serif);font-size:18px;font-weight:600;letter-spacing:.1em;margin:0 0 16px;padding-left:14px;border-left:3px solid var(--brass)}
.fee-table{min-width:780px;background:var(--paper);border:1px solid var(--line)}
.fee-table th,.fee-table td{white-space:normal;vertical-align:top;padding:14px 20px}
.fee-table thead th{background:var(--ground);white-space:nowrap}
.fee-table .svc-name{font-weight:600;color:var(--ink);width:19%;white-space:nowrap}
.fee-table .desc{width:48%;font-size:13.5px;line-height:1.9}
.fee-table .fee{width:20%;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}
.fee-table .term{width:13%;white-space:nowrap}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;counter-reset:step}
.steps > div{border-top:2px solid var(--navy);padding-top:18px;counter-increment:step}
.steps > div::before{content:"STEP " counter(step);font-size:11px;letter-spacing:.24em;color:var(--brass);font-weight:600;display:block;margin-bottom:10px}
.steps h4{font-family:var(--serif);font-size:16px;margin:0 0 8px;font-weight:600;letter-spacing:.04em}
.steps p{font-size:13px;color:var(--ink-2);margin:0}
@media (max-width:820px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

.faq{max-width:820px}
.faq dt{font-weight:600;padding:20px 0 6px;color:var(--ink);border-top:1px solid var(--line);font-size:15px}
.faq dt::before{content:"Q. ";color:var(--brass);font-family:var(--serif)}
.faq dd{margin:0;padding:0 0 20px;color:var(--ink-2);font-size:14px}
.faq dd::before{content:"A. ";color:var(--navy);font-weight:600}

.notes{max-width:820px;margin:0;padding:0}
.notes li{list-style:none;font-size:13px;color:var(--ink-2);padding:10px 0 10px 18px;border-bottom:1px solid var(--line);position:relative}
.notes li::before{content:"※";position:absolute;left:0;color:var(--brass)}

.partner{background:var(--paper)}
.partner .box{border:1px solid var(--line);padding:36px 40px;max-width:860px}
.partner .box p{margin:0;font-size:14px;color:var(--ink-2)}

.cta-band{background:var(--navy-deep);color:#E9EDF3;text-align:center;padding:72px 0}
.cta-band h2{font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:.14em;margin:0 0 12px}
.cta-band p{color:#B9C4D4;margin:0 0 30px}
.cta-band .tel{color:#fff}
.cta-band .tel a{color:#fff}
.cta-band .btn{background:var(--brass);border-color:var(--brass)}
.cta-band .btn:hover{background:transparent;color:var(--brass)}

/* utility */
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
