/* ==================================================================
   グリーンテラス トップページ
   色：クリーム／墨／モス／テラコッタ　見出し：明朝
   すべて .gt の中だけに効くように書いてあります。
   ================================================================== */
body.gt-front { margin: 0; background: #2b3824; }
.gt {
  --cream: #f4f1e8;
  --cream-2: #ebe6d8;
  --paper: #fbf9f3;
  --ink: #1c1b18;
  --ink-2: #45423b;
  --deep: #2b3824;
  --deep-hover: #3d4d33;
  --moss: #5d6b3a;
  --moss-deep: #3f4a27;
  --moss-pale: #dfe3d2;
  --moss-line: #b9c2a4;
  --terra: #8f4a2a;
  --rule: #d6ceb9;
  --mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --gothic: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --pad: clamp(20px, 4vw, 48px);
  --section: clamp(64px, 8vw, 104px);
  font-family: var(--gothic);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: var(--ink);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  text-size-adjust: 100%;
}
.gt *, .gt *::before, .gt *::after { box-sizing: border-box; }
.gt :where(h1, h2, h3, p, figure, ol, ul, dl, dd) { margin: 0; padding: 0; }
.gt :where(ol, ul) { list-style: none; }
.gt a { color: inherit; text-decoration: none; }
.gt a:hover { color: var(--terra); }
.gt img { display: block; max-width: 100%; height: auto; }
.gt a:focus-visible, .gt button:focus-visible { outline: 2px solid var(--terra); outline-offset: 3px; }
html:has(body.gt-front) { scroll-behavior: smooth; scroll-padding-top: 88px; }
/* 下層ページ：#目印 へ飛んだとき、上に貼りつくヘッダーに見出しが隠れないようにする（v1.12.4） */
html:has(.gt-sub) { scroll-padding-top: 88px; }
@media (prefers-reduced-motion: reduce) {
  html:has(body.gt-front) { scroll-behavior: auto; }
}

.gt-wrap { max-width: 1240px; margin: 0 auto; padding-left: var(--pad); padding-right: var(--pad); }
.gt-section { padding-top: var(--section); padding-bottom: var(--section); }
.gt-stack { display: flex; flex-direction: column; gap: clamp(28px, 4vw, 48px); }
.gt-stack--lg { gap: clamp(32px, 4vw, 56px); }

.gt-skip {
  position: absolute; left: 12px; top: -60px; z-index: 100;
  background: var(--deep); color: var(--cream) !important; padding: 10px 16px;
}
.gt-skip:focus { top: 12px; }

/* ---------- 共通の部品 ---------- */
.gt-kicker { font-size: 13px; letter-spacing: 0.24em; color: var(--moss); }
.gt-kicker--light { color: #e3dcc3; }
.gt-h2 { font-family: var(--mincho); font-weight: 500; font-size: clamp(26px, 3vw, 40px); line-height: 1.5; letter-spacing: 0.06em; }
.gt-h2--lg { font-size: clamp(27px, 3.4vw, 46px); }
.gt-h3 { font-family: var(--mincho); font-weight: 500; font-size: 21px; line-height: 1.5; }
.gt-lead { color: var(--ink-2); }
.gt-head { display: flex; flex-direction: column; gap: 14px; }
.gt-head--narrow { max-width: 820px; }
.gt-soudan .gt-head--narrow { max-width: 900px; }
.gt-nb { display: inline-block; } /* 句の途中で行が割れないようにする */
.gt-head--row { flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; }
.gt-textlink { min-height: 44px; display: inline-flex; align-items: center; align-self: flex-start; font-size: 14px; border-bottom: 1px solid var(--ink); }
.gt-head--row > .gt-textlink { align-self: flex-end; }
.gt-textlink--sm { font-size: 13px; margin-top: 4px; }

.gt-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.gt-btn {
  flex: 0 1 280px; min-height: 58px; padding: 0 28px;
  display: inline-flex; align-items: center; justify-content: center; text-align: center;
  background: var(--deep); color: var(--cream) !important; border: 1px solid var(--deep);
  letter-spacing: 0.14em; transition: background .2s ease, color .2s ease;
}
.gt-btn:hover { background: var(--deep-hover); }
.gt-btn--line { background: transparent; color: var(--ink) !important; }
.gt-btn--line:hover { background: var(--deep); color: var(--cream) !important; }
.gt-btn--light { background: var(--cream); color: var(--ink) !important; border-color: var(--cream); }
.gt-btn--light:hover { background: #fff; }

/* ---------- ヘッダー ---------- */
.gt-header { position: sticky; top: 0; z-index: 50; background: var(--cream); border-bottom: 1px solid var(--rule); }
.gt-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 8px 32px; padding-top: 12px; padding-bottom: 12px; }
.gt-logo { display: flex; flex-direction: column; justify-content: center; min-height: 48px; }
.gt-logo__name { font-family: var(--mincho); font-size: 22px; font-weight: 600; letter-spacing: 0.16em; line-height: 1.3; }
.gt-logo__sub { font-size: 12px; letter-spacing: 0.2em; line-height: 1.4; color: var(--ink-2); }
.gt-nav { display: flex; align-items: center; gap: 0 26px; font-size: 14px; }
.gt-nav a { min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; }
.gt-nav .gt-nav__cta { padding: 0 22px; background: var(--deep); color: var(--cream) !important; letter-spacing: 0.12em; }
.gt-nav .gt-nav__cta:hover { background: var(--deep-hover); }
.gt-menu-btn {
  display: none; width: 48px; height: 48px; padding: 0;
  border: 0; background: transparent; color: var(--ink); cursor: pointer;
  align-items: center; justify-content: center;
}

/* ---------- 最初の画面 ---------- */
.gt-hero { padding: clamp(48px, 6vw, 88px) 0; }
.gt-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.gt-hero__text { display: flex; flex-direction: column; gap: 26px; }
.gt-hero__title { font-family: var(--mincho); font-weight: 500; font-size: clamp(33px, 5.2vw, 72px); line-height: 1.4; letter-spacing: 0.06em; }
.gt-hero__sub { font-family: var(--mincho); font-size: clamp(18px, 1.8vw, 24px); line-height: 1.8; letter-spacing: 0.08em; }
.gt-hero__lead { color: var(--ink-2); }
.gt-hero .gt-btn { flex: 1 1 200px; }
.gt-hero__photo { background: var(--moss-pale); border: 1px solid var(--moss-line); aspect-ratio: 3 / 2; overflow: hidden; }
.gt-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.gt-hero__photo svg { display: block; width: 100%; height: 100%; }

/* ---------- 悩みの入口 ---------- */
.gt-worry { border-top: 1px solid var(--rule); }
.gt-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gt-card {
  min-height: 112px; padding: 22px 24px; background: var(--paper); border: 1px solid var(--rule);
  display: flex; flex-direction: column; justify-content: space-between; gap: 10px;
  transition: border-color .2s ease;
}
.gt-card:hover { border-color: var(--ink); }
.gt-card__name { font-family: var(--mincho); font-size: 20px; line-height: 1.5; }
.gt-card__to { font-size: 13px; color: var(--moss); }

/* ---------- 庭の相談室 ---------- */
.gt-soudan { background: var(--moss); color: var(--cream); }
.gt-soudan a:hover { color: inherit; }
.gt-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.gt-steps li { padding-top: 26px; border-top: 1px solid var(--cream); display: flex; flex-direction: column; gap: 10px; }
.gt-steps__no { font-family: var(--mincho); font-size: 40px; line-height: 1; color: #e3dcc3; }
.gt-steps p { font-size: 15px; }
.gt-note { padding: clamp(22px, 3vw, 34px); background: var(--moss-deep); font-size: 15px; }

/* ---------- 施工事例 ---------- */
.gt-cases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gt-case { display: flex; flex-direction: column; gap: 14px; }
.gt-case__photo { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--moss-pale); border: 1px solid var(--moss-line); }
.gt-case__photo img {
  width: 100%; height: 100%; object-fit: cover;
  filter: grayscale(1) sepia(.45) contrast(1.03); /* モノクロにして、セピアの色味をのせる。sepia の数字を上げると茶色が濃くなる */
  transition: transform .6s ease, filter .6s ease;
}
.gt-case:hover .gt-case__photo img, .gt-case:focus-visible .gt-case__photo img { transform: scale(1.03); filter: none; } /* 触れると、元の色に戻る */
@media (prefers-reduced-motion: reduce) {
  .gt-case__photo img { transition: none; }
}
.gt-case__meta { font-size: 13px; letter-spacing: 0.1em; color: var(--moss); }
.gt-case__title { font-family: var(--mincho); font-size: 21px; line-height: 1.6; }

/* ---------- 考え方 ---------- */
.gt-idea { background: var(--cream-2); }
.gt-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gt-facts > div { padding-top: 24px; border-top: 1px solid var(--ink); display: flex; flex-direction: column; gap: 8px; }
.gt-facts p { font-size: 15px; color: var(--ink-2); }

/* ---------- お客様の声 ---------- */
.gt-voices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.gt-voice {
  padding: 28px; background: var(--paper); border: 1px solid var(--rule);
  display: flex; flex-direction: column; gap: 14px; transition: border-color .2s ease;
}
.gt-voice:hover { border-color: var(--ink); }
.gt-voice__quote { font-family: var(--mincho); font-size: 18px; line-height: 1.9; }
.gt-voice__meta { font-size: 14px; color: var(--ink); }
.gt-voice__more { margin-top: auto; font-size: 13px; color: var(--moss); }

/* ---------- 相談と店舗 ---------- */
.gt-contact { background: var(--cream-2); border-top: 1px solid var(--rule); }
.gt-contact__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.gt-contact__main { display: flex; flex-direction: column; gap: 22px; }
.gt-contact__main .gt-btn { flex: 1 1 220px; min-height: 60px; }
.gt-info > div { padding: 16px 0; border-top: 1px solid var(--rule); display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 24px; }
.gt-info > div:first-child { border-top-color: var(--ink); }
.gt-info > div:last-child { border-bottom: 1px solid var(--rule); }
.gt-info dt { flex: 0 0 96px; font-size: 13px; letter-spacing: 0.1em; color: var(--moss); }
.gt-info dd { flex: 1 1 200px; }
.gt-info__tel { font-family: var(--mincho); font-size: 24px; line-height: 1.5; min-height: 44px; display: inline-flex; align-items: center; }

/* ---------- フッター ---------- */
.gt-footer { background: var(--deep); color: #e9e5d8; padding: 56px 0 40px; }
.gt-footer a:hover { color: #fff; }
.gt-footer__inner { display: flex; flex-direction: column; gap: 22px; }
.gt-footer__top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 28px 48px; padding-bottom: 10px; }
.gt-footer .gt-logo__sub { color: #c9c5b4; font-size: 13px; }
.gt-footer__nav { display: flex; flex-wrap: wrap; gap: 0 28px; font-size: 14px; }
.gt-footer__nav a { min-height: 44px; display: inline-flex; align-items: center; }
.gt-footer__note { font-size: 13px; color: #c9c5b4; }
.gt-footer__note a { border-bottom: 1px solid #6b705f; }
.gt-footer__sub { display: flex; flex-wrap: wrap; align-items: center; gap: 0 22px; padding-top: 18px; border-top: 1px solid #3b4233; font-size: 13px; color: #c9c5b4; }
.gt-footer__sub a { min-height: 44px; display: inline-flex; align-items: center; }
.gt-footer__label { flex: 0 0 100%; font-size: 12px; letter-spacing: 0.16em; color: #9fa08f; }
.gt-footer__sub + .gt-footer__note { border-top: 1px solid #3b4233; padding-top: 22px; }

/* ==================================================================
   画面の幅ごとの調整（通常の指定より後に置く）
   ================================================================== */
@media (max-width: 1000px) {
  .gt-cards, .gt-cases, .gt-voices, .gt-facts, .gt-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gt-cases > :last-child:nth-child(odd), .gt-voices > :last-child:nth-child(odd),
  .gt-facts > :last-child:nth-child(odd), .gt-steps > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 1100px) {
  .gt-menu-btn { display: inline-flex; }
  .gt-header__inner { flex-wrap: wrap; }
  .gt-nav {
    display: none; flex: 1 1 100%; flex-direction: column; align-items: stretch; gap: 0;
    padding: 4px 0 12px; font-size: 16px;
  }
  .gt-nav.is-open { display: flex; }
  .gt-nav a { min-height: 54px; border-top: 1px solid var(--rule); white-space: normal; }
  .gt-nav .gt-nav__cta { justify-content: center; margin-top: 12px; border-top: 0; min-height: 56px; }
}
@media (max-width: 900px) {
  .gt-hero__grid, .gt-contact__grid { grid-template-columns: minmax(0, 1fr); }
  html:has(body.gt-front) { scroll-padding-top: 76px; }
  html:has(.gt-sub) { scroll-padding-top: 76px; }
}
@media (max-width: 640px) {
  .gt-cards, .gt-cases, .gt-voices, .gt-facts, .gt-steps { grid-template-columns: minmax(0, 1fr); }
  .gt-btn { flex: 1 1 100%; }
  .gt-logo__name { font-size: 19px; }
  .gt-card { min-height: 96px; }
  .gt-h2 br { display: none; }
}

/* ==================================================================
   庭の相談室のページ
   ================================================================== */
.gt-head--wide { max-width: 900px; }
.gt-sd-intro { padding: clamp(48px, 6vw, 80px) 0 clamp(40px, 5vw, 64px); }
.gt-steps--ink li { border-top-color: var(--ink); }
.gt-steps--ink .gt-steps__no { color: var(--moss); }
.gt-steps--ink p { color: var(--ink-2); }
.gt-sd-body { background: var(--cream-2); border-top: 1px solid var(--rule); }
.gt-sd-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.gt-sd-aside { position: sticky; top: 104px; padding: 28px; background: var(--paper); border: 1px solid var(--rule); display: flex; flex-direction: column; gap: 16px; }
.gt-sd-notes { display: flex; flex-direction: column; gap: 12px; font-size: 15px; color: var(--ink-2); }
.gt-sd-notes li { padding-left: 18px; position: relative; }
.gt-sd-notes li::before { content: ""; position: absolute; left: 0; top: 0.85em; width: 8px; height: 1px; background: var(--moss); }
.gt-sd-tel { padding-top: 16px; border-top: 1px solid var(--rule); font-size: 15px; }
.gt-sd-tel span { font-size: 13px; color: var(--ink-2); }

/* ---------- フォーム（Contact Form 7） ---------- */
.gt-form { padding: clamp(24px, 4vw, 44px); background: var(--paper); border: 1px solid var(--rule); }
.gt-form :where(p) { margin: 0 0 20px; }
.gt-form .gt-f-group { padding: 0 0 12px; margin: 0 0 28px; border-bottom: 1px solid var(--rule); }
.gt-form .gt-f-legend { margin: 0 0 14px; font-family: var(--mincho); font-weight: 500; font-size: 21px; line-height: 1.5; letter-spacing: 0.06em; }
.gt-form .gt-f-hint { font-size: 14px; color: var(--ink-2); }
.gt-form label, .gt-form .gt-f-label { display: block; font-size: 15px; font-weight: 500; }
.gt-form .gt-f-label { margin-bottom: 4px; }
.gt-form label br { display: none; }
.gt-form .gt-f-req { display: inline-block; margin-left: 10px; padding: 0 8px; font-size: 12px; font-weight: 400; line-height: 1.7; color: var(--terra); border: 1px solid var(--terra); vertical-align: 1px; }
.gt-form .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.gt-form input[type="text"], .gt-form input[type="email"], .gt-form input[type="tel"],
.gt-form select, .gt-form textarea {
  display: block; width: 100%; min-height: 52px; padding: 10px 14px;
  font: inherit; font-weight: 400; letter-spacing: 0.02em; color: var(--ink);
  background: #fff; border: 1px solid #8d8778; border-radius: 0; appearance: none; -webkit-appearance: none;
}
.gt-form select {
  padding-right: 44px;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);
  background-position: calc(100% - 22px) 23px, calc(100% - 16px) 23px; background-size: 6px 6px; background-repeat: no-repeat;
}
.gt-form textarea { min-height: 132px; line-height: 1.8; resize: vertical; }
.gt-form input[type="file"] {
  display: block; width: 100%; padding: 14px; font: inherit; font-size: 14px; font-weight: 400; color: var(--ink-2);
  background: #fff; border: 1px dashed var(--moss); cursor: pointer;
}
.gt-form input[type="file"]::file-selector-button {
  margin-right: 14px; padding: 8px 16px; font: inherit; color: var(--cream);
  background: var(--moss); border: 0; cursor: pointer;
}
.gt-form input:focus-visible, .gt-form select:focus-visible, .gt-form textarea:focus-visible { outline: 2px solid var(--terra); outline-offset: 2px; }
.gt-form .wpcf7-radio, .gt-form .wpcf7-checkbox, .gt-form .wpcf7-acceptance { display: flex; flex-wrap: wrap; gap: 4px 24px; }
.gt-form .wpcf7-list-item { margin: 0; }
.gt-form .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 400; cursor: pointer; }
.gt-form .wpcf7-list-item input { width: 20px; height: 20px; margin: 0; accent-color: var(--moss); }
.gt-form .wpcf7-submit {
  display: block; width: 100%; min-height: 62px; padding: 0 28px; margin-top: 8px;
  font: inherit; letter-spacing: 0.14em; color: var(--cream); background: var(--deep);
  border: 1px solid var(--deep); border-radius: 0; cursor: pointer; transition: background .2s ease;
}
.gt-form .wpcf7-submit:hover { background: var(--deep-hover); }
.gt-form .wpcf7-submit:disabled { opacity: .55; cursor: progress; }
.gt-form .wpcf7-spinner { display: block; margin: 12px auto 0; }
.gt-form .wpcf7-not-valid-tip { margin-top: 6px; font-size: 14px; font-weight: 400; color: #a3271b; }
.gt-form .wpcf7 form .wpcf7-response-output { margin: 20px 0 0; padding: 14px 18px; font-size: 15px; border: 1px solid var(--ink); background: #fff; }
.gt-form .wpcf7 form.sent .wpcf7-response-output { border-color: var(--moss); }
.gt-form .wpcf7 form.invalid .wpcf7-response-output, .gt-form .wpcf7 form.failed .wpcf7-response-output { border-color: #a3271b; }

.gt-sd-more { padding-top: 16px; border-top: 1px solid var(--rule); font-size: 15px; color: var(--ink-2); }
.gt-worry__more { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; color: var(--ink-2); }

/* ==================================================================
   庭の健康診断のページ
   ================================================================== */
.gt-shindan__set { margin: 0; padding: 0; border: 0; min-width: 0; }
.gt-shindan__set legend { padding: 0; margin-bottom: 20px; }
.gt-shindan__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.gt-check {
  position: relative; display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 14px 18px;
  background: var(--paper); border: 1px solid var(--rule); cursor: pointer; transition: border-color .15s ease, background .15s ease;
}
.gt-check:hover { border-color: var(--ink); }
.gt-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gt-check__box { flex: 0 0 22px; width: 22px; height: 22px; border: 1px solid #8d8778; background: #fff; position: relative; }
.gt-check__text { font-size: 16px; line-height: 1.6; }
.gt-check:has(input:checked) { border-color: var(--moss); background: #eef0e4; }
.gt-check input:checked + .gt-check__box { background: var(--moss); border-color: var(--moss); }
.gt-check input:checked + .gt-check__box::after {
  content: ""; position: absolute; left: 7px; top: 2px; width: 6px; height: 12px;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.gt-check:has(input:focus-visible) { outline: 2px solid var(--terra); outline-offset: 2px; }
.gt-shindan .gt-btn { cursor: pointer; font: inherit; letter-spacing: 0.14em; border-radius: 0; }
.gt-shindan__go { flex: 0 1 320px; min-height: 62px; }
.gt-shindan__result {
  padding: clamp(28px, 5vw, 56px); background: var(--paper); border: 1px solid var(--ink);
  display: flex; flex-direction: column; gap: 22px; scroll-margin-top: 100px;
}
.gt-shindan__result[hidden] { display: none; }
.gt-shindan__result:focus { outline: none; }
.gt-shindan__text { max-width: 760px; font-size: 17px; }
.gt-shindan__second { padding: 20px 0 0; border-top: 1px solid var(--rule); max-width: 760px; display: flex; flex-direction: column; gap: 8px; }
.gt-shindan__second[hidden] { display: none; }
.gt-shindan__second-text { color: var(--ink-2); font-size: 15px; }
.gt-shindan__many { padding: 14px 18px; background: var(--cream-2); font-size: 15px; max-width: 760px; }
.gt-karte { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); }
.gt-karte > div { padding: 14px 12px 14px 0; display: flex; flex-direction: column; gap: 8px; }
.gt-karte dt { font-size: 13px; letter-spacing: 0.1em; color: var(--moss); }
.gt-karte dd { display: flex; align-items: center; gap: 6px; }
.gt-karte__dot { width: 12px; height: 12px; border-radius: 50%; border: 1px solid var(--moss); }
.gt-karte__dot.is-on { background: var(--terra); border-color: var(--terra); }
.gt-karte__num { margin-left: 4px; font-size: 12px; color: var(--ink-2); }
.gt-shindan__result .gt-btn { flex: 1 1 260px; min-height: 60px; }
.gt-shindan__note { font-size: 14px; color: var(--ink-2); max-width: 760px; }
.gt-shindan__again { background: none; border: 0; border-bottom: 1px solid var(--ink); padding: 0; font: inherit; font-size: 14px; color: var(--ink); cursor: pointer; }

/* ==================================================================
   JOURNAL（トップの区画・一覧・記事）
   ================================================================== */
.gt-section--line { border-top: 1px solid var(--rule); }
.gt-jcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 24px; }
.gt-jcard { display: flex; flex-direction: column; gap: 10px; }
.gt-jcard__photo { display: block; aspect-ratio: 1200 / 630; overflow: hidden; background: var(--moss-pale); border: 1px solid var(--moss-line); margin-bottom: 4px; }
.gt-jcard__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.gt-jcard:hover .gt-jcard__photo img { transform: scale(1.03); }
.gt-jcard__date { font-size: 13px; letter-spacing: 0.1em; color: var(--moss); }
.gt-jcard__title { font-family: var(--mincho); font-size: 21px; line-height: 1.6; }
.gt-jcard__lead { font-size: 14px; color: var(--ink-2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.gt-pager .nav-links { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; }
.gt-pager .page-numbers { min-width: 44px; min-height: 44px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--rule); background: var(--paper); }
.gt-pager .page-numbers.current { background: var(--deep); color: var(--cream); border-color: var(--deep); }
.gt-pager .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.gt-article__narrow { max-width: 820px; }
.gt-article__head { padding: clamp(48px, 6vw, 84px) 0 clamp(28px, 4vw, 44px); }
.gt-article__title { font-family: var(--mincho); font-weight: 500; font-size: clamp(28px, 4vw, 48px); line-height: 1.5; letter-spacing: 0.06em; }
.gt-article__date { font-size: 13px; letter-spacing: 0.12em; color: var(--ink-2); }
.gt-article__lead { padding-top: 18px; border-top: 1px solid var(--rule); font-size: 17px; line-height: 2; color: var(--ink-2); }
.gt-article__eye { max-width: 1040px; margin-bottom: clamp(32px, 5vw, 56px); }
.gt-article__eye img { width: 100%; height: auto; border: 1px solid var(--rule); }
.gt-article__foot { display: flex; flex-direction: column; gap: 28px; padding-top: clamp(40px, 6vw, 72px); padding-bottom: var(--section); }
.gt-article__cta { padding: clamp(24px, 4vw, 40px); background: var(--cream-2); display: flex; flex-direction: column; gap: 12px; }
.gt-article__cta .gt-actions { margin-top: 8px; }
.gt-article__cta .gt-btn { flex: 1 1 220px; }
.gt-article__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; border-top: 1px solid var(--rule); padding-top: 24px; }
.gt-article__nav a { display: flex; flex-direction: column; gap: 4px; font-family: var(--mincho); font-size: 17px; line-height: 1.6; min-height: 44px; }
.gt-article__nav a span { font-family: var(--gothic); font-size: 12px; letter-spacing: 0.14em; color: var(--moss); }
.gt-article__nav a:last-child:not(:first-child) { text-align: right; }

/* 記事の本文 */
.gt-prose { font-size: 17px; line-height: 2.1; }
.gt-prose > * + * { margin-top: 1.5em; }
.gt-prose :where(h2) { margin-top: 2.6em; padding-top: 1.1em; border-top: 1px solid var(--rule); font-family: var(--mincho); font-weight: 500; font-size: clamp(22px, 2.6vw, 28px); line-height: 1.6; letter-spacing: 0.06em; }
.gt-prose :where(h3) { margin-top: 2.2em; font-family: var(--mincho); font-weight: 500; font-size: 20px; line-height: 1.6; }
.gt-prose :where(ul, ol) { padding-left: 1.4em; }
.gt-prose :where(ul) { list-style: disc; }
.gt-prose :where(ol) { list-style: decimal; }
.gt-prose :where(li + li) { margin-top: .4em; }
.gt-prose :where(a) { border-bottom: 1px solid var(--moss); }
.gt-prose :where(blockquote) { margin-left: 0; margin-right: 0; padding: 4px 0 4px 22px; border-left: 2px solid var(--moss); color: var(--ink-2); }
.gt-prose :where(img) { height: auto; }
.gt-prose :where(figure) { margin-left: 0; margin-right: 0; }
.gt-prose :where(figcaption) { margin-top: 8px; font-size: 13px; color: var(--ink-2); }
.gt-prose :where(strong) { font-weight: 500; background: linear-gradient(transparent 62%, #e3e6d3 62%); }
.gt-prose :where(hr) { border: 0; border-top: 1px solid var(--rule); margin: 2.6em 0; }

@media (max-width: 1000px) {
  .gt-jcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .gt-jcards { grid-template-columns: minmax(0, 1fr); }
  .gt-article__nav { grid-template-columns: minmax(0, 1fr); }
  .gt-article__nav a:last-child:not(:first-child) { text-align: left; }
}
@media (max-width: 900px) {
  .gt-sd-grid { grid-template-columns: minmax(0, 1fr); }
  .gt-sd-aside { position: static; }
}
@media (max-width: 700px) {
  .gt-shindan__list { grid-template-columns: minmax(0, 1fr); }
  .gt-karte { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gt-karte > div { border-top: 1px solid var(--rule); }
}

/* ==================================================================
   下層ページ（今までの記事を、新しい枠で表示する）
   記事の中身は書き換えないので、ここでは「よくある書き方」に見た目を付けています。
   ================================================================== */
.gt-sub__narrow { max-width: 1000px; }
.gt-sub .gt-article__head { padding-bottom: clamp(24px, 3.5vw, 40px); }
.gt-sub .gt-kicker a { border-bottom: 1px solid var(--moss-line); }
.gt-sub__eye { max-width: 1080px; margin-bottom: clamp(32px, 5vw, 56px); }
.gt-sub__eye img { width: auto; max-width: 100%; max-height: 82vh; margin: 0 auto; border: 1px solid var(--rule); }

/* 本文 */
.gt-sub__body { font-size: 16px; line-height: 2; overflow-wrap: anywhere; }
.gt-sub__body::after { content: ""; display: block; clear: both; }
.gt-sub__body :where(h4, h5, h6) { margin-top: 2em; font-family: var(--mincho); font-weight: 500; font-size: 18px; line-height: 1.6; }
.gt-sub__body :where(strong, b) { font-weight: 500; background: none; }
.gt-sub__body a:has(> img) { border-bottom: 0; display: inline-block; }
.gt-sub__body :where(img).aligncenter, .gt-sub__body .aligncenter { margin-left: auto; margin-right: auto; }
.gt-sub__body .alignleft { float: left; margin: 6px 28px 16px 0; max-width: 50%; }
.gt-sub__body .alignright { float: right; margin: 6px 0 16px 28px; max-width: 50%; }
.gt-sub__body .wp-caption { max-width: 100%; }
.gt-sub__body .wp-caption-text { margin-top: 8px; font-size: 13px; color: var(--ink-2); }
.gt-sub__body :where(iframe, video, embed, object) { max-width: 100%; }
.gt-sub__body iframe[src*="youtube"], .gt-sub__body iframe[src*="youtu.be"], .gt-sub__body iframe[src*="vimeo"] { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; }
.gt-sub__body iframe[src*="google.com/maps"], .gt-sub__body iframe[src*="calendar.google.com"] { display: block; width: 100%; min-height: 420px; border: 1px solid var(--rule); background: #fff; }

/* 表 */
.gt-sub__body :where(table) { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.8; background: var(--paper); }
.gt-sub__body :where(th, td) { padding: 14px 16px; border: 1px solid var(--rule); text-align: left; vertical-align: top; }
.gt-sub__body :where(th) { font-weight: 500; background: var(--cream-2); }
.gt-sub__body :where(dt) { font-weight: 500; margin-top: 1.2em; }
.gt-sub__body :where(dd) { margin: 0; color: var(--ink-2); }

/* 写真の並び（WordPress のギャラリー） */
.gt-sub__body .gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.gt-sub__body .gallery-columns-1 { grid-template-columns: minmax(0, 1fr); }
.gt-sub__body .gallery-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gt-sub__body .gallery-columns-4, .gt-sub__body .gallery-columns-5, .gt-sub__body .gallery-columns-6,
.gt-sub__body .gallery-columns-7, .gt-sub__body .gallery-columns-8, .gt-sub__body .gallery-columns-9 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gt-sub__body .gallery .gallery-item { width: auto !important; float: none !important; margin: 0 !important; text-align: left; }
.gt-sub__body .gallery .gallery-icon a { display: block; border: 0; }
.gt-sub__body .gallery img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border: 0 !important; }
.gt-sub__body .gallery > br { display: none; }
.gt-sub__body .gallery .gallery-caption { margin-top: 6px; font-size: 13px; line-height: 1.6; color: var(--ink-2); }

/* 本文の中のボタン */
.gt-sub__body :where(a).q_button, .gt-sub__body .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 32px;
  background: var(--deep); color: var(--cream) !important; border: 1px solid var(--deep); border-radius: 0;
  letter-spacing: 0.12em; text-decoration: none;
}
.gt-sub__body :where(a).q_button:hover, .gt-sub__body .wp-block-button__link:hover { background: var(--deep-hover); }

/* フォームのあるページ */
.gt-sub__form :where(p) { margin: 0 0 20px; }
.gt-sub__form :where(table) { background: transparent; }

/* 記事の末尾 */
.gt-sub .gt-article__cta .gt-textlink { margin-top: 4px; }
.gt-sub__cats { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; padding-top: 22px; border-top: 1px solid var(--rule); font-size: 14px; }
.gt-sub__cats span { font-size: 12px; letter-spacing: 0.16em; color: var(--moss); }
.gt-sub__cats a { min-height: 44px; display: inline-flex; align-items: center; border-bottom: 0; text-decoration: underline; text-decoration-color: var(--moss-line); text-underline-offset: 6px; }
.gt-sub__pages { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; }
.gt-sub__pages > * { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--rule); background: var(--paper); }

/* 一覧（写真のない記事だけのとき）：日付と題の行 */
.gt-subrows { display: flex; flex-direction: column; border-top: 1px solid var(--rule); }
.gt-subrow { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 4px 24px; align-items: baseline; padding: 20px 4px; border-bottom: 1px solid var(--rule); }
.gt-subrow > :only-child { grid-column: 1 / -1; }
.gt-subrow__title { font-family: var(--mincho); font-size: 19px; line-height: 1.6; }

@media (max-width: 640px) {
  .gt-sub__body .gallery, .gt-sub__body .gallery[class*="gallery-columns-"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gt-sub__body .gallery-columns-1 { grid-template-columns: minmax(0, 1fr); }
  .gt-sub__body .alignleft, .gt-sub__body .alignright { float: none; margin: 0 0 16px; max-width: 100%; }
  .gt-sub__body :where(table) { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .gt-sub__body :where(th, td) { padding: 12px; }
  .gt-subrow { grid-template-columns: minmax(0, 1fr); padding: 16px 2px; }
}
.gt-sub__body .gallery :where(dl, dt, dd) { margin: 0; }
.gt-sub .gt-article__title { font-size: clamp(27px, 3.4vw, 42px); }
.gt-sub .gt-article__title--long { font-size: clamp(22px, 2.5vw, 30px); line-height: 1.6; }
.gt-sub__body .gallery { margin: 1.5em 0 0 !important; }

/* 記事の中のスライド（テーマ同梱のページビルダー）：枠の指定が写真の並びを崩さないようにする */
.gt-sub__body .slick-slider, .gt-sub__body .slick-list, .gt-sub__body .slick-track { margin-top: 0; }
.gt-sub__body .slick-slide img { margin-left: auto; margin-right: auto; }
.gt-sub__body .slick-slide a { border-bottom: 0; }
.gt-sub__body :where(ul).slick-dots { list-style: none; padding-left: 0; }
.gt-sub__body [class*="tcd-pb"] > * + * { margin-top: 0; }

/* ------------------------------------------------------------------
   記事の中の部品（TCD のページビルダー）を、枠の書体と色にそろえる
   行の白い背景は、gt-top.js が地の色になじませます（白以外の色は残ります）。
   ------------------------------------------------------------------ */
.gt-sub__body [class*="pb_font_family"] { font-family: inherit !important; }
.gt-sub__body :is(h1, h2, h3, h4, h5, h6)[class*="pb_"],
.gt-sub__body [class*="pb_catch"], .gt-sub__body [class*="pb_headline"] {
  font-family: var(--mincho) !important; font-weight: 500 !important; letter-spacing: 0.06em; line-height: 1.6 !important;
}
.gt-sub__body h2[class*="pb_headline"] { font-size: clamp(22px, 2.6vw, 28px) !important; }
.gt-sub__body h3[class*="pb_headline"] { font-size: clamp(19px, 2.2vw, 23px) !important; }
.gt-sub__body :is(h4, h5, h6)[class*="pb_headline"] { font-size: 18px !important; }
.gt-sub__body [class*="pb_headline"] { padding-bottom: 0 !important; }
.gt-sub__body [class*="tcd-pb"] :where(p) { line-height: 2; }

/* スライド：矢印は、テーマのアイコン用の書体に頼らず、線で描く */
.gt-sub__body .slick-arrow {
  width: 44px; height: 44px; padding: 0; border: 0; border-radius: 0; overflow: hidden; cursor: pointer;
  background: rgba(43, 56, 36, .55) !important; color: transparent !important; font-size: 0 !important; line-height: 0 !important;
  transition: background .2s ease;
}
.gt-sub__body .slick-arrow:hover { background: rgba(43, 56, 36, .85) !important; }
.gt-sub__body .slick-arrow::before {
  content: "" !important; position: absolute; left: 50%; top: 50%; width: 11px; height: 11px; margin: -6px 0 0 -9px;
  border-top: 1.5px solid #f4f1e8; border-right: 1.5px solid #f4f1e8; transform: rotate(45deg); opacity: 1 !important;
}
.gt-sub__body .slick-prev::before { transform: rotate(-135deg); margin-left: -3px; }
.gt-sub__body .slick-arrow::after { content: none !important; }
.gt-sub__body .slick-arrow.slick-disabled { opacity: .3; cursor: default; }
.gt-sub__body .pb_slider_nav { margin-top: 10px !important; }
.gt-sub__body .pb_slider_nav .slick-current { opacity: 1; }
.gt-sub__body .pb_slider_nav img { width: 100%; }

/* 色の付いた箱（余白のなかったもの）と、ボタンのつもりのリンク。gt-top.js が目印を付けます */
.gt-sub__body .gt-sub-box { padding: clamp(24px, 4vw, 44px) !important; }
.gt-sub__body .gt-sub-box > :first-child, .gt-sub__body .gt-sub-box :where(h2, h3, h4):first-child { margin-top: 0 !important; }
.gt-sub__body .gt-sub-box :where(h2, h3, h4) { padding-top: 0; border-top: 0; }
.gt-sub__body .gt-sub-box > * + * { margin-top: 12px; }
.gt-sub__body a.gt-sub-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 30px !important; margin-top: 14px;
  background: var(--deep) !important; color: var(--cream) !important; border: 1px solid var(--deep); border-radius: 0;
  letter-spacing: 0.12em; text-decoration: none; transition: background .2s ease;
}
.gt-sub__body a.gt-sub-btn:hover { background: var(--deep-hover) !important; }
.gt-sub__body [class*="tcd-pb"] :where(h2) { margin-top: 0; padding-top: 0; border-top: 0; }

/* 関連する記事（Jetpack）：題だけを、枠の書体で並べる */
.gt-sub__body #jp-relatedposts { margin: 3em 0 0; padding: 1.6em 0 0; border-top: 1px solid var(--rule); }
.gt-sub__body #jp-relatedposts .jp-relatedposts-headline { margin: 0 0 12px; font-family: var(--gothic); font-size: 12px; font-weight: 400; letter-spacing: 0.16em; color: var(--moss); }
.gt-sub__body #jp-relatedposts .jp-relatedposts-headline em::before { display: none; }
.gt-sub__body #jp-relatedposts .jp-relatedposts-headline em { font-style: normal; font-weight: 400; }
.gt-sub__body #jp-relatedposts .jp-relatedposts-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 24px; }
.gt-sub__body #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { width: auto; float: none; padding: 0; margin: 0; opacity: 1; }
.gt-sub__body #jp-relatedposts .jp-relatedposts-post-title, .gt-sub__body #jp-relatedposts .jp-relatedposts-post-title a {
  font-family: var(--mincho); font-size: 17px !important; font-weight: 500; line-height: 1.6; letter-spacing: 0.04em; border-bottom: 0;
}
.gt-sub__body #jp-relatedposts .jp-relatedposts-post-date, .gt-sub__body #jp-relatedposts .jp-relatedposts-post-context { display: none !important; }
@media (max-width: 640px) {
  .gt-sub__body #jp-relatedposts .jp-relatedposts-items { grid-template-columns: minmax(0, 1fr); }
}

/* ==================================================================
   VOGUE（tcd051）の記事の部品に合わせた指定
   本番の本文のHTMLを確かめたうえで書いています（v1.6.4）。
   ================================================================== */
/* キャッチフレーズ（各ページの最初の一行） */
.gt-sub__body .pb_catchcopy { font-size: clamp(20px, 2.3vw, 25px) !important; color: var(--ink) !important; }
.gt-sub__body .tcd-pb-widget:last-child { margin-bottom: 0 !important; }
.gt-sub__body .tcd-pb-row { margin-bottom: clamp(28px, 4vw, 44px) !important; }
.gt-sub__body .tcd-pb-row:last-child { margin-bottom: 0 !important; }

/* スライドの矢印：ページビルダーが付ける半透明をやめ、枠の色で出す */
.gt-sub__body .pb_slider .slick-arrow { opacity: 1 !important; }
.gt-sub__body .pb_slider_nav_item { cursor: pointer; }

/* 写真の上に、題・説明・ボタンをのせた帯（各ページの末尾の「Parking」「Plants」など） */
.gt-sub__body .p-main-image { position: relative; display: flex; min-height: clamp(300px, 38vw, 430px); overflow: hidden; background: var(--moss-deep); }
.gt-sub__body .p-main-image__img { position: absolute; inset: 0; background-size: cover; background-position: center; }
.gt-sub__body .p-main-image__content {
  position: relative; z-index: 1; width: 50%; padding: clamp(28px, 4vw, 52px);
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 14px;
}
.gt-sub__body .p-main-image--rev .p-main-image__content { margin-left: auto; }
.gt-sub__body .p-main-image__title {
  margin: 0 !important; padding: 0 !important; border: 0 !important;
  font-family: var(--mincho) !important; font-weight: 500; font-size: clamp(26px, 3.2vw, 38px) !important; line-height: 1.4; letter-spacing: 0.1em;
}
.gt-sub__body .p-main-image__desc { margin: 0 !important; font-size: 15px !important; line-height: 1.9; }
.gt-sub__body .p-main-image__btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 30px; margin-top: 8px;
  background: var(--cream) !important; color: var(--ink) !important; border: 0; letter-spacing: 0.12em; transition: background .2s ease;
}
.gt-sub__body .p-main-image__btn:hover { background: #fff !important; }
@media (max-width: 760px) {
  .gt-sub__body .p-main-image__content { width: 100%; }
}

/* 記事の中の赤い文字（#ff0000）は、枠のテラコッタに置き換える */
.gt-sub__body [style*="#ff0000"], .gt-sub__body font[color="red"] { color: var(--terra) !important; }
.gt-sub__body :where(h5, h6) { font-family: var(--gothic); font-size: 16px; font-weight: 500; }
.gt-sub__body :where(h5) + :where(h5) { margin-top: .4em; }

/* メールでお問い合わせ のフォーム（表で組まれている）：項目名を上、入力欄を下に並べ直す */
.gt-sub__form table.inquiry, .gt-sub__form table.inquiry :is(tbody, tr, th, td) { display: block; width: 100%; }
.gt-sub__form table.inquiry { margin-top: 28px; border: 0; background: transparent; font-size: 15px; overflow: visible; }
.gt-sub__form table.inquiry tr { padding: 0 0 24px; }
.gt-sub__form table.inquiry :is(th, td) { padding: 0; border: 0; background: transparent; }
.gt-sub__form table.inquiry th { margin-bottom: 4px; font-weight: 500; }
.gt-sub__form table.inquiry :is(th, td) p { margin: 0; }
.gt-sub__form table.inquiry td p + p { margin-top: 10px; }
.gt-sub__form .haveto { font-size: 0; }
.gt-sub__form .haveto font, .gt-sub__form .any {
  display: inline-block; margin-right: 10px; font-size: 12px; font-weight: 400; line-height: 1.7; border: 1px solid; vertical-align: 1px;
}
.gt-sub__form .haveto font { padding: 0 8px; }
.gt-sub__form .any { padding: 0 0 0 8px; color: var(--ink-2); }
.gt-sub__form .wpcf7-form-control-wrap[data-name^="acceptance"] { display: inline-block; margin: 0 6px 0 0; vertical-align: middle; }
.gt-sub__form .wpcf7-acceptance { display: inline-flex; }
.gt-sub__form .wpcf7-submit { margin-top: 20px; }
.gt-sub__form .google-cal iframe { max-width: 100% !important; }
.gt-sub__form :where(h3) { margin-bottom: 14px; }

/* ------------------------------------------------------------------
   ブロックエディターで書かれたページ（会社概要など）に合わせた指定（v1.6.6）
   ------------------------------------------------------------------ */
/* 中身のない見出し・段落・箱は、空きをつくらないよう出さない */
.gt-sub__body :is(h1, h2, h3, h4, h5, h6, p, div, article, figure):empty { display: none; }

/* 入れ子の箱（article など）の中でも、段落のあいだをあける */
.gt-sub__body :where(article, section) > * + * { margin-top: 1.3em; }
.gt-sub__body :where(article, section) > :where(h2) { margin-top: 2.6em; }
.gt-sub__body :where(article, section) > :where(h3, h4) { margin-top: 2.2em; }
.gt-sub__body > :where(article, section):has(> :where(h2, h3, h4):only-child) + * { margin-top: 1em; }

/* 記事の中で個別に付けた文字の大きさ・太さは、枠の指定にそろえる */
.gt-sub__body :where(h2, h3, h4, h5) span[style*="font-size"] { font-size: inherit !important; font-weight: inherit !important; }
.gt-sub__body :where(p, li, td, th) span[style*="font-size"] { font-size: inherit !important; }

/* 表のブロック：左寄せの指定があっても、幅いっぱいに出す */
.gt-sub__body figure.wp-block-table { float: none !important; max-width: 100% !important; width: 100%; margin-left: 0; margin-right: 0; overflow-x: auto; }
.gt-sub__body .wp-block-table table.has-fixed-layout { table-layout: fixed; }
.gt-sub__body .wp-block-table table.has-fixed-layout th { width: 30%; }
.gt-sub__body .wp-block-table td p + p { margin-top: .3em; }

/* 横の線だけの表（会社概要） */
.gt-sub__body .table_border_horizontal table { background: transparent; font-size: 16px; border-top: 1px solid var(--ink); }
.gt-sub__body .table_border_horizontal :is(th, td) { padding: 18px 12px; border: 0; border-bottom: 1px solid var(--rule); background: transparent; }
.gt-sub__body .table_border_horizontal th { font-weight: 500; color: var(--moss-deep); letter-spacing: 0.08em; }
@media (max-width: 640px) {
  .gt-sub__body .wp-block-table table { display: table; }
  .gt-sub__body .table_border_horizontal table, .gt-sub__body .table_border_horizontal :is(tbody, tr, th, td) { display: block; width: 100% !important; }
  .gt-sub__body .table_border_horizontal th { padding: 14px 4px 0; border-bottom: 0; font-size: 13px; }
  .gt-sub__body .table_border_horizontal td { padding: 4px 4px 14px; }
}

/* ------------------------------------------------------------------
   施工例のページ：Instagram の写真の並び（Smash Balloon Instagram Feed）を、枠にそろえる（v1.7.1）
   ------------------------------------------------------------------ */
.gt-sub__body #sb_instagram a { border-bottom: 0; }
.gt-sub__body #sb_instagram .sb_instagram_header { margin-bottom: 18px; }
.gt-sub__body #sb_instagram .sb_instagram_header h3 { margin: 0; padding: 0; border: 0; font-family: var(--gothic); font-size: 15px; font-weight: 500; letter-spacing: 0.08em; }
.gt-sub__body #sb_instagram #sbi_load { margin-top: 26px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; float: none; }
.gt-sub__body #sb_instagram #sbi_load .sbi_follow_btn { margin: 0; }
.gt-sub__body #sb_instagram #sbi_load .sbi_load_btn,
.gt-sub__body #sb_instagram #sbi_load .sbi_follow_btn a {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 0 28px; margin: 0;
  font-family: var(--gothic); font-size: 14px; letter-spacing: 0.12em; line-height: 1.4;
  border-radius: 0 !important; box-shadow: none !important; transition: background .2s ease, color .2s ease;
}
.gt-sub__body #sb_instagram #sbi_load .sbi_load_btn { background: transparent !important; color: var(--ink) !important; border: 1px solid var(--deep) !important; }
.gt-sub__body #sb_instagram #sbi_load .sbi_load_btn:hover { background: var(--deep) !important; color: var(--cream) !important; }
.gt-sub__body #sb_instagram #sbi_load .sbi_follow_btn a { background: var(--deep) !important; color: var(--cream) !important; border: 1px solid var(--deep) !important; }
.gt-sub__body #sb_instagram #sbi_load .sbi_follow_btn a:hover { background: var(--deep-hover) !important; }
.gt-sub__body #sb_instagram { margin-top: 1.8em !important; }
@media (max-width: 480px) {
  /* スマホでは、一列ではなく二列で並べる（一列だと、写真20枚でページがとても長くなるため） */
  .gt-sub__body #sb_instagram.sbi_mob_col_1 #sbi_images { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .gt-sub__body #sb_instagram.sbi_mob_col_1 #sbi_images .sbi_item { width: auto !important; }
}

/* ------------------------------------------------------------------
   写真を左（右）に寄せて、横に文を流す書き方（自慢の職人さん など）（v1.7.2）
   写真がリンクで包まれているときは、リンクごと寄せる。見出しは、前の写真の横に回り込ませない。
   ------------------------------------------------------------------ */
.gt-sub__body :where(h2, h3, h4) { clear: both; }
.gt-sub__body a:has(> img.alignleft) { display: block; float: left; margin: 6px 28px 16px 0; max-width: 50%; }
.gt-sub__body a:has(> img.alignright) { display: block; float: right; margin: 6px 0 16px 28px; max-width: 50%; }
.gt-sub__body a:has(> img.alignleft) > img, .gt-sub__body a:has(> img.alignright) > img { float: none; margin: 0; max-width: 100%; }
.gt-sub__body :where(p):has(> a > img.alignleft, > a > img.alignright, > img.alignleft, > img.alignright, > span > a > img.alignleft)::after { content: ""; display: block; clear: both; }
.gt-sub__body span:has(> a > img.alignleft) > a { display: block; float: left; margin: 6px 28px 16px 0; max-width: 50%; }
.gt-sub__body span:has(> a > img.alignleft) > a > img { float: none; margin: 0; max-width: 100%; }
@media (max-width: 640px) {
  .gt-sub__body a:has(> img.alignleft), .gt-sub__body a:has(> img.alignright), .gt-sub__body span:has(> a > img.alignleft) > a { float: none; margin: 0 0 14px; max-width: 100%; }
}

/* ------------------------------------------------------------------
   トップページ：お知らせ（最初の画面のすぐ下の、細い欄）
   ------------------------------------------------------------------ */
.gt-news { background: var(--paper); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.gt-news__inner { display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; gap: 8px 32px; align-items: start; padding-top: 22px; padding-bottom: 22px; }
.gt-news__label { display: flex; flex-direction: column; gap: 2px; padding-top: 6px; font-family: var(--mincho); font-size: 17px; letter-spacing: 0.1em; line-height: 1.5; }
.gt-news__label span { font-family: var(--gothic); font-size: 11px; letter-spacing: 0.24em; color: var(--moss); }
.gt-news__list { display: flex; flex-direction: column; }
.gt-news__list li + li { border-top: 1px solid var(--rule); }
.gt-news__list a { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 2px 20px; align-items: baseline; min-height: 44px; padding: 9px 0; font-size: 15px; line-height: 1.7; }
.gt-news__list time { font-size: 13px; letter-spacing: 0.08em; color: var(--moss); }
.gt-news__list a:hover span { text-decoration: underline; text-decoration-color: var(--moss-line); text-underline-offset: 5px; }
.gt-news__more { min-height: 44px; display: inline-flex; align-items: center; font-size: 13px; letter-spacing: 0.1em; white-space: nowrap; border-bottom: 0; text-decoration: underline; text-decoration-color: var(--moss-line); text-underline-offset: 6px; }
@media (max-width: 760px) {
  .gt-news__inner { grid-template-columns: minmax(0, 1fr) auto; padding-top: 18px; padding-bottom: 14px; }
  .gt-news__label { flex-direction: row; align-items: baseline; gap: 12px; padding-top: 0; }
  .gt-news__more { grid-column: 2; grid-row: 1; min-height: 32px; }
  .gt-news__list { grid-column: 1 / -1; }
  .gt-news__list a { grid-template-columns: minmax(0, 1fr); padding: 10px 0; }
}

/* ------------------------------------------------------------------
   庭の健康診断（v1.9.0）：入口の二択、新築向けの設問、結果のかたまり
   ------------------------------------------------------------------ */
.gt-shindan__form { display: flex; flex-direction: column; gap: clamp(28px, 4vw, 44px); }
.gt-shindan__set[hidden], .gt-shindan__actions[hidden], .gt-shindan__blocks[hidden], .gt-shindan__text[hidden], .gt-shindan__many[hidden], .gt-karte[hidden] { display: none; }
.gt-check--radio .gt-check__box { border-radius: 50%; }
.gt-check--radio input:checked + .gt-check__box::after { left: 5px; top: 5px; width: 10px; height: 10px; border: 0; border-radius: 50%; background: #fff; transform: none; }
.gt-check.is-off { opacity: .45; cursor: default; }
.gt-check.is-off:hover { border-color: var(--rule); }
.gt-shindan__count { min-height: 1.7em; margin-top: 14px; font-size: 14px; color: var(--moss-deep); }
.gt-shindan__blocks { display: flex; flex-direction: column; max-width: 760px; }
.gt-shindan__block { display: flex; flex-direction: column; gap: 10px; padding: 22px 0; border-top: 1px solid var(--rule); }
.gt-shindan__block:first-child { border-top-color: var(--ink); }
.gt-shindan__block:last-child { padding-bottom: 0; }
.gt-shindan__block p { font-size: 17px; }
.gt-shindan__block.is-second p { font-size: 15px; color: var(--ink-2); }
.gt-shindan__block .gt-textlink { margin-top: 2px; }
@media (max-width: 1000px) { .gt-karte { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gt-karte > div:nth-child(n+4) { border-top: 1px solid var(--rule); } }
@media (max-width: 640px) { .gt-karte { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gt-shindan__block p { font-size: 16px; } }
.gt-shindan__result .gt-shindan__consult { flex: 0 1 360px; }

/* ------------------------------------------------------------------
   概算の目安（v1.10.0）
   パソコンでは、左に設問、右に結果（画面に付いてくる）。スマホでは、下に細い帯で金額を出す。
   ------------------------------------------------------------------ */
.gt-gaisan__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: clamp(28px, 4vw, 56px); align-items: start; }
.gt-gaisan__form { display: flex; flex-direction: column; gap: clamp(28px, 4vw, 40px); min-width: 0; }
.gt-gaisan__group { display: flex; flex-direction: column; gap: 22px; padding-top: 18px; border-top: 1px solid var(--ink); }
.gt-gaisan__gname { font-size: 12px; letter-spacing: 0.2em; color: var(--moss); }
.gt-gaisan__item { margin: 0; padding: 0; border: 0; min-width: 0; }
.gt-gaisan__item legend { padding: 0; margin-bottom: 12px; font-family: var(--mincho); font-size: 18px; line-height: 1.6; letter-spacing: 0.04em; }
.gt-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gt-chip { position: relative; cursor: pointer; }
.gt-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gt-chip span { display: inline-flex; align-items: center; min-height: 48px; padding: 0 18px; background: var(--paper); border: 1px solid var(--rule); font-size: 15px; transition: border-color .15s ease, background .15s ease, color .15s ease; }
.gt-chip:hover span { border-color: var(--deep); }
.gt-chip input:checked + span { background: var(--deep); border-color: var(--deep); color: var(--cream); }
.gt-chip input:focus-visible + span { outline: 2px solid var(--terra); outline-offset: 2px; }

.gt-gaisan__result { position: sticky; top: 96px; padding: clamp(24px, 3vw, 36px); background: var(--paper); border: 1px solid var(--ink); display: flex; flex-direction: column; gap: 18px; scroll-margin-top: 96px; }
.gt-gaisan__empty { font-family: var(--mincho); font-size: 18px; line-height: 1.7; color: var(--ink-2); }
.gt-gaisan__empty[hidden], .gt-gaisan__filled[hidden], .gt-gaisan__bar[hidden] { display: none; }
.gt-gaisan__filled { display: flex; flex-direction: column; gap: 18px; }
.gt-gaisan__range { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 15px; }
.gt-gaisan__range strong { font-family: var(--mincho); font-weight: 500; font-size: clamp(34px, 3.4vw, 44px); line-height: 1.2; letter-spacing: 0.02em; }
.gt-gaisan__range small { font-size: 12px; color: var(--ink-2); }
.gt-gaisan__lines { display: flex; flex-direction: column; border-top: 1px solid var(--rule); }
/* 選んだ内容の一覧（左に項目、右に選んだ量。金額は出さない） */
.gt-gaisan__lhead { margin-bottom: -8px; font-size: 12px; letter-spacing: 0.2em; color: var(--moss); }
.gt-gaisan__lines li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 16px; padding: 10px 0; border-bottom: 1px solid var(--rule); font-size: 14px; line-height: 1.6; }
.gt-gaisan__lines li span:nth-child(2) { margin-left: auto; font-size: 13px; color: var(--ink-2); text-align: right; }
.gt-gaisan__sub, .gt-gaisan__note { font-size: 13px; line-height: 1.8; color: var(--ink-2); }
.gt-gaisan__result .gt-btn { flex: 1 1 100%; min-height: 58px; }
.gt-gaisan__bar { display: none; }
@media (max-width: 1000px) {
  .gt-gaisan__grid { grid-template-columns: minmax(0, 1fr); }
  .gt-gaisan__result { position: static; }
  .gt-gaisan__bar {
    position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; gap: 10px; margin: 0 calc(var(--pad) * -1); padding: 12px var(--pad);
    background: var(--deep); color: var(--cream); font-size: 13px;
  }
  .gt-gaisan__bar strong { font-family: var(--mincho); font-weight: 500; font-size: 18px; letter-spacing: 0.04em; margin-right: auto; }
  .gt-gaisan__bar a { color: var(--cream); text-decoration: underline; text-underline-offset: 5px; white-space: nowrap; }
}
.gt-gaisan__range strong { font-size: clamp(30px, 3vw, 38px); }
.gt-contact__links { display: flex; flex-wrap: wrap; gap: 4px 28px; }
.gt-worry__more + .gt-worry__more { margin-top: -8px; }

/* ------------------------------------------------------------------
   ロゴ（v1.12.0）：記号と、屋号の文字を横に並べる
   ------------------------------------------------------------------ */
.gt-logo { flex-direction: row; align-items: center; justify-content: flex-start; gap: 12px; }
.gt-logo__text { display: flex; flex-direction: column; justify-content: center; }
.gt-logo__mark { flex: none; width: 40px; height: 40px; color: var(--deep); --mark-accent: var(--terra); }
.gt-footer .gt-logo__mark { color: var(--cream); --mark-accent: #d09a6e; }
@media (max-width: 760px) { .gt-logo { gap: 10px; } .gt-logo__mark { width: 34px; height: 34px; } }

/* 日付を出す記事（お知らせ・お客様の声・ブログ）では、Jetpack の「関連する記事」を出さない。
   同じ題の古い知らせが日付なしで並ぶため。前後の記事（日付つき）で進める */
.gt-sub--dated #jp-relatedposts { display: none !important; }

/* ---------- 1.12.6：スマホのヘッダーと、最初の画面の並び ---------- */

/* 幅 375px 以下で、メニューのボタンがロゴの下の段に落ちていた（ロゴ 261px ＋ 間 32px ＋ ボタン 48px が入りきらない）。
   間を詰め、ロゴの文字を画面の幅に合わせて少し小さくする。ボタンは縮めない。幅 320px まで一段に収まる。 */
.gt-logo { min-width: 0; }
.gt-menu-btn { flex: none; }
@media (max-width: 480px) {
  .gt-header__inner { column-gap: 12px; }
  .gt-logo__name { font-size: clamp(15px, 4.8vw, 19px); }
  .gt-logo__sub { letter-spacing: 0.16em; }
}

/* 一段組みになる幅（900px 以下）では、写真を先に、言葉をその下に置く。
   「景色のある、暮らし。」と景色が、最初の画面に一緒に入るように。パソコン（左右に並ぶ幅）は今までどおり。
   並びを戻すときは、下の order の行を消す。 */
@media (max-width: 900px) {
  .gt-hero { padding-top: clamp(16px, 4vw, 32px); }
  .gt-hero__grid { gap: 28px; }
  .gt-hero__photo { order: -1; }
}

/* ---------- 1.12.7：幅の狭いスマホ（320〜360px）の総点検で見つけた、横へのはみ出し ---------- */

/* 切れ目のない長い文字（URLや英数字の並び）が、題・カードの題・前後の記事の題に入ると、画面の外へはみ出していた。
   本文（.gt-sub__body）は前から折り返していたが、題のほうには効いていなかった。 */
.gt { overflow-wrap: break-word; }
.gt :where(h1, h2, h3, h4, .gt-jcard__title, .gt-article__nav a) { overflow-wrap: anywhere; }

/* 昔の記事で、箱に幅を直接書いてあるもの（style="width:700px" など）が、画面より広いままだった */
.gt-sub__body [style*="width"] { max-width: 100%; box-sizing: border-box; }

/* 整形済みの文字（pre）は折り返さないので、長い一行がそのまま画面の外へ出ていた */
.gt-sub__body pre { max-width: 100%; white-space: pre-wrap; overflow-x: auto; }

/* 表：スマホでは、昔の記事の「幅の指定」（width="200" など）が一つの列に残り、ほかの列が一文字ずつに折れていた。
   幅の指定を外して中身に合わせて配分し、どの列も三文字ぶんほどは保つ。入りきらない表は、表の中で横に動かせる。 */
@media (max-width: 640px) {
  .gt-sub__body :where(th, td) { width: auto; min-width: 4.5em; }
  .gt-sub__body :where(th, td)[style*="width"] { width: auto !important; }
  /* 左端の見出しの列（会社名・所在地・建設業許可 など）は、五文字までは折らない */
  .gt-sub__body :where(th:first-child) { min-width: 7em; }
  /* 6列以上ある表（一週間の予定表など）は、列を同じ幅にして、余白と文字を詰める。幅 320px でも7列が入る */
  .gt-sub__body table:has(:is(th, td):nth-child(6)) { display: table; table-layout: fixed; width: 100%; }
  .gt-sub__body table:has(:is(th, td):nth-child(6)) :where(th, td) { min-width: 0; padding: 8px 2px; font-size: 13px; line-height: 1.6; text-align: center; }
}

/* フォーム：日付・数字・URL・時刻の入力欄が、ブラウザの素の小さい欄のままだった（文字・メール・電話と同じ見た目にそろえる） */
.gt-form input[type="date"], .gt-form input[type="number"], .gt-form input[type="url"],
.gt-form input[type="time"], .gt-form input[type="datetime-local"], .gt-form input[type="month"] {
  display: block; width: 100%; min-height: 52px; padding: 10px 14px;
  font: inherit; font-weight: 400; letter-spacing: 0.02em; color: var(--ink);
  background: #fff; border: 1px solid #8d8778; border-radius: 0;
}

/* 概算の目安：スマホの下に出る帯。幅 360px 以下で「概算」の札が縦に折れ、金額も二行に割れていた。
   札と金額は折らず、入りきらないときは「内容を見る」だけを次の行の右へ送る。幅 420px 以下では「概算」の札を省く。 */
@media (max-width: 1000px) {
  .gt-gaisan__bar { flex-wrap: wrap; gap: 2px 10px; }
  .gt-gaisan__bar span, .gt-gaisan__bar strong { white-space: nowrap; }
  .gt-gaisan__bar a { margin-left: auto; }
}
@media (max-width: 420px) { .gt-gaisan__bar > span { display: none; } }

/* メニュー：開いたメニューが画面の高さを超えると、下の項目（相談する）まで届かなかった（横向きや、背の低い画面）。
   メニューの中で縦に動かせるようにする。 */
@media (max-width: 1100px) {
  .gt-nav.is-open { max-height: calc(100vh - 76px); max-height: calc(100dvh - 76px); overflow-y: auto; overscroll-behavior: contain; }
}

/* 矢印つきのリンクが二行になるとき、矢印だけが次の行に落ちないよう、行の長さをそろえる（対応しているブラウザだけ） */
.gt-textlink { text-wrap: balance; }
