@charset "UTF-8";

:root{
  --ink:#2e3238;
  --ink-mid:#5b6068;
  --ink-light:#737880;
  --accent:#7a97a3;
  --accent-deep:#5d7e8c;
  --line:#e3e5e7;
  --bg:#ffffff;
  --bg-alt:#f6f7f8;
  --maxw:1120px;
  --narrow:840px;
  --serif:"Zen Old Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
  --en:"Cormorant Garamond","Times New Roman",serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;
  font-weight:400;color:var(--ink);background:var(--bg);
  line-height:2;font-size:15px;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.narrow{max-width:var(--narrow);margin:0 auto;padding:0 32px;}

/* ヘッダー */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(255,255,255,.95);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
}
.head-in{
  max-width:var(--maxw);margin:0 auto;padding:0 32px;height:76px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.logo{font-family:var(--en);font-size:26px;letter-spacing:.16em;line-height:1.15;color:var(--ink);}
.logo small{
  display:block;font-family:"Noto Sans JP",sans-serif;font-size:9px;
  letter-spacing:.32em;color:var(--ink-light);
}
.gnav ul{display:flex;gap:34px;}
.gnav a{font-size:13px;letter-spacing:.1em;color:var(--ink-mid);transition:color .3s;}
.gnav a:hover,.gnav a[aria-current="page"]{color:var(--accent-deep);}
.menu-btn{display:none;width:44px;height:44px;background:none;border:none;cursor:pointer;position:relative;}
.menu-btn span{position:absolute;left:11px;width:22px;height:1px;background:var(--ink);transition:.3s;}
.menu-btn span:nth-child(1){top:16px;}
.menu-btn span:nth-child(2){top:22px;}
.menu-btn span:nth-child(3){top:28px;}
.menu-btn.open span:nth-child(1){top:22px;transform:rotate(45deg);}
.menu-btn.open span:nth-child(2){opacity:0;}
.menu-btn.open span:nth-child(3){top:22px;transform:rotate(-45deg);}
.drawer{display:none;position:fixed;inset:68px 0 0;background:#fff;z-index:99;padding:24px 22px;overflow-y:auto;}
.drawer.open{display:block;}
.drawer li{border-bottom:1px solid var(--line);}
.drawer a{display:block;padding:18px 4px;font-size:15px;letter-spacing:.06em;}

/* トップの大きな写真 */
.hero{position:relative;height:clamp(440px,74vh,680px);overflow:hidden;background:var(--bg-alt);}
.hero img{width:100%;height:100%;object-fit:cover;object-position:center 60%;}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,34,40,.72) 0%,rgba(30,34,40,.5) 45%,rgba(30,34,40,.12) 100%);}
.hero-txt{
  position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;
  max-width:var(--maxw);margin:0 auto;padding:0 32px;color:#fff;
}
.hero-en{font-family:var(--en);font-size:13px;letter-spacing:.34em;margin-bottom:22px;opacity:.9;}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(28px,4.4vw,46px);letter-spacing:.1em;line-height:1.5;text-shadow:0 1px 18px rgba(0,0,0,.35);}
.hero p{margin-top:26px;font-size:15px;letter-spacing:.05em;line-height:2.2;max-width:40em;text-shadow:0 1px 10px rgba(0,0,0,.45);}

/* 下層ページの見出し */
.page-head{background:var(--bg-alt);padding:clamp(52px,7vw,84px) 0;border-bottom:1px solid var(--line);}
.page-head .en{font-family:var(--en);font-size:12px;letter-spacing:.3em;color:var(--accent-deep);margin-bottom:10px;}
.page-head h1{font-family:var(--serif);font-weight:400;font-size:clamp(24px,3.2vw,34px);letter-spacing:.1em;line-height:1.6;}

/* セクション共通 */
section{padding:clamp(64px,9vw,112px) 0;}
.bg-alt{background:var(--bg-alt);}
.sec-label{font-family:var(--en);font-size:12px;letter-spacing:.3em;color:var(--accent-deep);margin-bottom:12px;}
.sec-title{font-family:var(--serif);font-weight:400;font-size:clamp(21px,2.7vw,28px);letter-spacing:.09em;line-height:1.7;}
.sec-head{margin-bottom:48px;}
.lead{color:var(--ink-mid);line-height:2.3;font-size:15px;}
.lead + .lead{margin-top:20px;}
.sub-title{
  font-family:var(--serif);font-weight:400;font-size:20px;letter-spacing:.08em;
  margin-bottom:6px;
}

/* ボタン・リンク */
.btn{
  display:inline-block;border:1px solid var(--ink);padding:15px 38px;
  font-size:13px;letter-spacing:.12em;transition:.3s;background:transparent;color:var(--ink);
  cursor:pointer;font-family:inherit;
}
.btn:hover{background:var(--ink);color:#fff;}
.btn-fill{background:var(--ink);color:#fff;}
.btn-fill:hover{background:var(--accent-deep);border-color:var(--accent-deep);}
.btn-light{border-color:rgba(255,255,255,.6);color:#fff;}
.btn-light:hover{background:#fff;color:var(--ink);border-color:#fff;}
.more{
  display:inline-block;font-size:13px;letter-spacing:.1em;color:var(--accent-deep);
  border-bottom:1px solid var(--line);padding-bottom:2px;transition:border-color .3s;
}
.more:hover{border-color:var(--accent-deep);}
.ext::after{content:"↗";font-size:11px;margin-left:5px;}

/* 事業カード */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
.card figure{aspect-ratio:4/3;overflow:hidden;margin-bottom:22px;background:var(--bg-alt);}
.card figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s;}
.card:hover figure img{transform:scale(1.04);}
.card .cat{font-family:var(--en);font-size:11.5px;letter-spacing:.24em;color:var(--accent-deep);}
.card h3{font-family:var(--serif);font-weight:400;font-size:19px;letter-spacing:.08em;margin:6px 0 12px;}
.card p{font-size:14px;color:var(--ink-mid);line-height:2.1;}
.card .more{margin-top:16px;}

/* 採用の帯 */
.band{background:var(--ink);color:#fff;}
.band-in{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;}
.band .sec-label{color:#a9bec7;}
.band h2{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.6vw,28px);letter-spacing:.08em;line-height:1.8;margin-bottom:18px;}
.band p{font-size:14.5px;color:rgba(255,255,255,.75);line-height:2.2;}
.band-btn{text-align:right;}

/* 表 */
.tbl{width:100%;border-collapse:collapse;border-top:1px solid var(--line);}
.tbl th,.tbl td{text-align:left;padding:20px 8px;border-bottom:1px solid var(--line);font-size:14.5px;vertical-align:top;line-height:2;}
.tbl th{width:170px;font-weight:400;color:var(--ink-light);letter-spacing:.08em;}

/* 店舗 */
.shop{display:grid;grid-template-columns:1fr 1.15fr;gap:52px;align-items:start;scroll-margin-top:96px;}
.shop + .shop{margin-top:88px;}
.shop figure{aspect-ratio:4/3;overflow:hidden;background:var(--bg-alt);}
.shop figure img{width:100%;height:100%;object-fit:cover;}
.shop .en{font-family:var(--en);font-size:12px;letter-spacing:.26em;color:var(--accent-deep);}
.shop h3{font-family:var(--serif);font-weight:400;font-size:24px;letter-spacing:.08em;margin:4px 0 14px;}
.shop .desc{font-size:14.5px;color:var(--ink-mid);line-height:2.2;margin-bottom:18px;}
.shop dl{display:grid;grid-template-columns:96px 1fr;border-top:1px solid var(--line);}
.shop dt,.shop dd{padding:12px 4px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.9;}
.shop dt{color:var(--ink-light);letter-spacing:.06em;font-size:13px;}
.shop .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;}
.shop .actions .btn{padding:13px 26px;font-size:12.5px;}

/* フォーム */
.notice{background:var(--bg-alt);padding:24px 28px;font-size:14px;color:var(--ink-mid);line-height:2.1;margin-bottom:44px;}
.notice a{color:var(--accent-deep);border-bottom:1px solid var(--line);}
.form-row{margin-bottom:26px;}
.form-row label{display:block;font-size:13.5px;letter-spacing:.06em;margin-bottom:8px;}
.req{font-size:11px;color:#a8746c;margin-left:8px;letter-spacing:.04em;}
.form-row input,.form-row select,.form-row textarea{
  width:100%;border:1px solid var(--line);background:#fff;padding:13px 15px;
  font-family:inherit;font-size:15px;color:var(--ink);border-radius:0;-webkit-appearance:none;appearance:none;
}
.form-row select{background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%23737880'/></svg>") no-repeat right 16px center;padding-right:40px;}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-color:var(--accent);}
.form-row textarea{min-height:180px;line-height:1.9;resize:vertical;}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-mid);}
.agree input{margin-top:8px;width:16px;height:16px;flex-shrink:0;}
.agree a{color:var(--accent-deep);border-bottom:1px solid var(--line);}
.form-submit{text-align:center;margin-top:36px;}
.form-submit .btn{min-width:260px;}
.hidden{position:absolute;left:-9999px;}

/* 文書ページ */
.doc h2{font-family:var(--serif);font-weight:400;font-size:18px;letter-spacing:.08em;margin:44px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line);}
.doc h2:first-of-type{margin-top:36px;}
.doc p,.doc li{font-size:14.5px;color:var(--ink-mid);line-height:2.2;}
.doc p + p{margin-top:12px;}
.doc ol{counter-reset:n;margin:10px 0 14px;}
.doc ol li{position:relative;padding-left:28px;margin-bottom:6px;counter-increment:n;}
.doc ol li::before{content:counter(n) ".";position:absolute;left:2px;color:var(--accent-deep);}
.doc .date{margin-top:48px;font-size:13px;color:var(--ink-light);}

/* フッター */
.site-footer{background:var(--ink);color:rgba(255,255,255,.65);padding:64px 0 30px;font-size:13px;}
.f-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding-bottom:44px;}
.site-footer .logo{color:#fff;}
.site-footer .logo small{color:rgba(255,255,255,.5);}
.f-addr{font-size:13px;line-height:2;margin-top:18px;color:rgba(255,255,255,.55);}
.site-footer h4{font-family:var(--en);font-size:11.5px;letter-spacing:.24em;color:rgba(255,255,255,.45);margin-bottom:14px;font-weight:400;}
.site-footer li{margin-bottom:9px;}
.site-footer a:hover{color:#fff;}
.f-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:rgba(255,255,255,.45);}

@media (max-width:880px){
  body{font-size:14.5px;}
  .wrap,.narrow{padding:0 22px;}
  .head-in{padding:0 22px;height:68px;}
  .gnav{display:none;}
  .menu-btn{display:block;}
  .hero-txt{padding:0 22px;}
  .hero::after{background:rgba(30,34,40,.58);}
  .grid-3{grid-template-columns:1fr;gap:52px;}
  .band-in{grid-template-columns:1fr;gap:28px;}
  .band-btn{text-align:left;}
  .shop{grid-template-columns:1fr;gap:24px;}
  .shop + .shop{margin-top:64px;}
  .f-top{grid-template-columns:1fr 1fr;gap:32px;}
  .f-top > div:first-child{grid-column:1/-1;}
  .tbl th{width:110px;font-size:13.5px;}
}
@media (max-width:520px){
  .tbl th,.tbl td{display:block;width:auto;}
  .tbl th{border-bottom:none;padding:16px 4px 0;}
  .tbl td{padding:4px 4px 16px;}
  .shop dl{grid-template-columns:84px 1fr;}
  .btn{padding:14px 28px;}
  .form-submit .btn{width:100%;min-width:0;}
}
