
:root{
  --ground:#FBFAF9;
  --panel:#FFFFFF;
  --ink:#171615;
  --ink-2:#56544F;
  --ink-3:#8A8781;
  --line:#E7E4DF;
  --line-2:#CBC7C0;
  --mark:#6E6E6E;
  --logo-filter:none;
  --maxw:1080px;
  --f-jp:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  --f-en:"Archivo","Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#131312; --panel:#1A1A18; --ink:#F0EEEA; --ink-2:#ADAAA4; --ink-3:#7C7A75;
    --line:#2A2926; --line-2:#403E3A; --mark:#9A9791; --logo-filter:invert(1) brightness(0.92);
  }
}
:root[data-theme="dark"]{
  --ground:#131312; --panel:#1A1A18; --ink:#F0EEEA; --ink-2:#ADAAA4; --ink-3:#7C7A75;
  --line:#2A2926; --line-2:#403E3A; --mark:#9A9791; --logo-filter:invert(1) brightness(0.92);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:var(--f-jp);font-size:16px;line-height:1.95;letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
img,svg{display:block;max-width:100%}
h1,h2,h3{margin:0;font-weight:500;line-height:1.5;text-wrap:balance;letter-spacing:.04em}
p{margin:0}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}

.wrap{width:min(100% - 44px, var(--maxw));margin-inline:auto}
.bmark{width:13px;height:13px;fill:var(--mark);flex:none}
.label{
  font-family:var(--f-en);font-size:11px;font-weight:500;letter-spacing:.24em;
  text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:9px;
}

/* ── ヘッダー ─────────────────────────── */
header.site{
  position:sticky;top:0;z-index:40;
  background:color-mix(in srgb, var(--ground) 90%, transparent);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line);
}
.bar{display:flex;align-items:center;gap:26px;height:78px}
.brand{margin-right:auto;display:block}
.brand img{height:clamp(24px,2.1vw,28px);width:auto;filter:var(--logo-filter)}
nav.main{display:flex;gap:26px}
nav.main a{
  font-size:13px;color:var(--ink-2);text-decoration:none;padding-block:6px;
  border-bottom:1px solid transparent;transition:color .2s,border-color .2s;white-space:nowrap;
}
nav.main a:hover{color:var(--ink);border-bottom-color:var(--ink)}
nav.main a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}
.tel-top{font-family:var(--f-en);font-size:17px;font-weight:500;letter-spacing:.03em;text-decoration:none;font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:1000px){nav.main{display:none}}
@media (max-width:520px){.tel-top{font-size:15px}.bar{height:66px;gap:16px}.brand img{height:22px}}

/* スマホ用メニュー（ヘッダー下の横スクロール） */
.mnav{display:none;border-bottom:1px solid var(--line);background:var(--panel)}
.mnav .row{display:flex;gap:22px;overflow-x:auto;padding:12px 0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.mnav .row::-webkit-scrollbar{display:none}
.mnav a{font-size:13px;color:var(--ink-2);text-decoration:none;white-space:nowrap;padding-bottom:3px;border-bottom:1px solid transparent}
.mnav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}
@media (max-width:1000px){.mnav{display:block}}

/* ── 注記バー ─────────────────────────── */
.note-bar{border-bottom:1px solid var(--line);background:var(--panel)}
.note-bar .wrap{padding:11px 0;font-size:12px;color:var(--ink-3);line-height:1.7}

/* ── ヒーロー（トップ） ─────────────────── */

/* ── トップ（街並みの上にコンセプトを重ねる） ───── */
:root{
  --sky-1:#FBFAF7; --sky-2:#E6EDF0;
  --mt-far:#E2E9EB; --mt-near:#D2DFE4;
  --bldg-fill:#FAF9F6; --bldg-line:#8F949A;
  --sea-1:#DCE8ED; --sea-2:#CBDCE4; --sea-line:#A8C1CC;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --sky-1:#12151A; --sky-2:#1D2732;
    --mt-far:#1B242C; --mt-near:#222E38;
    --bldg-fill:#171A1D; --bldg-line:#6B757D;
    --sea-1:#152029; --sea-2:#101922; --sea-line:#33505F;
  }
}
:root[data-theme="dark"]{
  --sky-1:#12151A; --sky-2:#1D2732;
  --mt-far:#1B242C; --mt-near:#222E38;
  --bldg-fill:#171A1D; --bldg-line:#6B757D;
  --sea-1:#152029; --sea-2:#101922; --sea-line:#33505F;
}

.hero{
  position:relative;border-top:0;padding:0;
  background:linear-gradient(var(--sky-1) 0%, var(--sky-2) 100%);
  display:flex;flex-direction:column;justify-content:flex-end;
}
.cityscape{
  width:100%;height:auto;display:block;
  fill:none;stroke:var(--bldg-line);stroke-width:1.2;
  stroke-linecap:round;stroke-linejoin:round;
}
.cityscape .blocks rect,.cityscape .blocks path{fill:var(--bldg-fill)}
.cityscape .win{stroke-width:.85;opacity:.55}
.cityscape .dot{fill:var(--bldg-line);stroke:none}
.cityscape .shore{stroke:var(--sea-line);stroke-width:1.4}
.cityscape .water line{stroke:var(--sea-line);stroke-width:1.2;opacity:.75}

.hero-inner{
  position:relative;z-index:1;text-align:center;
  width:min(100% - 44px, var(--maxw));margin-inline:auto;
  padding:clamp(28px,3.2vw,44px) 0 clamp(12px,1.5vw,20px);
}
.hero-logo{
  height:clamp(24px,3vw,36px);width:auto;filter:var(--logo-filter);
  margin:clamp(20px,2.6vw,32px) auto 0;
}
.hero h1{
  font-size:clamp(28px,5.2vw,56px);font-weight:500;
  line-height:1.45;letter-spacing:.08em;
}
.hero h1 span{display:block}
@media (max-width:700px){
  .cityscape{width:240%;max-width:240%;margin-left:-70%}
  .hero-inner{padding:clamp(34px,8vw,56px) 0 clamp(18px,3vw,28px)}
}
@media (max-width:560px){.hero h1{letter-spacing:.05em;font-size:26px}.hero-logo{height:22px;margin-top:24px}}

/* 街並みの下：説明と連絡先（中央寄せ） */
.hero-under{border-top:1px solid var(--line);padding:clamp(46px,6.5vw,76px) 0;text-align:center}
.hero-under .lead{
  max-width:none;color:var(--ink-2);
  font-size:clamp(14.5px,1.2vw,16.5px);line-height:2.3;
}
.hero-under .lead span{display:block}
@media (max-width:700px){.hero-under .lead{line-height:2.1}.hero-under .lead span{margin-bottom:10px}}
.hero-under .cta{margin-top:clamp(28px,3.4vw,40px);justify-content:center}
.hero-under .btn{padding:16px 34px;font-size:14.5px}


/* ── 小さな線画イラスト ───────────────────── */
.ill{
  width:100%;max-width:132px;height:auto;display:block;
  margin-bottom:18px;
  fill:none;stroke:var(--bldg-line);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;
}
.ill .fl{fill:var(--bldg-fill)}
.ill .tn{fill:var(--mt-near);stroke:var(--bldg-line)}
.ill .tl{stroke-width:1.1;opacity:.6}
.ill .gr{stroke-width:1.3;opacity:.45}
.ill .ln{fill:none}

.entries .ill{max-width:104px;margin-bottom:14px}
.c-head{display:block}
.case .ill{max-width:92px;margin-bottom:12px}
.pair .ill{max-width:120px;margin:0 0 18px}

/* ── 地図 ─────────────────────────────── */
.mapbox{
  border:1px solid var(--line);background:var(--panel);
  aspect-ratio:16/8;width:100%;overflow:hidden;
}
.mapbox iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:700px){.mapbox{aspect-ratio:4/3}}
.map-note{margin-top:18px;font-size:13px;color:var(--ink-3);line-height:2}

.frame i{position:absolute;width:20px;height:20px;border:3px solid var(--mark)}
.frame .tl{top:0;left:0;border-right:0;border-bottom:0}
.frame .tr{top:0;right:0;border-left:0;border-bottom:0}
.frame .bl{bottom:0;left:0;border-right:0;border-top:0}
.frame .br{bottom:0;right:0;border-left:0;border-top:0}
.hero h1{font-size:clamp(29px,5.6vw,58px);font-weight:500;line-height:1.42;letter-spacing:.06em}
.hero h1 span{display:block}
.hero .lead{margin-top:clamp(30px,5vw,46px);max-width:33em;color:var(--ink-2);font-size:15px;line-height:2.1}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.btn{
  font-family:var(--f-jp);font-size:14px;font-weight:500;padding:14px 30px;text-decoration:none;
  border:1px solid var(--ink);display:inline-flex;align-items:center;gap:10px;transition:background .2s,color .2s;
}
.btn-solid{background:var(--ink);color:var(--ground)}
.btn-solid:hover{background:transparent;color:var(--ink)}
.btn-line{color:var(--ink);border-color:var(--line-2)}
.btn-line:hover{border-color:var(--ink)}

/* ── 下層ページの見出し ───────────────── */
.page-head{padding:clamp(46px,7vw,84px) 0 clamp(30px,4vw,44px)}
.page-head h1{font-size:clamp(26px,4vw,42px);margin:16px 0 0;letter-spacing:.06em}
.page-head p{margin-top:20px;max-width:38em;color:var(--ink-2);font-size:15px;line-height:2.1}

/* ── セクション ───────────────────────── */
section{padding:clamp(52px,8vw,96px) 0;border-top:1px solid var(--line)}
section.first{border-top:0;padding-top:0}
.head{max-width:40em;margin-bottom:clamp(32px,5vw,50px)}
.head h2{font-size:clamp(21px,2.9vw,30px);margin:16px 0 0;line-height:1.6}
.head p{margin-top:18px;color:var(--ink-2);font-size:14.5px;line-height:2.05}

/* トップの入口カード */
.entries{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.entries a{
  background:var(--ground);padding:clamp(26px,3.6vw,38px);text-decoration:none;
  display:flex;flex-direction:column;gap:10px;transition:background .2s;
}
.entries a:hover{background:var(--panel)}
.entries .en{font-family:var(--f-en);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.entries h3{font-size:18px}
.entries p{color:var(--ink-2);font-size:13.5px;line-height:2}
.entries .go{margin-top:8px;font-size:13px;color:var(--ink-3)}
.entries a:hover .go{color:var(--ink)}
@media (max-width:700px){.entries{grid-template-columns:1fr}}

/* 理由（2つ組） */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px)}
.pair article{border-top:1px solid var(--line-2);padding-top:22px}
.pair h3{font-size:17px;line-height:1.7;margin-bottom:12px}
.pair p{color:var(--ink-2);font-size:14px;line-height:2.05}
@media (max-width:800px){.pair{grid-template-columns:1fr;gap:32px}}

/* できること */
.doing{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.doing article{background:var(--ground);padding:clamp(24px,3.4vw,34px)}
.doing .en{font-family:var(--f-en);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.doing h3{font-size:17px;margin:8px 0 12px}
.doing p{color:var(--ink-2);font-size:13.5px;line-height:2}
.doing ul{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px}
.doing li{font-size:12.5px;color:var(--ink-3);padding-left:15px;position:relative;line-height:1.9}
.doing li::before{content:"";position:absolute;left:0;top:.95em;width:7px;height:1px;background:var(--mark)}
@media (max-width:700px){.doing{grid-template-columns:1fr}}
.after + .after{margin-top:18px}
.after{margin-top:clamp(30px,4vw,42px);padding-left:22px;border-left:2px solid var(--mark);color:var(--ink-2);font-size:14px;line-height:2.1;max-width:44em}

/* 相談の例 */
.cases{border-top:1px solid var(--line)}
.case{display:grid;grid-template-columns:15em 1fr;gap:clamp(16px,3vw,44px);padding:26px 0;border-bottom:1px solid var(--line)}
.case h3{font-size:15px;line-height:1.75;font-weight:500}
.case p{color:var(--ink-2);font-size:14px;line-height:2.05}
@media (max-width:720px){.case{grid-template-columns:1fr;gap:8px;padding:22px 0}}
.closing{margin-top:30px;font-size:14px;color:var(--ink-2);line-height:2.05}

/* お取引について */
.stance{border:1px solid var(--line-2);padding:clamp(24px,4vw,38px);max-width:46em}
.stance h3{font-size:16px;margin-bottom:14px}
.stance p{color:var(--ink-2);font-size:14px;line-height:2.05}

/* Instagram */
.sns{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.sns .item{background:var(--ground);padding:clamp(22px,3.2vw,30px);display:flex;flex-direction:column;gap:8px;text-decoration:none}
.sns .item span.t{font-size:15px;font-weight:500}
.sns .item span.d{font-size:12.5px;color:var(--ink-3);line-height:1.9}
.sns .item span.s{font-family:var(--f-en);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-top:6px}
@media (max-width:700px){.sns{grid-template-columns:1fr}}

/* 会社概要 */
.about{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,72px);align-items:start}
table.company{width:100%;border-collapse:collapse;font-size:14px}
table.company th,table.company td{text-align:left;padding:15px 0;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.85}
table.company th{width:8em;font-weight:400;color:var(--ink-3);font-size:13px}
table.company td{color:var(--ink-2)}
.bignm{font-family:var(--f-en);font-size:19px;font-weight:400;letter-spacing:.06em;color:var(--ink);display:inline-block;line-height:1.5}
.greet h3{font-size:16px;margin-bottom:16px}
.greet p{color:var(--ink-2);font-size:14px;line-height:2.1}
.greet p + p{margin-top:15px}
.greet .sign{margin-top:24px;font-size:13px;color:var(--ink-3);text-align:right}
.greet .sign b{font-size:15px;font-weight:500;color:var(--ink);margin-left:10px}
@media (max-width:860px){.about{grid-template-columns:1fr}}

/* お問い合わせ */
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px)}
.ci{display:flex;flex-direction:column;gap:6px}
.ci .k{font-family:var(--f-en);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.ci .v{font-family:var(--f-en);font-size:24px;font-weight:500;letter-spacing:.02em;text-decoration:none;font-variant-numeric:tabular-nums}
.ci .v.sm{font-size:15px;letter-spacing:0;font-family:var(--f-jp);line-height:1.85}
.ci .n{font-size:12.5px;color:var(--ink-3);line-height:1.9}
@media (max-width:760px){.contact{grid-template-columns:1fr;gap:28px}}

/* 次のページへの誘導 */
.next{border-top:1px solid var(--line);padding:clamp(38px,5vw,58px) 0}
.next a{display:flex;justify-content:space-between;align-items:center;gap:20px;text-decoration:none;flex-wrap:wrap}
.next .t{font-size:17px}
.next .g{font-size:13px;color:var(--ink-3)}
.next a:hover .g{color:var(--ink)}

/* 一文が途中で折り返さないよう、本文の幅制限を外す */
.head{max-width:none}
.head p,.page-head p,.pair p,.case p,.closing,.after,.stance p,.greet p{max-width:none}

/* フッター */
footer.site{border-top:1px solid var(--line);padding:44px 0 34px}
.fgrid{display:flex;flex-wrap:wrap;gap:26px;justify-content:space-between;align-items:flex-start}
footer.site .brand img{height:22px}
footer.site p{font-size:12px;color:var(--ink-3);margin-top:14px;line-height:2.05;max-width:40em}
.nb{white-space:nowrap}
footer nav{display:flex;flex-wrap:wrap;gap:20px}
footer nav a{font-size:12.5px;color:var(--ink-2);text-decoration:none}
footer nav a:hover{color:var(--ink);text-decoration:underline}
.copy{margin-top:30px;font-family:var(--f-en);font-size:10.5px;letter-spacing:.14em;color:var(--ink-3)}
