@charset "utf-8";
/* ============================================================
   沢バンク  sawabank.jp
   Palette は渓流の断面から: 淵(abyss) → 苔(moss) → 流れ(water) → 白泡(foam) → 花崗岩(granite)
   ============================================================ */

:root{
  --abyss:#0B2429;
  --moss:#1C3A33;
  --water:#2E7C86;
  --water-lt:#4FA0A8;
  --foam:#E9F2F1;
  --granite:#F3F5F2;
  --paper:#FFFFFF;
  --stone:#6F817B;
  --line:#D9E0DC;
  --ember:#AF7434;

  --serif:"Noto Serif JP",'Hiragino Mincho ProN','Yu Mincho',serif;
  --sans:"Noto Sans JP",'Hiragino Sans','Yu Gothic',sans-serif;

  --wrap:1180px;
  --gut:clamp(18px,4vw,40px);
  --r:6px;
  --shadow:0 2px 10px rgba(11,36,41,.06);
  --shadow-lg:0 14px 40px rgba(11,36,41,.13);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;}}
body{
  margin:0;background:var(--paper);color:var(--moss);
  font-family:var(--sans);font-size:16px;line-height:1.85;
  font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;}
:focus-visible{outline:2px solid var(--water-lt);outline-offset:3px;}

.wrap{width:min(100% - var(--gut)*2,var(--wrap));margin-inline:auto;}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ---------- 見出し ---------- */
.eyebrow{
  font-size:11px;letter-spacing:.34em;color:var(--water);
  display:flex;align-items:center;gap:12px;margin-bottom:14px;text-transform:uppercase;
}
.eyebrow::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent);}
h2.sec{font-family:var(--serif);font-weight:600;font-size:clamp(23px,3.4vw,32px);line-height:1.5;margin:0 0 8px;letter-spacing:.02em;}
.sec-lead{color:var(--stone);font-size:15px;margin:0 0 30px;max-width:62ch;}

/* ---------- ヘッダー ---------- */
.hd{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.93);
  backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);
}
.hd-in{display:flex;align-items:center;justify-content:space-between;gap:20px;height:70px;}
.hd-logo img{height:40px;width:auto;}
.nav{display:flex;align-items:center;gap:26px;}
.nav a{font-size:14px;color:var(--moss);position:relative;padding:4px 0;}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--water);transition:right .28s ease;}
.nav a:hover::after{right:0;}
.nav .btn-sm{
  background:var(--moss);color:#fff;padding:9px 18px;border-radius:var(--r);font-size:13.5px;
  transition:background .2s;
}
.nav .btn-sm:hover{background:var(--water);}
.nav .btn-sm::after{display:none;}
.burger{display:none;border:1px solid var(--line);background:#fff;border-radius:var(--r);width:44px;height:40px;position:relative;}
.burger i{position:absolute;left:11px;right:11px;height:1.5px;background:var(--moss);transition:.25s;}
.burger i:nth-child(1){top:13px;} .burger i:nth-child(2){top:19px;} .burger i:nth-child(3){top:25px;}
.burger[aria-expanded="true"] i:nth-child(1){top:19px;transform:rotate(45deg);}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] i:nth-child(3){top:19px;transform:rotate(-45deg);}

@media(max-width:900px){
  .burger{display:block;}
  .nav{
    position:fixed;inset:70px 0 auto;background:#fff;border-bottom:1px solid var(--line);
    flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gut) 22px;
    transform:translateY(-12px);opacity:0;pointer-events:none;transition:.24s ease;
    max-height:calc(100dvh - 70px);overflow:auto;
  }
  .nav.open{transform:none;opacity:1;pointer-events:auto;}
  .nav a{padding:15px 0;border-bottom:1px solid var(--line);font-size:15px;}
  .nav .btn-sm{margin-top:16px;text-align:center;padding:14px;border-bottom:0;}
}

/* ---------- ヒーロー ---------- */
.hero{position:relative;background:var(--abyss);color:#fff;overflow:hidden;}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 80% at 50% 0%,rgba(79,160,168,.20),transparent 62%);
}
.hero-contour{position:absolute;inset:0;width:100%;height:100%;opacity:.20;}
.hero-contour path{fill:none;stroke:#7FC3C8;stroke-width:1;}
.hero-in{position:relative;z-index:2;padding:clamp(58px,10vw,110px) 0 clamp(40px,6vw,64px);}
.hero-mark{width:76px;margin-bottom:26px;filter:brightness(0) invert(1);opacity:.92;}
.hero h1{
  font-family:var(--serif);font-weight:500;letter-spacing:.03em;
  font-size:clamp(29px,5.6vw,54px);line-height:1.42;margin:0 0 20px;
}
.hero h1 b{font-weight:600;color:#8FD3D6;}
.hero p.lede{color:#B9CFCC;font-size:clamp(14.5px,1.6vw,17px);max-width:60ch;margin:0 0 34px;}
.hero-stats{display:flex;flex-wrap:wrap;gap:34px;margin-top:38px;padding-top:26px;border-top:1px solid rgba(255,255,255,.14);}
.hero-stats div span{display:block;font-family:var(--serif);font-size:clamp(24px,3.4vw,34px);line-height:1.2;color:#fff;}
.hero-stats div small{font-size:11.5px;letter-spacing:.14em;color:#8FA8A5;}

/* ---------- 検索ボックス ---------- */
.searchbox{background:#fff;border-radius:8px;box-shadow:var(--shadow-lg);padding:20px;color:var(--moss);}
.searchbox .row{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:10px;}
.searchbox label{display:block;font-size:11px;letter-spacing:.1em;color:var(--stone);margin-bottom:5px;}
.searchbox select,.searchbox input{
  width:100%;border:1px solid var(--line);border-radius:var(--r);background:#fff;
  padding:11px 12px;font:inherit;font-size:14.5px;color:var(--moss);
}
.searchbox .go{
  align-self:end;background:var(--moss);color:#fff;border:0;border-radius:var(--r);
  padding:13px 30px;font-size:15px;white-space:nowrap;transition:background .2s;
}
.searchbox .go:hover{background:var(--water);}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.chip{
  font-size:12.5px;border:1px solid var(--line);color:var(--moss);background:#fff;
  border-radius:20px;padding:6px 15px;transition:.18s;
}
.chip:hover{border-color:var(--water);color:var(--water);}
.chip[aria-pressed="true"]{background:var(--water);border-color:var(--water);color:#fff;}
@media(max-width:860px){.searchbox .row{grid-template-columns:1fr 1fr;}.searchbox .go{grid-column:1/-1;}}
@media(max-width:520px){.searchbox .row{grid-template-columns:1fr;}}

/* ---------- 区切り（沢の流れ） ---------- */
.stream-div{display:block;width:100%;height:44px;color:var(--line);}
.stream-div path{fill:none;stroke:currentColor;stroke-width:1.2;}

/* ---------- セクション ---------- */
section{padding:clamp(52px,7vw,84px) 0;}
.sec-granite{background:var(--granite);}
.sec-abyss{background:var(--abyss);color:#fff;}
.sec-abyss h2.sec{color:#fff;}
.sec-abyss .sec-lead{color:#A9C2BF;}
.sec-abyss .eyebrow{color:#7FC3C8;}
.sec-abyss .eyebrow::after{background:linear-gradient(90deg,rgba(255,255,255,.25),transparent);}

/* ---------- 物件カード ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));gap:22px;}
.card{
  background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;
  display:flex;flex-direction:column;transition:transform .28s ease,box-shadow .28s ease;
}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);}
.card-ph{aspect-ratio:16/10;position:relative;display:grid;place-items:center;overflow:hidden;}
.card-ph img{width:100%;height:100%;object-fit:cover;}
.card-ph .ph-note{font-size:11.5px;color:#DCEAE8;letter-spacing:.05em;text-align:center;padding:0 14px;}
.badge{
  position:absolute;top:10px;left:10px;background:var(--ember);color:#fff;
  font-size:11px;letter-spacing:.08em;padding:3px 10px;border-radius:3px;
}
.badge.rel{position:static;background:var(--foam);color:var(--water);}
.card-b{padding:16px 17px 18px;display:flex;flex-direction:column;flex:1;}
.card-loc{font-size:13.5px;color:var(--stone);}
.card-ttl{font-family:var(--serif);font-size:18px;line-height:1.55;margin:4px 0 10px;}
.card-meta{font-size:13px;color:var(--stone);display:flex;flex-wrap:wrap;gap:4px 14px;}
.card-price{font-family:var(--serif);font-size:26px;line-height:1.2;margin-top:12px;}
.card-price small{font-size:13px;font-family:var(--sans);color:var(--stone);margin-left:2px;}
.card-ft{
  margin-top:14px;padding-top:12px;border-top:1px dotted var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.card-agent{font-size:11.5px;color:var(--stone);}
.card-agent b{color:var(--moss);font-weight:500;}
.score-pill{
  display:inline-flex;align-items:baseline;gap:4px;background:var(--foam);color:var(--water);
  border-radius:4px;padding:3px 9px;font-size:11.5px;letter-spacing:.06em;
}
.score-pill b{font-family:var(--serif);font-size:17px;font-weight:600;}

/* ---------- 量水標ゲージ（署名要素） ---------- */
.gauge{display:flex;gap:18px;align-items:stretch;}
.staff{
  width:46px;min-height:132px;border:1px solid var(--water);border-radius:3px;
  background:#fff;position:relative;overflow:hidden;flex:none;
}
.staff .fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg,var(--water-lt),var(--water));transition:height 1s cubic-bezier(.22,.9,.3,1);}
.staff .tick{position:absolute;left:0;width:100%;border-top:1px solid rgba(28,58,51,.32);}
.staff .tick b{position:absolute;right:4px;top:1px;font-size:9px;font-weight:400;color:var(--moss);}
.gauge-num{font-family:var(--serif);font-size:52px;line-height:1;font-weight:600;}
.gauge-num em{font-style:normal;font-size:17px;color:var(--stone);}
.gauge-lab{font-size:12.5px;color:var(--stone);margin-top:8px;line-height:1.7;}

/* ---------- 特徴（3カラム） ---------- */
.feats{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:26px;}
.feat{border-top:2px solid var(--water);padding-top:20px;}
.feat .n{font-family:var(--serif);font-size:13px;letter-spacing:.2em;color:var(--water);}
.feat h3{font-family:var(--serif);font-size:19px;font-weight:600;margin:8px 0 10px;line-height:1.6;}
.feat p{font-size:14.5px;color:var(--stone);margin:0;}

/* ---------- 明細表 ---------- */
.spec{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;}
.spec dl{display:grid;grid-template-columns:150px 1fr;margin:0;}
.spec dt,.spec dd{margin:0;padding:12px 16px;border-bottom:1px solid var(--line);font-size:14.5px;}
.spec dt{background:var(--granite);color:var(--stone);font-size:13px;}
.spec dl>:nth-last-child(-n+2){border-bottom:0;}
@media(max-width:560px){.spec dl{grid-template-columns:110px 1fr;}}

/* ---------- ボタン ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--moss);color:#fff;border:0;border-radius:var(--r);
  padding:16px 34px;font-size:15.5px;transition:background .2s,transform .2s;text-align:center;
}
.btn:hover{background:var(--water);transform:translateY(-1px);}
.btn.wide{width:100%;}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;}
.btn.ghost:hover{background:rgba(255,255,255,.1);}
.btn.line{background:#fff;border:1px solid var(--moss);color:var(--moss);}
.btn.line:hover{background:var(--moss);color:#fff;}
.btn small{display:block;font-size:11.5px;opacity:.75;margin-top:2px;}

/* ---------- 注記 ---------- */
.note{
  font-size:12.5px;line-height:1.85;color:var(--stone);
  background:var(--granite);border-left:2px solid var(--line);padding:14px 16px;border-radius:0 4px 4px 0;
}
.note b{color:var(--moss);font-weight:500;}

/* ---------- フォーム ---------- */
.form{display:grid;gap:18px;}
.f-row{display:grid;gap:7px;}
.f-row label{font-size:13px;color:var(--moss);}
.f-row .req{color:var(--ember);font-size:11px;margin-left:6px;}
.f-row input,.f-row select,.f-row textarea{
  border:1px solid var(--line);border-radius:var(--r);padding:13px 14px;font:inherit;font-size:15px;
  background:#fff;color:var(--moss);width:100%;
}
.f-row textarea{min-height:110px;resize:vertical;}
.f-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:640px){.f-2{grid-template-columns:1fr;}}
.f-check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--stone);}
.f-check input{width:18px;height:18px;margin-top:3px;flex:none;}
.msg{padding:14px 16px;border-radius:var(--r);font-size:14px;}
.msg.ok{background:var(--foam);color:var(--water);border:1px solid #BEDCDC;}
.msg.ng{background:#FBF0E8;color:#9A5F26;border:1px solid #EBD3BC;}

/* ---------- フッター ---------- */
.ft{background:var(--abyss);color:#9FB6B3;padding:56px 0 30px;font-size:13.5px;}
.ft a:hover{color:#fff;}
.ft-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.12);}
.ft-logo img{height:44px;filter:brightness(0) invert(1);opacity:.9;margin-bottom:14px;}
.ft h4{color:#fff;font-size:12px;letter-spacing:.18em;margin:0 0 14px;font-weight:500;}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.ft-bt{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:22px;font-size:12px;color:#7C918E;}
.ft-note{font-size:12px;line-height:1.9;color:#7C918E;margin-top:18px;}
@media(max-width:800px){.ft-top{grid-template-columns:1fr;gap:28px;}}

/* ---------- 汎用 ---------- */
.grid-2{display:grid;grid-template-columns:1fr 380px;gap:38px;align-items:start;}
@media(max-width:960px){.grid-2{grid-template-columns:1fr;}}
.rail{position:sticky;top:92px;background:var(--granite);border:1px solid var(--line);border-radius:8px;padding:22px;}
.kv{margin:16px 0 0;}
.kv div{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;padding:9px 0;border-bottom:1px dotted var(--line);}
.kv div:last-child{border-bottom:0;}
.kv span:first-child{color:var(--stone);}
.kv span:last-child{font-weight:500;}
.kv .ok{color:var(--water);}
.crumb{font-size:12.5px;color:var(--stone);padding:18px 0 0;}
.crumb a:hover{color:var(--water);}
.pagehead{padding:40px 0 8px;}
.pagehead h1{font-family:var(--serif);font-size:clamp(25px,4vw,38px);font-weight:600;margin:6px 0 10px;line-height:1.45;}
.pagehead p{color:var(--stone);margin:0;max-width:70ch;}
.empty{text-align:center;padding:70px 20px;color:var(--stone);}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:none;}
