/* 沼尻税務会計事務所 共通スタイル（B改・明るい自然型） */
:root {
  --green:#3a6b52; --dgreen:#28503c; --lgreen:#eef5ef; --leaf:#7fae8f;
  --ink:#333333; --accent:#d99a4e; --white:#fff;
  --photo-hero: url('images/hero.jpg');
  --photo-park: url('images/business.jpg');
  --photo-pond: url('images/pond.jpg');
  --photo-band: url('images/band.jpg');
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; font-weight:500; letter-spacing:.03em; color:var(--ink); line-height:2.0; background:var(--white); }
h1,h2,h3,h4,b,strong { font-weight:700; }
.serif { font-family:Georgia,"Times New Roman","Yu Mincho",serif; }
.wrap { max-width:1080px; margin:0 auto; padding:0 24px; }

/* header */
header { background:rgba(255,255,255,.94); backdrop-filter:blur(6px); position:sticky; top:0; z-index:20; border-bottom:1px solid #e7ece7; }
.hrow { display:flex; justify-content:space-between; align-items:center; padding:16px 0; flex-wrap:wrap; gap:10px; }
.logo { font-size:21px; font-weight:bold; color:var(--dgreen); line-height:1.4; }
.logo a { color:var(--dgreen); text-decoration:none; }
.logo small { display:block; font-size:10.5px; color:var(--leaf); font-weight:normal; letter-spacing:.25em; }
nav a { color:var(--ink); text-decoration:none; font-size:15px; margin-left:22px; }
nav a:hover, nav a.on { color:var(--green); }
.telbtn { background:var(--green); color:#fff; border-radius:999px; padding:10px 24px; text-decoration:none; font-size:14px; }

/* buttons */
.cta { display:inline-block; margin-top:28px; background:var(--accent); color:#fff; border-radius:999px; padding:15px 46px; text-decoration:none; font-size:15px; font-weight:bold; box-shadow:0 3px 10px rgba(120,90,50,.25); }
.cta:hover { transform:translateY(-2px); }
.more { display:inline-block; margin-top:26px; color:var(--green); border:1px solid var(--green); border-radius:999px; padding:10px 38px; font-size:13.5px; text-decoration:none; letter-spacing:.1em; }
.more:hover { background:var(--green); color:#fff; }

/* top hero */
.hero { position:relative; min-height:560px; display:flex; align-items:center; background:var(--photo-hero) center 72%/cover no-repeat; }
@media (min-width:1500px){ .hero{ min-height:640px; } }
.hero::after { content:""; position:absolute; inset:0; background:none; }
.hero .inner { position:relative; z-index:2; padding:70px 0; max-width:560px; text-shadow:0 0 6px rgba(255,255,255,.95), 0 0 16px rgba(255,255,255,.85), 0 0 32px rgba(255,255,255,.7); }
.hero .tag { display:inline-block; background:#fff; color:var(--green); border:1px solid #cfe0d5; border-radius:999px; padding:5px 20px; font-size:12.5px; margin-bottom:22px; letter-spacing:.05em; }
.hero h1 { font-size:34px; color:#1d3a2b; line-height:1.6; margin-bottom:18px; letter-spacing:.04em; font-weight:800; }
.hero p { font-size:16.5px; color:#222222; font-weight:700; }
.photo-note { position:absolute; right:14px; bottom:10px; z-index:3; font-size:10.5px; color:rgba(255,255,255,.9); background:rgba(0,0,0,.28); padding:2px 10px; border-radius:4px; }
.formula { display:flex; align-items:center; gap:14px; margin:6px 0 18px; }
.formula span { background:#fff; border:1.5px solid var(--green); color:var(--dgreen); font-weight:700; font-size:16px; border-radius:999px; padding:6px 26px; letter-spacing:.1em; }
.formula i { color:var(--accent); font-style:normal; font-weight:700; font-size:18px; }
@media (max-width:820px){ .formula span{font-size:13.5px; padding:5px 16px} .formula{gap:8px} }

/* subpage hero */
.page-hero { position:relative; background:var(--photo-park) center/cover no-repeat; padding:64px 0 58px; }
.page-hero::after { content:""; position:absolute; inset:0; background:rgba(255,255,255,.82); }
.page-hero .wrap { position:relative; z-index:2; text-align:center; }
.page-hero .en { font-size:34px; color:var(--dgreen); display:block; }
.page-hero .ja { font-size:14px; color:var(--green); letter-spacing:.3em; display:block; margin-top:2px; }
.crumb { position:relative; z-index:2; text-align:center; font-size:12.5px; color:#6b6b6b; margin-top:10px; }
.crumb a { color:var(--green); text-decoration:none; }

/* sections */
section { padding:88px 0; }
section.tight { padding:64px 0; }
.k { display:block; text-align:center; }
.k .en { font-size:34px; color:var(--dgreen); letter-spacing:.06em; display:block; }
.k .ja { font-size:13px; color:var(--leaf); letter-spacing:.3em; display:block; margin-top:2px; margin-bottom:48px; }
h2.plain { color:var(--dgreen); font-size:24px; text-align:center; margin-bottom:40px; }
h3.bar { color:var(--dgreen); font-size:19px; border-left:5px solid var(--green); padding-left:14px; margin:44px 0 18px; line-height:1.5; }
.lead { text-align:center; font-size:15.5px; color:#464646; margin-bottom:44px; }
.bg-l { background:var(--lgreen); }

/* cards */
.cols3 { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.cols2 { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
.card { background:#fff; border-radius:18px; padding:34px 28px; box-shadow:0 4px 20px rgba(58,107,82,.09); }
.card .icon { width:54px; height:54px; border-radius:50%; background:var(--lgreen); color:var(--green); font-size:23px; display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.card h3 { color:var(--dgreen); font-size:17px; text-align:center; margin-bottom:12px; }
.card p { font-size:15px; color:#4f4f4f; }

/* splits */
.split { display:flex; min-height:400px; }
.split .ph { flex:1; background:var(--photo-park) center/cover no-repeat; position:relative; }
.split .ph.pond { background:var(--photo-pond) center/cover no-repeat; }
.split .tx { flex:1; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:60px 40px; }
.split .tx .en { font-size:32px; color:var(--dgreen); }
.split .tx .ja { font-size:13px; color:var(--leaf); letter-spacing:.25em; margin:4px 0 22px; }
.split .tx p { font-size:15.5px; color:#464646; max-width:440px; text-align:left; }

/* voice */
.vgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.vcard { background:#fff; border-radius:16px; padding:26px; font-size:15px; box-shadow:0 4px 20px rgba(58,107,82,.09); }
.vcard::before { content:"“"; font-size:38px; color:var(--accent); line-height:1; display:block; font-family:serif; }
.vcard .who { color:#8c8c8c; font-size:13px; margin-top:12px; text-align:right; }

/* message */
.msg { display:flex; gap:40px; align-items:center; background:#fff; border-radius:22px; padding:44px; box-shadow:0 4px 20px rgba(58,107,82,.09); }
.msg .photo { flex:0 0 240px; height:280px; background:var(--lgreen); border-radius:14px; display:flex; align-items:center; justify-content:center; color:var(--green); font-size:13px; text-align:center; }
.msg h3 { color:var(--dgreen); font-size:19px; margin-bottom:14px; }
.msg p { font-size:15.5px; margin-bottom:12px; color:#464646; }
.msg .name { text-align:right; font-size:15px; margin-top:14px; font-weight:bold; color:var(--ink); }

/* photo band */
.band-photo { height:260px; background:var(--photo-band) center/cover no-repeat; position:relative; display:flex; align-items:center; justify-content:center; }
.band-photo::after { content:""; position:absolute; inset:0; background:rgba(255,255,255,.15); }
.band-photo .t { position:relative; z-index:2; background:rgba(255,255,255,.9); border-radius:12px; padding:18px 40px; text-align:center; }
.band-photo .t b { color:var(--dgreen); font-size:17px; display:block; }
.band-photo .t span { font-size:13.5px; color:#5c5c5c; }

/* flow */
.flow { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.step { background:#fff; border-radius:18px; padding:30px 26px; text-align:center; box-shadow:0 4px 20px rgba(58,107,82,.09); }
.step .n { width:44px; height:44px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-weight:bold; }
.step h4 { color:var(--dgreen); font-size:16px; margin-bottom:8px; }
.step p { font-size:14.5px; color:#4f4f4f; text-align:left; }

/* tables */
table.t { width:100%; border-collapse:collapse; margin:10px 0 6px; background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 4px 20px rgba(58,107,82,.09); }
table.t th { background:var(--lgreen); color:var(--dgreen); padding:13px 16px; font-size:14.5px; text-align:left; border-bottom:1px solid #dde8de; }
table.t td { padding:13px 16px; font-size:14.5px; border-bottom:1px solid #eef2ee; color:#464646; }
table.t tr:last-child td { border-bottom:none; }
.note { font-size:13px; color:#7a7a7a; margin-top:8px; }

/* check list */
ul.check { list-style:none; margin:10px 0 20px; }
ul.check li { padding-left:32px; position:relative; font-size:15.5px; margin-bottom:10px; color:#464646; }
ul.check li::before { content:"✓"; position:absolute; left:4px; color:var(--green); font-weight:bold; }

/* policy box */
.policy { background:var(--lgreen); border-radius:16px; padding:26px 32px; margin:26px 0; }
.policy b { color:var(--dgreen); display:block; margin-bottom:6px; font-size:16px; }
.policy p { font-size:14.5px; color:#464646; }

/* faq */
.faq { background:#fff; border-radius:14px; box-shadow:0 4px 20px rgba(58,107,82,.09); padding:6px 28px; margin-bottom:16px; }
.faq .q { font-weight:700; color:var(--dgreen); padding:16px 0 4px; font-size:15.5px; }
.faq .q::before { content:"Q. "; color:var(--accent); }
.faq .a { font-size:14.5px; color:#4f4f4f; padding-bottom:16px; }
.faq .a::before { content:"A. "; color:var(--green); font-weight:700; }

/* form (mock) */
.form { background:#fff; border-radius:18px; box-shadow:0 4px 20px rgba(58,107,82,.09); padding:40px; max-width:720px; margin:0 auto; }
.form label { display:block; font-weight:700; color:var(--dgreen); font-size:14.5px; margin:20px 0 6px; }
.form label .req { background:var(--accent); color:#fff; font-size:11px; border-radius:4px; padding:1px 8px; margin-left:8px; font-weight:normal; }
.form input[type=text], .form input[type=email], .form input[type=tel], .form select, .form textarea {
  width:100%; border:1.5px solid #d5e0d7; border-radius:10px; padding:12px 14px; font-size:15px; font-family:inherit; background:#fbfdfb; }
.form textarea { min-height:140px; }
.form .send { display:block; width:260px; margin:34px auto 0; background:var(--accent); color:#fff; border:none; border-radius:999px; padding:15px; font-size:15.5px; font-weight:bold; cursor:pointer; box-shadow:0 5px 16px rgba(217,154,78,.35); }

/* contact section */
.contact { background:linear-gradient(180deg,var(--lgreen),#fff); text-align:center; padding:80px 0 60px; }
.contact .en { font-size:34px; color:var(--dgreen); }
.contact .ja { font-size:13px; color:var(--leaf); letter-spacing:.3em; margin-bottom:26px; display:block; }
.contact .tel-lg { font-size:36px; font-weight:bold; color:var(--dgreen); margin:10px 0 2px; }
.contact .tel-lg a { color:var(--dgreen); text-decoration:none; }
.contact p { font-size:15px; color:#4f4f4f; }

footer { background:var(--dgreen); color:#cfdcd2; font-size:13.5px; padding:40px 0; }
footer .frow { display:flex; justify-content:space-between; flex-wrap:wrap; gap:20px; }
footer a { color:#eaf2ec; text-decoration:none; }

@media (max-width:820px){
  .cols3,.cols2,.flow,.vgrid{grid-template-columns:1fr}
  .split{flex-direction:column} .split .ph{min-height:220px}
  .msg{flex-direction:column} .msg .photo{width:100%}
  .hero h1{font-size:24px} .page-hero .en{font-size:26px} nav{display:none}
  .form{padding:26px}
}
@media (min-width:821px){ .split.rev .ph{order:2} .split.rev .tx{order:1} }
