@charset "UTF-8";

/* =========================================================
   佐野川茶 / Sanogawa Tea
   共通スタイル（リセット／配色トークン／ヘッダー・
   ドロワー・フッター・ボタン・見出し）

   スケール方式：html の font-size を vw で与え、各寸法は
   rem で持つ。これで画面幅に対して版面が丸ごと比例する。
   和文は游明朝系、欧文は Cormorant Garamond（Google Fonts）。
   ========================================================= */

/* ---------- reset ---------- */
*, :after, :before { box-sizing: border-box; }
blockquote, body, button, dd, dl, fieldset, h1, h2, h3, h4, h5, h6, hr, iframe,
input, legend, ol, option, p, pre, select, td, textarea, th, ul {
  margin: 0; padding: 0; border: none;
}
h1, h2, h3, h4, h5, h6, small, strong, sub, sup, th { font-size: inherit; font-weight: inherit; }
address, cite, dfn, em, var { font-style: normal; }
caption, th { text-align: left; }
a, abbr[title], ins { text-decoration: none; }
html {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  overflow-y: scroll;
}
body, html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { line-height: 1; }
main { display: block; }
ol, ul { list-style-type: none; }
img, svg { vertical-align: bottom; }
a { color: inherit; }
button, input, select, textarea { font-family: inherit; font-size: inherit; background: none; color: inherit; }
a, button, input[type=checkbox], input[type=radio], label, select { cursor: pointer; }
button { outline: none; }

/* ---------- tokens ---------- */
:root {
  --ink: #231815;         /* 基調の墨 */
  --tea: #217a45;         /* アクセント（茶葉の緑） */
  --tea-deep: #2f6b3a;    /* 版面が反転したときの下地 */
  --gray: #b7b3b1;
  --line: #d2cdcb;
  --mute: #6a6663;
  --dark-line: #424141;
  --cream: #eee9e7;
  --paper: #ffffff;
  --f-jp: YuMincho, "游明朝", "Yu Mincho", "Times New Roman", "Hiragino Mincho ProN",
          "HGS明朝B", "MS P明朝", "Noto Serif JP", serif;
  --f-en: "Cormorant Garamond", YuMincho, "游明朝", "Times New Roman",
          "Hiragino Mincho ProN", serif;
}

body {
  font-weight: 500;
  color: var(--ink);
  font-family: var(--f-jp);
  font-feature-settings: "palt";
  background: var(--paper);
}

/* ---------- 下地（茶畑の緑）---------- */
.sg-tone {
  z-index: 200; position: fixed; top: 0; left: 0;
  width: 100%; height: 100vh; pointer-events: none;
  opacity: 0; transition: opacity .9s ease;
  background-color: var(--tea-deep);
  background-image:
    radial-gradient(120% 90% at 22% 8%, rgba(126, 196, 106, .5) 0%, rgba(126, 196, 106, 0) 58%),
    radial-gradient(100% 80% at 88% 96%, rgba(12, 54, 26, .55) 0%, rgba(12, 54, 26, 0) 60%),
    repeating-linear-gradient(115deg, rgba(255, 255, 255, .035) 0 2px, rgba(0, 0, 0, .03) 2px 4px);
}
.sg-tone.is-on { opacity: 1; }

.sg-view { opacity: 0; transition: opacity 1.2s ease; }
.sg-view.is-ready { opacity: 1; }
.sg-shell, .sg-main { position: relative; }
.sg-shell { z-index: 300; }
.sg-main { z-index: 1; }

/* ---------- ロゴマーク ---------- */
.sg-leaf { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; color: currentColor; }

/* ---------- header（ページ先頭に置くだけ。スクロール追従はしない） ---------- */
.sg-topbar {
  z-index: 800; display: flex; justify-content: space-between; align-items: flex-start;
  position: absolute; width: 100%; pointer-events: none;
}
.sg-topbar__logo { display: block; pointer-events: auto; color: var(--ink); }
.sg-topbar__logo-inner { display: block; width: 100%; }
.sg-topbar__mark { display: block; margin: 0 auto; }
.sg-topbar__wordmark {
  display: block; text-align: center; font-weight: 700; white-space: nowrap;
  letter-spacing: .06em;
}
.sg-topbar__est {
  display: block; text-align: center; font-family: var(--f-en);
  font-weight: 600; letter-spacing: .18em; white-space: nowrap;
}
.sg-topbar.is-neg .sg-topbar__logo { color: #fff; }

.sg-topbar__menu {
  position: absolute; top: 0; right: 0; display: flex; align-items: center;
  color: var(--ink); transition: color .5s; pointer-events: auto; z-index: 700;
}
.sg-topbar__menu.is-neg, .sg-topbar__menu.is-neg .sg-topbar__burger-ring { color: #fff; }
.sg-topbar__burger-label { position: relative; font-weight: 600; letter-spacing: .075em; }
.sg-topbar__burger-label-rule { position: absolute; left: 0; height: 1px; background: currentColor; transform-origin: left; }
.sg-topbar__burger { display: flex; align-items: center; position: relative; }
.sg-topbar__burger-ring { color: var(--line); }
.sg-topbar__burger-ring circle { transition: stroke-dashoffset .8s cubic-bezier(.22, 1, .36, 1); }
.sg-topbar__menu:hover .sg-topbar__burger-ring circle { stroke-dashoffset: 0; }
.sg-topbar__burger-bar { position: absolute; top: 0; bottom: 0; margin: auto; height: 1px; }
.sg-topbar__burger-bar-top,
.sg-topbar__burger-bar-mid,
.sg-topbar__burger-bar-low {
  position: absolute; left: 0; height: 1px; background: currentColor; transform-origin: left;
  transition: width .4s cubic-bezier(.22, 1, .36, 1);
}
.sg-topbar__burger-bar-mid { top: 0; }

/* ---------- title ---------- */
.sg-heading__en { font-family: var(--f-en); font-weight: 500; letter-spacing: -.02em; }
.sg-heading__jp { font-weight: 500; letter-spacing: .06em; }

/* ---------- button ---------- */
.sg-btn { display: inline-flex; align-items: center; }
.sg-btn__text { letter-spacing: .1em; position: relative; font-weight: 600; }
.sg-btn__line { position: absolute; left: 0; height: 1px; background-color: var(--tea); transition: width .4s ease-out; }
.sg-btn:hover .sg-btn__line { width: 100% !important; }
.sg-btn__icon {
  display: flex; justify-content: center; align-items: center; position: relative;
  border: 1px solid var(--line); border-radius: 50%; overflow: hidden;
}
.sg-btn__arrow { position: relative; z-index: 2; display: block; }
.sg-btn__arrow.is-flip { transform: rotate(180deg); }
.sg-btn__arrow svg { display: block; width: 100%; height: 100%; overflow: visible; }
.sg-btn__magnet {
  position: absolute; inset: 0; margin: auto; z-index: 1; border-radius: 50%;
  background-color: var(--tea); transform: scale(0);
  transition: transform .5s cubic-bezier(.22, 1, .36, 1);
}
.sg-btn:hover .sg-btn__magnet { transform: scale(1.05); }
.sg-btn:hover .sg-btn__arrow { color: #fff; }

/* テキストリンク（詳細を見る） */
.sg-inlink { font-weight: 600; letter-spacing: .1em; position: relative; display: inline-block; }
.sg-inlink__line { position: absolute; left: 0; height: 1px; background-color: var(--tea); transition: width .4s ease-out; }
a:hover .sg-inlink__line { width: 100% !important; }

/* ---------- scroll down ---------- */
.sg-scrollcue { z-index: 1000; display: flex; align-items: flex-end; position: fixed; transition: opacity .6s; }
.sg-scrollcue.is-hidden { opacity: 0; pointer-events: none; }
.sg-scrollcue__icon { display: block; }
.sg-scrollcue__icon-image { display: block; transform: rotate(90deg); animation: sg-scrollcue-arrow 2.2s cubic-bezier(.22, 1, .36, 1) infinite; }
@keyframes sg-scrollcue-arrow {
  0%, 100% { transform: rotate(90deg) translateX(0); opacity: 1; }
  50% { transform: rotate(90deg) translateX(.64rem); opacity: .45; }
}
.sg-scrollcue__text { font-family: var(--f-en); font-weight: 600; letter-spacing: .075em; }
.sg-scrollcue.is-light { color: var(--cream); }

/* ---------- breadcrumb ---------- */
.sg-crumbs { position: relative; display: flex; justify-content: flex-end; }
.sg-crumbs__list { display: flex; }
.sg-crumbs__list-item { position: relative; white-space: nowrap; }
.sg-crumbs__list-item:not(:last-of-type) { color: var(--gray); }
.sg-crumbs__list-item:not(:last-of-type):after { content: "/"; position: absolute; right: 0; }
.sg-crumbs__list-item:last-of-type { color: var(--tea); }
.sg-crumbs__list-link { font-weight: 600; }

/* ---------- under page title ---------- */
.sg-pagehead__en { font-family: var(--f-en); font-weight: 600; letter-spacing: .05em; color: var(--tea); }
.sg-pagehead__jp { font-weight: 600; line-height: 2; }

/* ---------- footer ---------- */
.sg-foot { z-index: 600; position: relative; background: var(--ink); color: #fff; }

/* お問い合わせ：左に浮かせた白パネル → 全幅・中央寄せの帯に変更 */
.sg-foot__contact { position: relative; z-index: 100; width: 100%; background-color: var(--cream); color: var(--ink); text-align: center; }
.sg-foot__contact-head-en { font-family: var(--f-en); font-weight: 500; color: var(--tea); }
.sg-foot__contact-head-jp { font-weight: 600; letter-spacing: .18em; }
.sg-foot__contact-note { letter-spacing: .1em; font-weight: 500; }
.sg-foot__cta {
  display: inline-flex; align-items: center; justify-content: center; position: relative;
  background: var(--tea); color: #fff; border-radius: 999px;
  transition: background-color .35s ease-out, transform .35s cubic-bezier(.22, 1, .36, 1);
}
.sg-foot__cta:hover { background: var(--tea-deep); transform: translateY(-.3rem); }
.sg-foot__cta-text { font-weight: 600; letter-spacing: .12em; }
.sg-foot__cta-icon, .sg-foot__cta-arrow { display: block; flex-shrink: 0; }
.sg-foot__cta-icon > svg,
.sg-foot__cta-arrow > svg { display: block; width: 100%; height: 100%; }
.sg-foot__place { display: flex; align-items: center; justify-content: center; color: var(--mute); }
.sg-foot__place-icon { display: block; flex-shrink: 0; }
.sg-foot__place-icon > svg { display: block; width: 100%; height: 100%; }
.sg-foot__place-text { letter-spacing: .1em; font-weight: 500; }

.sg-foot__navlist-item { position: relative; }
.sg-foot__navlist-item-inner:hover .sg-foot__navlist-line:after { width: 100%; opacity: 1; }
.sg-foot__navlist-item-inner:hover .sg-foot__navlist-text,
.sg-foot__navlist-item-inner:hover .sg-foot__navlist-label-en { color: var(--tea); }
.sg-foot__navlist-line { position: relative; width: 100%; height: 1px; background-color: var(--dark-line); }
.sg-foot__navlist-line:after {
  content: ""; position: absolute; top: 0; left: 0; width: 0; height: 1px; opacity: 0;
  background-color: var(--tea); transition: width .3s ease-out, opacity .5s ease-out;
}
.sg-foot__navlist-sub-rule { height: 1px; background-color: var(--dark-line); border: none; }
.sg-foot__navlist-text { font-weight: 600; letter-spacing: .1em; color: #fff; }
.sg-foot__navlist-label-en { font-family: var(--f-en); font-weight: 500; letter-spacing: .05em; color: var(--mute); }
.sg-foot__navlist-icon > svg { width: 1.5rem; height: 1.5rem; }
.sg-foot__navlist-link { display: block; font-weight: 600; letter-spacing: .1em; color: #fff; }
.sg-foot__navlist-link:hover { color: var(--tea); }

/* 下段：ロゴ／タグライン／所在地は上段左のブランド枠に移し、
   最下段は著作表記とページトップだけの細い罫線バーにした */
.sg-foot__logo { color: #fff; }
.sg-foot__logo-inner { display: flex; align-items: center; }
.sg-foot__mark { display: block; flex-shrink: 0; }
.sg-foot__wordmark { font-weight: 700; letter-spacing: .08em; white-space: nowrap; }
.sg-foot__tagline { display: block; font-weight: 600; letter-spacing: .1em; }
.sg-foot__brand-place { font-weight: 500; letter-spacing: .1em; color: var(--mute); }
.sg-foot__bottom { position: relative; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--dark-line); }
.sg-foot__copyright { display: inline-block; color: var(--mute); font-family: var(--f-en); letter-spacing: .1em; }
.sg-foot__totop { display: flex; align-items: center; color: var(--mute); transition: color .3s ease-out; }
.sg-foot__totop:hover { color: #fff; }
.sg-foot__totop-text { font-family: var(--f-en); font-style: italic; }
.sg-foot__totop-icon { display: inline-block; transform: rotate(-90deg); flex-shrink: 0; }
.sg-foot__totop-icon > svg { display: block; width: 100%; height: 100%; }

/* ---------- drawer modal ---------- */
.sg-overlay { z-index: 1300; display: none; overflow: hidden; justify-content: center; align-items: center; position: fixed; inset: 0; }
.sg-overlay.is-open { display: flex; }
.sg-overlay__inner { position: relative; z-index: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.sg-overlay__close { position: absolute; z-index: 2; }
.sg-overlay__backdrop { position: absolute; inset: 0; z-index: 0; }
.sg-drawer { z-index: 1200; }
.sg-drawer__contents.sg-overlay__inner { width: 100%; height: 100%; }
.sg-drawer__backdrop {
  overflow: hidden;
  background-color: var(--tea-deep);
  background-image:
    radial-gradient(120% 90% at 22% 8%, rgba(126, 196, 106, .5) 0%, rgba(126, 196, 106, 0) 58%),
    radial-gradient(100% 80% at 88% 96%, rgba(12, 54, 26, .55) 0%, rgba(12, 54, 26, 0) 60%),
    repeating-linear-gradient(115deg, rgba(255, 255, 255, .035) 0 2px, rgba(0, 0, 0, .03) 2px 4px);
  transform: scaleY(0); transform-origin: top;
  transition: transform .9s cubic-bezier(.76, 0, .24, 1);
}
.sg-drawer.is-shown .sg-drawer__backdrop { transform: scaleY(1); }
.sg-drawer__logo, .sg-drawer__menu { position: relative; z-index: 2; }
.sg-drawer__logo { opacity: 0; transition: opacity 1s; color: var(--ink); }
.sg-drawer.is-shown .sg-drawer__logo { opacity: 1; transition: opacity 1.6s .45s; }
.sg-drawer__wordmark { display: block; text-align: center; font-weight: 700; letter-spacing: .14em; white-space: nowrap; }
.sg-drawer__est { display: block; text-align: center; font-family: var(--f-en); font-weight: 600; letter-spacing: .2em; }
.sg-drawer__nav-head { position: relative; }
[data-sg-burger-label] { opacity: 0; transform: translateY(2rem); transition: opacity .9s, transform .9s cubic-bezier(.22, 1, .36, 1); }
.sg-drawer.is-shown [data-sg-burger-label] { opacity: 1; transform: none; }
.sg-drawer__navlist-title { font-weight: 600; letter-spacing: .1em; white-space: nowrap; color: var(--ink); transition: color .3s ease-out; }
.sg-drawer__navlist-item-inner:hover .sg-drawer__navlist-title { color: #fff; }
.sg-drawer__navlist-item-inner:hover .sg-drawer__line { width: 100%; background-color: #fff; }
.sg-drawer__subnav { display: flex; }
.sg-drawer__subnav-item { position: relative; }
.sg-drawer__subnav-item:not(:first-of-type):after { content: "/"; position: absolute; top: 0; opacity: 0; transition: opacity 1s; }
.sg-drawer.is-shown .sg-drawer__subnav-item:not(:first-of-type):after { opacity: 1; transition: opacity 1s .5s; }
.sg-drawer__subnav-text { font-weight: 600; letter-spacing: .1em; transition: color .3s ease-out; }
.sg-drawer__subnav-item:hover .sg-drawer__subnav-text { color: #fff; }
.sg-drawer__subnav-item:hover .sg-drawer__subnav-rule { width: 100%; opacity: 1; }
.sg-drawer__nav-rule { height: 1px; background-color: #85b699; border: none; }
.sg-drawer__head-en { font-family: var(--f-en); font-weight: 500; letter-spacing: .05em; color: #fff; display: inline-block; }
.sg-drawer__address-text { display: block; font-weight: 600; letter-spacing: .1em; color: var(--ink); }
.sg-drawer__links-title { font-weight: 600; letter-spacing: .1em; color: var(--ink); transition: color .3s ease-out; }
.sg-drawer__links-item-inner:hover .sg-drawer__links-title { color: #fff; }
.sg-drawer__links-item-inner:hover .sg-drawer__line { width: 100%; background-color: #fff; }
.sg-drawer__links-icon > svg { display: block; width: 100%; height: 100%; }
.sg-drawer__close.sg-overlay__close { display: block; border-radius: 50%; border: 1px solid #9bc3ab; }
.sg-drawer__close:before, .sg-drawer__close:after { content: ""; position: absolute; height: 1px; background-color: #fff; }
.sg-drawer__close:before { transform: rotate(45deg); }
.sg-drawer__close:after { transform: rotate(315deg); }

/* ---------- mouse stalker ---------- */
.sg-cursor {
  z-index: 1500; position: fixed; top: 0; left: 0; color: var(--gray); border-radius: 50%;
  display: flex; justify-content: center; align-items: center;
  transform: translate(-50%, -50%); width: 2rem; height: 2rem;
  transition: color .8s, opacity .3s; pointer-events: none; opacity: 0;
}
.sg-cursor.is-active { opacity: 1; }
.sg-cursor__border {
  position: absolute; top: 50%; left: 50%; border: 1px solid; border-radius: 50%;
  transform: translate(-50%, -50%); width: 2rem; height: 2rem;
  transition: width .5s cubic-bezier(.22, 1, .36, 1), height .5s cubic-bezier(.22, 1, .36, 1), background-color .8s;
}
.sg-cursor.is-light { color: #fff; }
.sg-cursor.is-lg .sg-cursor__border { width: 8rem; height: 8rem; background-color: rgba(255, 255, 255, .12); }
.sg-cursor.is-magnet { color: var(--tea); }
.sg-cursor.is-magnet .sg-cursor__border { background-color: currentColor; }

/* ---------- reveal ---------- */
[data-sg-in] { opacity: 0; transform: translateY(4rem); transition: opacity 1.1s cubic-bezier(.22, 1, .36, 1), transform 1.1s cubic-bezier(.22, 1, .36, 1); }
[data-sg-in].is-inview { opacity: 1; transform: none; }
[data-sg-in-delay="1"] { transition-delay: .12s; }
[data-sg-in-delay="2"] { transition-delay: .24s; }
[data-sg-in-delay="3"] { transition-delay: .36s; }
[data-sg-line] { display: block; overflow: hidden; }
[data-sg-line] > span { display: inline-block; transform: translateY(105%); transition: transform 1s cubic-bezier(.22, 1, .36, 1); }
[data-sg-lines].is-inview [data-sg-line] > span { transform: none; }

/* =========================================================
   PC
   ========================================================= */
@media screen and (min-width: 768px) {
  html { font-size: 0.625vw; }
  body { font-size: 1.4rem; }
  .sg-sp-only { display: none !important; }

  .sg-topbar__logo { width: 10.5rem; margin: 5rem 0 0 8rem; }
  .sg-topbar__mark { width: 6rem; }
  .sg-topbar__wordmark { font-size: 2.1rem; margin-top: 1.4rem; }
  .sg-topbar__est { font-size: .8rem; margin-top: .8rem; }
  .sg-topbar__menu { margin: 8rem 8rem 0 0; }
  .sg-topbar__burger-label { font-size: 1.5rem; margin-right: 1.9rem; }
  .sg-topbar__burger-label-rule { top: calc(100% + .9rem); width: 2rem; }
  .sg-topbar__burger-bar { left: 3.8rem; }
  .sg-topbar__burger-bar-top { top: -1rem; width: 2rem; }
  .sg-topbar__burger-bar-mid { width: 3rem; }
  .sg-topbar__burger-bar-low { bottom: -1rem; width: 2rem; }
  .sg-topbar__menu:hover .sg-topbar__burger-bar-top,
  .sg-topbar__menu:hover .sg-topbar__burger-bar-low { width: 3rem; }
  .sg-topbar__burger-ring { width: 10rem; height: 10rem; }

  .sg-heading__en { font-size: 7rem; line-height: .97143; }
  .sg-heading__jp { font-size: 2rem; margin-top: 2.6rem; }

  .sg-btn__text { font-size: 2rem; }
  .sg-btn__text.is-sm { font-size: 1.6rem; }
  .sg-btn__line { top: calc(100% + .9rem); width: 2rem; }
  .sg-btn__icon { width: 6.4rem; height: 6.4rem; margin-left: 1.4rem; }
  .sg-btn__icon.is-sm { width: 4.8rem; height: 4.8rem; margin-left: 1.7rem; }
  .sg-btn__arrow { width: 1.6rem; height: 1.6rem; }
  .sg-btn__arrow.is-sm { width: 1.2rem; height: 1.2rem; }
  .sg-inlink { font-size: 1.6rem; line-height: 2.625; }
  .sg-inlink__line { top: calc(100% + .9rem); width: 2rem; }

  .sg-scrollcue { bottom: 8rem; right: 7.9rem; }
  .sg-scrollcue__icon { margin-right: 1.1rem; }
  .sg-scrollcue__icon-image { width: 2rem; height: 2rem; }
  .sg-scrollcue__text { font-size: 1.3rem; margin-bottom: -.2rem; }

  .sg-crumbs { padding-right: 7.8rem; margin-top: 4.8rem; }
  .sg-crumbs__list-item:not(:last-of-type) { padding-right: 1.8rem; margin-right: 1.2rem; }
  .sg-crumbs__list-item:not(:last-of-type):after { top: .9rem; }
  .sg-crumbs__list-link { letter-spacing: .15em; font-size: 1.2rem; line-height: 2.5; }

  .sg-pagehead { padding-left: 47.8rem; }
  .sg-pagehead__en { font-size: 2rem; }
  .sg-pagehead__jp { letter-spacing: .15em; font-size: 6rem; margin-top: .2rem; }

  /* footer */
  .sg-foot__contact { padding: 14rem 20rem 15rem; }
  .sg-foot__contact-head-en { letter-spacing: .06em; font-size: 5rem; line-height: 1.1; }
  .sg-foot__contact-head-jp { font-size: 1.6rem; margin-top: 1.6rem; }
  .sg-foot__contact-note { font-size: 1.6rem; line-height: 2.25; margin-top: 3.6rem; }
  .sg-foot__cta { width: 42rem; height: 7.6rem; margin-top: 5.2rem; }
  .sg-foot__cta-icon { width: 2.4rem; height: 1.7rem; margin-right: 1.8rem; }
  .sg-foot__cta-text { font-size: 1.6rem; }
  .sg-foot__cta-arrow { width: 1.4rem; height: 1.4rem; margin-left: 2.4rem; }
  .sg-foot__place { margin-top: 4rem; }
  .sg-foot__place-icon { width: 1.6rem; height: 1.6rem; margin-right: 1rem; }
  .sg-foot__place-text { font-size: 1.4rem; }
  .sg-foot__place-note { margin-left: .8rem; font-size: 1.3rem; }

  .sg-foot__inner { width: 100%; padding: 12rem 20rem 4rem; }
  .sg-foot__top { display: flex; justify-content: space-between; align-items: flex-start; padding-bottom: 10rem; }
  .sg-foot__brand { width: 48rem; flex-shrink: 0; }
  .sg-foot__menu { display: flex; }
  .sg-foot__navlist:not(:last-child) { margin-right: 5rem; }
  .sg-foot__navlist-item { width: 19rem; }
  .sg-foot__navlist-sub-rule { width: 20px; margin-right: auto; margin-bottom: 2.2rem; }
  .sg-foot__navlist-text { font-size: 1.5rem; line-height: 2; margin-top: 1.2rem; padding-bottom: 3.2rem; transition: color .3s ease-out; }
  .sg-foot__navlist-label-en { font-size: 1.4rem; margin-top: 2.2rem; transition: color .3s ease-out; }
  .sg-foot__navlist-link { font-size: 1.3rem; line-height: 2.30769; transition: color .3s ease-out; }
  .sg-foot__navlist-link:not(:first-child) { margin-top: .1rem; }

  .sg-foot__logo { width: 17.6rem; }
  .sg-foot__mark { width: 2.8rem; margin-right: 1rem; }
  .sg-foot__wordmark { font-size: 1.8rem; }
  .sg-foot__tagline { font-size: 1.3rem; line-height: 2; margin-top: 2.4rem; }
  .sg-foot__brand-place { font-size: 1.2rem; line-height: 2.1; margin-top: 1.6rem; }
  .sg-foot__bottom { padding-top: 3.2rem; }
  .sg-foot__copyright { font-weight: 500; font-size: 1rem; }
  .sg-foot__totop { padding: .8rem 0; }
  .sg-foot__totop-text { font-size: 1.2rem; letter-spacing: .08em; margin-right: 1.4rem; }
  .sg-foot__totop-icon { width: 2.8rem; height: 2.8rem; }

  /* drawer */
  .sg-drawer__inner { display: flex; justify-content: space-between; align-items: center; height: 100%; padding: 12.2rem 22.8rem 14.2rem 19rem; }
  .sg-drawer__logo { width: 40.6rem; }
  .sg-drawer__mark { width: 18rem; margin: 0 auto; display: block; }
  .sg-drawer__wordmark { font-size: 8.6rem; margin-top: 3.2rem; text-indent: .14em; }
  .sg-drawer__est { font-size: 1.6rem; margin-top: 2.4rem; }
  .sg-drawer__menu { width: 65.6rem; padding: 6.5rem 0 3.9rem; }
  .sg-drawer__navlist { height: 22rem; display: flex; justify-content: space-between; }
  .sg-drawer__navlist-inner { display: flex; justify-content: space-between; flex-direction: column; }
  .sg-drawer__navlist-inner:first-of-type { width: 41.6rem; flex-shrink: 0; }
  .sg-drawer__navlist-item { height: 8.1rem; }
  .sg-drawer__navlist-item-inner { display: inline-flex; flex-direction: column; align-items: flex-start; }
  .sg-drawer__navlist-title { display: inline-block; font-size: 4rem; margin-top: 1.8rem; }
  .sg-drawer__subnav { margin-top: 6.9rem; }
  .sg-drawer__subnav-item:not(:first-of-type) { margin-left: 4.2rem; }
  .sg-drawer__subnav-item:not(:first-of-type):after { left: -2.5rem; font-size: 1.8rem; }
  .sg-drawer__subnav-text { font-size: 1.8rem; }
  .sg-drawer__subnav-rule { position: absolute; bottom: -.8rem; left: 0; width: 0; height: 1px; background-color: #fff; opacity: 0; transition: opacity .3s ease-out, width .3s ease-out; }
  .sg-drawer__nav-rule { width: 64rem; margin-top: 8.1rem; }
  .sg-drawer__head-en { font-size: 1.4rem; }
  .sg-drawer__line { display: inline-block; width: 2rem; height: 1px; background-color: var(--ink); margin-top: .8rem; margin-left: .2rem; transform-origin: left; transition: background-color .3s ease-out, width .3s ease-out; }
  .sg-drawer__nav-foot { padding-top: 6.4rem; }
  .sg-drawer__links { display: flex; }
  .sg-drawer__links-item:first-of-type { width: 28.8rem; }
  .sg-drawer__links-item-inner { display: inline-flex; flex-direction: column; align-items: flex-start; }
  .sg-drawer__address-text { font-size: 2rem; line-height: 1.8; margin-top: 2rem; }
  .sg-drawer__links-title { position: relative; font-size: 2.4rem; line-height: 1.25; margin-top: 2.8rem; }
  .sg-drawer__links-icon { position: absolute; top: .6rem; right: -3.8rem; width: 2.6rem; height: 2.6rem; opacity: 0; transition: opacity .3s, transform .3s; }
  .sg-drawer__links-item-inner:hover .sg-drawer__links-icon { opacity: 1; transform: translate(.4rem, -.4rem); }
  .sg-drawer__close.sg-overlay__close { width: 10rem; height: 10rem; }
  .sg-drawer__close:before, .sg-drawer__close:after { top: 5rem; left: 3.4rem; width: 3rem; }
  .sg-overlay__close { top: 8rem; right: 8rem; }

  .sg-main.is-sub { padding-top: 35.8rem; padding-bottom: 25.6rem; }
}

/* 狭いPC幅では下限を10pxに固定して潰れを防ぐ */
@media screen and (min-width: 768px) and (max-width: 1142.85714px) {
  body, .sg-foot__navlist-label-en, .sg-drawer__head-en { font-size: 10px; }
}
@media screen and (min-width: 768px) and (max-width: 1230.76923px) {
  .sg-foot__place-note, .sg-foot__navlist-link, .sg-scrollcue__text { font-size: 10px; }
}
@media screen and (min-width: 768px) and (max-width: 1333.33333px) {
  .sg-crumbs__list-link, .sg-foot__brand-place, .sg-foot__totop-text, .sg-foot__tagline { font-size: 10px; }
}
@media screen and (min-width: 768px) and (max-width: 1600px) { .sg-foot__copyright { font-size: 10px; } }
/* 1920px を超えても拡大し続けないように据え置く（0.625vw@1920 と同値） */
@media screen and (min-width: 1920px) { html { font-size: 12px; } }

/* =========================================================
   SP（デザイン幅 414px = 1.6rem 16px）
   ========================================================= */
@media screen and (max-width: 767px) {
  html { font-size: 2.4154589vw; }
  body { font-size: 1.3rem; }
  .sg-pc-only { display: none !important; }

  .sg-topbar__logo { width: 6.2rem; margin: 2rem 0 0 3rem; }
  .sg-topbar__mark { width: 3.6rem; }
  .sg-topbar__wordmark { font-size: 1.3rem; margin-top: .8rem; }
  .sg-topbar__est { font-size: .6rem; margin-top: .4rem; }
  .sg-topbar__menu { margin: 3rem 3rem 0 0; }
  .sg-topbar__burger-label { font-size: 1.2rem; margin-right: 1rem; }
  .sg-topbar__burger-label-rule { top: calc(100% + .45rem); width: 1.5rem; }
  .sg-topbar__burger-bar { width: 1.8rem; left: 2.2rem; }
  .sg-topbar__burger-bar-top { top: -.55rem; width: 1.2rem; }
  .sg-topbar__burger-bar-mid { width: 1.8rem; }
  .sg-topbar__burger-bar-low { bottom: -.55rem; width: 1.2rem; }
  .sg-topbar__burger-ring { width: 6rem; height: 6rem; }

  .sg-heading__en { font-size: 4rem; line-height: .85; }
  .sg-heading__jp { font-size: 1.6rem; margin-top: 1.6rem; margin-left: .15rem; }

  .sg-btn__text { font-size: 1.4rem; }
  .sg-btn__text.is-sm { letter-spacing: .075em; }
  .sg-btn__line { top: calc(100% + .55rem); width: 1.5rem; }
  .sg-btn__icon { width: 4.85rem; height: 4.85rem; margin-left: 1rem; }
  .sg-btn__icon.is-sm { width: 3.65rem; height: 3.65rem; margin-left: .95rem; }
  .sg-btn__arrow { width: 1.2rem; height: 1.2rem; }
  .sg-btn__arrow.is-sm { width: .9rem; height: .9rem; }
  .sg-inlink { font-size: 1.4rem; }
  .sg-inlink__line { top: calc(100% + .55rem); width: 1.5rem; }

  .sg-scrollcue { bottom: 2.9rem; right: 2.85rem; }
  .sg-scrollcue.is-light { color: inherit; }
  .sg-scrollcue__icon { margin-right: 1rem; }
  .sg-scrollcue__icon-image { width: 1.5rem; height: 1.5rem; }
  .sg-scrollcue__text { font-size: .9rem; }

  .sg-crumbs { padding-right: 2.8rem; margin-top: 5.3rem; }
  .sg-crumbs__list-item { max-width: 19rem; overflow: hidden; text-overflow: ellipsis; }
  .sg-crumbs__list-item:not(:last-of-type) { padding-right: 1.3rem; margin-right: .9rem; }
  .sg-crumbs__list-item:not(:last-of-type):after { top: .1rem; }
  .sg-crumbs__list-link { letter-spacing: .075em; font-size: 1rem; line-height: 1.5; }

  .sg-pagehead { padding-left: 3.1rem; }
  .sg-pagehead__en { font-size: 1.4rem; }
  .sg-pagehead__jp { letter-spacing: .12em; font-size: 3.5rem; margin-top: .4rem; margin-left: -.2rem; }

  .sg-foot__contact { padding: 7rem 2.85rem 7.5rem; }
  .sg-foot__contact-head-en { letter-spacing: .04em; font-size: 3.6rem; line-height: 1.1; }
  .sg-foot__contact-head-jp { font-size: 1.4rem; margin-top: 1.2rem; }
  .sg-foot__contact-note { font-size: 1.4rem; line-height: 2; margin-top: 2.4rem; }
  .sg-foot__cta { width: 100%; max-width: 33rem; height: 6rem; margin-top: 3.6rem; }
  .sg-foot__cta-icon { width: 2.1rem; height: 1.45rem; margin-right: 1.4rem; }
  .sg-foot__cta-text { font-size: 1.4rem; }
  .sg-foot__cta-arrow { width: 1.2rem; height: 1.2rem; margin-left: 1.6rem; }
  .sg-foot__place { flex-direction: column; margin-top: 3rem; }
  .sg-foot__place-icon { width: 1.6rem; height: 1.6rem; margin-bottom: .8rem; }
  .sg-foot__place-text { font-size: 1.3rem; line-height: 1.8; }
  .sg-foot__place-note { display: block; font-size: 1.1rem; }

  .sg-foot__inner { width: 100%; height: auto; padding: 7rem 2.85rem 4rem; }
  .sg-foot__brand { padding-bottom: 5rem; }
  .sg-foot__navlist { width: 100%; }
  .sg-foot__navlist:last-child .sg-foot__navlist-item:last-of-type { border-bottom: 1px solid var(--dark-line); }
  .sg-foot__navlist-item { width: 100%; }
  .sg-foot__navlist-item.is-fold { height: 0; overflow: hidden; transition: height .5s cubic-bezier(.22, 1, .36, 1); }
  .sg-foot__navlist-item.is-fold .sg-foot__navlist-item-inner { opacity: 0; transition: opacity .4s; }
  .sg-foot__navlist-item.is-fold.is-open .sg-foot__navlist-item-inner { opacity: 1; }
  .sg-foot__navlist-sub-rule { width: 100%; margin-bottom: 2.3rem; }
  .sg-foot__navlist-text { font-size: 1.4rem; line-height: 2.14286; padding: 1.75rem 0 1.25rem; }
  .sg-foot__navlist-label-en { display: none; }
  .sg-foot__navlist-icon { position: absolute; top: 2.5rem; right: 0; transition: transform .4s; }
  .sg-foot__navlist-item.is-open .sg-foot__navlist-icon { transform: rotate(180deg); }
  .sg-foot__navlist-link { font-size: 1.3rem; line-height: 2.30769; color: var(--gray); }
  .sg-foot__navlist-link:last-child { padding-bottom: 1.9rem; }
  /* 直前のメニュー最終項目が罫線を持つので、ここでは引かない */
  .sg-foot__bottom { border-top: none; padding-top: 3rem; margin-top: 1rem; }
  .sg-foot__logo { width: 16rem; }
  .sg-foot__mark { width: 2.4rem; margin-right: .8rem; }
  .sg-foot__wordmark { font-size: 1.6rem; }
  .sg-foot__tagline { font-size: 1.2rem; line-height: 1.9; margin-top: 1.8rem; }
  .sg-foot__brand-place { font-size: 1.1rem; line-height: 2; margin-top: 1.4rem; }
  .sg-foot__copyright { font-weight: 500; font-size: 1rem; }
  .sg-foot__totop-text { font-size: 1.1rem; letter-spacing: .08em; margin-right: 1rem; }
  .sg-foot__totop-icon { width: 2.4rem; height: 2.4rem; }

  .sg-drawer__inner { padding: 17rem 3.1rem 8.3rem; }
  .sg-drawer__logo { position: absolute; top: 2rem; left: 3rem; width: 6.2rem; }
  .sg-drawer__mark { width: 3.6rem; margin: 0 auto; display: block; }
  .sg-drawer__wordmark { font-size: 1.3rem; margin-top: .8rem; }
  .sg-drawer__est { font-size: .6rem; margin-top: .4rem; }
  .sg-drawer__navlist-inner:first-of-type { margin-bottom: 2.6rem; }
  .sg-drawer__navlist-item:not(:first-of-type) { margin-top: 2.75rem; }
  .sg-drawer__navlist-item-inner { display: block; }
  .sg-drawer__navlist-title { font-size: 3rem; margin-top: .95rem; }
  .sg-drawer__subnav { margin-top: 5.8rem; }
  .sg-drawer__subnav-item:not(:first-of-type) { margin-left: 3.1rem; }
  .sg-drawer__subnav-item:not(:first-of-type):after { left: -1.9rem; font-size: 1.4rem; }
  .sg-drawer__subnav-text { font-size: 1.4rem; }
  .sg-drawer__subnav-rule { display: none; }
  .sg-drawer__nav-rule { width: 100%; margin-top: 5.4rem; }
  .sg-drawer__head-en { font-size: 1.2rem; }
  .sg-drawer__line { display: none; }
  .sg-drawer__nav-foot { padding-top: 4.7rem; }
  .sg-drawer__links-item:first-of-type { margin-bottom: 2.1rem; }
  .sg-drawer__links-item-inner { display: block; }
  .sg-drawer__address-text { font-size: 1.6rem; line-height: 1.7; margin-top: .7rem; }
  .sg-drawer__links-title { font-size: 2rem; line-height: 1.5; margin-top: .7rem; }
  .sg-drawer__links-icon { display: none; }
  .sg-drawer__close.sg-overlay__close { width: 6rem; height: 6rem; }
  .sg-drawer__close:before, .sg-drawer__close:after { top: 2.9rem; left: 2.2rem; width: 1.5rem; }
  .sg-overlay__close { top: 3rem; right: 3rem; }
  .sg-cursor { display: none; }

  .sg-main.is-sub { padding-top: 18.7rem; padding-bottom: 12.8rem; }
}
@media screen and (max-width: 767px) and (max-width: 414px) {
  .sg-crumbs__list-link, .sg-foot__copyright { font-size: 10px; }
}
@media screen and (max-width: 767px) and (max-width: 376.36364px) {
  .sg-foot__brand-place, .sg-foot__place-note, .sg-foot__totop-text { font-size: 10px; }
}
@media screen and (max-width: 767px) and (max-width: 345px) {
  .sg-foot__tagline, .sg-topbar__burger-label, .sg-drawer__head-en { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  [data-sg-in], [data-sg-line] > span { transition: none !important; opacity: 1 !important; transform: none !important; }
  .sg-scrollcue__icon-image { animation: none; }
}
