/* ============================================================
   WordPress（ブロックエディタ出力）向け調整
   site.css の設計システムをコアブロックの出力に橋渡しする
   ============================================================ */

/* ---- 画像プレースホルダ .ph に実画像が入ったとき ---- */
.ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ph:has(img)::before{ display:none; }
.ph:has(img) span{ display:none; }
.wp-block-image.ph{ margin:0; }
.wp-block-image.ph img{ position:absolute; }
.ph img:not([src]), .ph img[src=""]{ display:none; }
.section--deep .section-kicker{ color:var(--accent-light,#e7a483); }
.ph:not([class*="ph--"]):not(.fv__media .ph){ min-height:1px; }
/* 比率クラスなし .ph（自由比率）に画像が入った場合の既定比率 */
.wp-block-image.ph:not([class*="ph--"]){ aspect-ratio:16/10; }
.work-row__media .wp-block-image.ph{ aspect-ratio:4/3; }
.people-row__media .wp-block-image.ph{ aspect-ratio:3/4; }
.tour-item__main .wp-block-image.ph{ aspect-ratio:16/10; border:none; }
.tour-item__sub .wp-block-image.ph{ aspect-ratio:4/3; border:none; margin-bottom:18px; }
.gc-card .wp-block-image.ph{ border:none; }

/* ---- 段落・ブロック間隔 ---- */
.gc-content p, .job-body p{ margin:0; }
.gc-content :is(.split, .work-row, .people-row, .tour-item, .tour-item__sub, .tour-gallery,
  .benefit-grid, .stat-grid, .business-grid, .section-head--row, .gc-card, .faq, .gc-people, .next-cta) > * + *{
  margin-block-start:0;
}
.gc-content .wrap > .section-head + *{ margin-block-start:0; }
.gc-content .section-head--row{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:16px; }
.gc-content .section-head--row .section-title{ font-size:clamp(24px,3vw,32px); }
.gc-content .section-head--row .text-link{ margin:0; }
.gc-content .wrap > .reveal-stagger, .gc-content .wrap > .tour-gallery{ margin-top:56px; }
.gc-content .wrap > .stat-grid{ margin-top:48px; }
.gc-content .wrap > .faq{ margin-top:44px; }

/* ---- 汎用テキスト ---- */
.gc-body{ font-size:15.5px; line-height:2.15; color:var(--ink-soft); max-width:32em; }
.gc-body + .gc-body{ margin-top:20px !important; }
.section--deep .gc-body{ color:#cfd4e0; font-size:15px; line-height:2.1; max-width:34em; }
.gc-sign{ margin-top:28px !important; font-family:var(--serif); font-size:16px; }
.gc-deep-message{ padding-top:clamp(80px,10vw,140px); padding-bottom:clamp(80px,10vw,140px); }
.gc-deep-message .section-kicker{ color:var(--accent-light,#e7a483); }
.gc-content .section-kicker + .section-title{ margin-block-start:0; }

/* ---- BUSINESS カード ---- */
.gc-card{ background:var(--bg); }
.gc-card__body{ padding:30px; }
.gc-card__title{ font-size:19px; margin-top:12px; }
.gc-card__text{ font-size:13.5px; color:var(--ink-soft); margin-top:12px !important; line-height:1.9; }

/* ---- WORK 行 ---- */
.work-row__title{ font-size:clamp(22px,2.6vw,28px); margin-top:16px; line-height:1.6; }
.work-row__desc{ margin-top:18px !important; font-size:14.5px; color:var(--ink-soft); line-height:2.05; max-width:28em; }
.gc-content .work-row{ margin-block-start:0; }

/* ---- BENEFITS グリッド（旧 environment.html のインラインCSS） ---- */
.benefit-grid{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.benefit-item{ border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:30px 34px; }
.benefit-item h3{ font-size:15.5px; font-family:var(--sans); font-weight:600; }
.benefit-item p{ margin-top:10px !important; font-size:13px; color:var(--ink-soft); line-height:1.9; }
@media (max-width:980px){ .benefit-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .benefit-grid{ grid-template-columns:1fr; } }

/* ---- FAQ（Details ブロック） ---- */
.faq-item.wp-block-details{ border-bottom:1px solid var(--line); margin:0; }
.faq-item > summary{
  display:flex; align-items:center; gap:20px; padding:26px 0; font-size:15.5px; color:var(--ink);
  cursor:pointer; list-style:none;
}
.faq-item > summary::-webkit-details-marker{ display:none; }
.faq-item > summary::before{
  content:'Q'; flex:none; width:30px; height:30px; border-radius:50%; border:1px solid var(--ink);
  display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:14px;
}
.faq-item > summary::after{ content:'+'; margin-left:auto; font-size:20px; font-weight:300; transition:transform .3s ease; }
.faq-item[open] > summary::after{ transform:rotate(45deg); }
.faq-item > :not(summary){ padding:0 0 28px 50px; font-size:14.5px; color:var(--ink-soft); line-height:2; margin:0; }

/* ---- ボタンブロック → 既存 .btn デザイン ---- */
.wp-block-buttons.gc-btns{ margin-top:26px; }
.wp-block-button.btn{ padding:0; border:0; background:none; display:inline-block; }
.wp-block-button.btn .wp-block-button__link{
  display:inline-flex; align-items:center; gap:10px; padding:15px 30px; border:1px solid var(--ink);
  font-size:14.5px; letter-spacing:.06em; background:transparent; color:var(--ink); border-radius:0; font-family:inherit;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.wp-block-button.btn .wp-block-button__link:hover{ background:var(--ink); color:#fff; }
.wp-block-button.btn--primary .wp-block-button__link{ background:var(--rust); border-color:var(--rust); color:#fff; }
.wp-block-button.btn--primary .wp-block-button__link:hover{ background:var(--rust-deep); border-color:var(--rust-deep); }
.wp-block-button.btn--on-deep .wp-block-button__link{ border-color:rgba(255,255,255,.55); color:#fff; }
.wp-block-button.btn--on-deep .wp-block-button__link:hover{ background:#fff; color:var(--bg-deep); }
.wp-block-button.btn .wp-block-button__link:hover .btn-arrow{ transform:translateX(5px); }
p.text-link{ display:inline-flex; }
p.text-link a{ display:inline-flex; align-items:center; gap:8px; }
.gc-next-btn .btn{ margin:0; }

/* ---- 募集要項テーブル ---- */
.wp-block-table.spec-table{ margin:0; }
.wp-block-table.spec-table table{ width:100%; border-collapse:collapse; border:none; }
.wp-block-table.spec-table th, .wp-block-table.spec-table td{ text-align:left; padding:18px 0; border:none; border-bottom:1px solid var(--line); vertical-align:top; }
.wp-block-table.spec-table th{ width:200px; font-weight:500; color:var(--ink-soft); font-size:14px; }
.wp-block-table.spec-table td{ font-size:14.5px; line-height:1.9; }
@media (max-width:600px){ .wp-block-table.spec-table th{ width:110px; } }
.job-body .detail-body{ margin-top:0; }
.job-body > p{ margin:0 0 1.6em; font-size:15.5px; line-height:2.1; }

/* ---- 詳細本文（NEWS / ブログ） ---- */
.detail-body h2{ font-size:22px; margin:2em 0 .8em; }
.detail-body h3{ font-size:18px; margin:1.6em 0 .6em; }
.detail-body ul, .detail-body ol{ margin:0 0 1.6em 1.4em; list-style:revert; }
.detail-body img{ height:auto; }
.detail-body figure{ margin:0 0 1.6em; }
.detail-body a{ border-bottom:1px solid currentColor; }

/* ---- 一覧ページ ---- */
.pagination, .navigation.pagination{ margin-top:48px; }
.nav-links{ display:flex; gap:6px; justify-content:center; }
.nav-links .page-numbers{ padding:9px 14px; border:1px solid var(--line); font-size:13.5px; color:var(--ink-soft); }
.nav-links .page-numbers.current{ background:var(--ink); border-color:var(--ink); color:#fff; }
a.filter-chip{ display:inline-block; }

/* ---- 管理者ツールバー分の余白 ---- */
body.admin-bar .gh{ top:32px; }

/* 1.1 design refresh */
.about-business__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:stretch}
.about-business__item{width:auto!important;transform:none!important}
.about-business__item .ph{aspect-ratio:16/9!important}
.about-business__item h3{margin-top:16px}
.ct--teaser{padding-block:clamp(72px,8vw,120px)!important}
.ct--teaser .ct__head{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end}
.ct--teaser .ct__group{margin-top:42px}
.ct--teaser .ct__theme{margin:0}
.env-top__smalls,.env-top__bottom{display:none!important}
.env-top__figures{margin-top:48px!important}
.env-top__links{margin-top:40px!important}

/* Numbers: grouped, architectural, and information-rich. */
#numbers{position:relative;overflow:hidden;background-color:#12213b;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:40px 40px}
#numbers:before,#numbers:after{content:"";position:absolute;pointer-events:none;border-color:rgba(185,102,55,.5);border-style:solid}
#numbers:before{width:42%;height:1px;right:5%;top:110px;border-width:1px 0 0}
#numbers:after{width:1px;height:55%;right:9%;bottom:7%;border-width:0 0 0 1px}
#numbers .stat-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)}
#numbers .stat{grid-column:span 4;min-height:260px;padding:42px 30px;background:#12213b;display:flex;flex-direction:column;justify-content:space-between;position:relative}
#numbers .stat:nth-child(1),#numbers .stat:nth-child(4){grid-column:span 6}
#numbers .stat__value{font-size:clamp(64px,8vw,128px);line-height:.9;color:#fff;letter-spacing:-.055em}
#numbers .stat__label{color:var(--accent-light,#df9a72);font-size:13px;letter-spacing:.14em}
#numbers .stat:after{font-size:12px;color:rgba(255,255,255,.62);line-height:1.7}
#numbers .stat:nth-child(1):after{content:"1974年の創業以来、静岡とともに歩んできました。"}
#numbers .stat:nth-child(2):after{content:"施工・設計・営業が、顔の見える距離で連携。"}
#numbers .stat:nth-child(3):after{content:"若手からベテランまで、世代を越えて技術を継承。"}
#numbers .stat:nth-child(4):after{content:"地域に根を張り、長く働き続けられる会社へ。"}
#numbers .stat:nth-child(5):after{content:"専門資格を持つ技術者が現場品質を支えます。"}
#numbers .stat:nth-child(6):after{content:"仕事の多くが、暮らす街・静岡に残ります。"}

/* Benefits: four visual categories with icon-like badges and details below. */
#benefits{background:#f2eee7}
#benefits .benefit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#benefits .benefit-item{position:relative;padding:30px;background:#fff;border:1px solid #ddd4c8;min-height:150px}
#benefits .benefit-item:before{position:absolute;left:28px;top:29px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#12213b;color:#fff;font-size:13px;font-weight:700;letter-spacing:.04em}
#benefits .benefit-item:nth-child(-n+3):before{content:"休"}
#benefits .benefit-item:nth-child(n+4):nth-child(-n+5):before{content:"暮"}
#benefits .benefit-item:nth-child(n+6):nth-child(-n+8):before{content:"働"}
#benefits .benefit-item:nth-child(n+9):before{content:"支"}
#benefits .benefit-item h3{font-size:17px;line-height:1.5}
#benefits .benefit-item p{margin-top:12px!important;font-size:13px;line-height:1.9;color:#655f58}
#benefits .benefit-item::before{display:none}

/* Dedicated cross-talk page. */
.gc-ct-page{background:#f7f3ed}
.gc-ct-intro{display:grid;grid-template-columns:.45fr 1fr;column-gap:64px;align-items:start}
.gc-ct-intro .section-kicker{grid-column:1}
.gc-ct-intro .section-title{grid-column:1;font-size:clamp(38px,5vw,72px);line-height:1.25}
.gc-ct-intro .section-lead{grid-column:2;grid-row:1/span 2;align-self:end;max-width:38em;line-height:2.1;color:var(--ink-soft)}
.gc-ct-hero{margin-top:64px!important;aspect-ratio:16/7!important}
.gc-ct-members{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:1px;background:var(--line)}
.gc-ct-members>div{display:flex;flex-direction:column;gap:6px;padding:24px;background:#fff}
.gc-ct-members b{font-family:var(--serif);font-size:20px}
.gc-ct-members span{font-size:13px;color:var(--rust)}
.gc-ct-members small{font-size:12px;color:var(--ink-soft)}
.gc-ct-chapter{position:relative;margin-top:clamp(90px,11vw,150px);padding-left:min(16vw,210px)}
.gc-ct-chapter .gc-ct-num{position:absolute;left:0;top:-35px;font-family:var(--serif);font-size:clamp(80px,12vw,170px);line-height:1;color:rgba(185,102,55,.15)}
.gc-ct-chapter>h3{position:relative;margin-bottom:52px;font-family:var(--serif);font-size:clamp(28px,3.5vw,46px);line-height:1.55}
.gc-ct-speech{display:grid;grid-template-columns:90px 1fr;gap:28px;padding:25px 0;border-top:1px solid var(--line)}
.gc-ct-speech b{color:var(--rust);font-size:14px}
.gc-ct-speech p{font-size:15px;line-height:2;color:var(--ink-soft)}
.gc-ct-question{margin:0 0 22px!important;padding:18px 22px;background:#12213b;color:#fff;font-size:14px;line-height:1.8}
.gc-ct-speech:nth-of-type(even){margin-left:min(7vw,90px)}
.gc-ct-speech:nth-of-type(odd){margin-right:min(7vw,90px)}
.gc-ct-speech b{align-self:start;border-radius:999px;background:#fff;border:1px solid var(--rust);padding:6px 10px;text-align:center}
.gc-ct-speech p{position:relative;background:#fff;padding:20px 24px;border-radius:0 18px 18px 18px}
.gc-ct-speech p:before{content:"";position:absolute;left:-9px;top:0;border-style:solid;border-width:0 10px 10px 0;border-color:transparent #fff transparent transparent}
.gc-ct-closing{margin:clamp(90px,11vw,150px) 0 48px;padding:54px;border:1px solid var(--rust);font-family:var(--serif);font-size:clamp(22px,3vw,36px);line-height:1.8;text-align:center;color:var(--ink)}

@media (max-width:780px){
  .about-business__grid,#benefits .benefit-grid{grid-template-columns:1fr!important}
  .ct--teaser .ct__head,.gc-ct-intro{grid-template-columns:1fr}
  .gc-ct-intro .section-title,.gc-ct-intro .section-lead{grid-column:1;grid-row:auto}
  .gc-ct-intro .section-lead{margin-top:24px}
  #numbers .stat,#numbers .stat:nth-child(1),#numbers .stat:nth-child(4){grid-column:span 12;min-height:220px}
  .gc-ct-members{grid-template-columns:repeat(2,1fr)}
  .gc-ct-chapter{padding-left:0}
  .gc-ct-chapter .gc-ct-num{position:static;margin-bottom:12px;font-size:74px}
  .gc-ct-speech{grid-template-columns:56px 1fr;gap:16px}
  .gc-ct-speech:nth-of-type(even),.gc-ct-speech:nth-of-type(odd){margin-left:0;margin-right:0}
  .gc-ct-closing{padding:32px 20px}
}
@media (max-width:782px){ body.admin-bar .gh{ top:46px; } }

/* 1.2 — block-editable TOP page */
.top-block{position:relative}
.top-block>.wrap{position:relative}
.top-block--fv{min-height:min(860px,92vh);background:#12213b;color:#fff;overflow:hidden}
.top-block--fv .top-block__hero{position:absolute;inset:0;margin:0;opacity:.48}
.top-block--fv .top-block__hero img{width:100%;height:100%;object-fit:cover}
.top-block__fv-copy{position:relative;z-index:1;width:min(1180px,calc(100% - 80px));margin:auto;padding-top:clamp(230px,34vh,390px)}
.top-block__fv-copy h1{font-family:var(--serif);font-size:clamp(48px,7vw,104px);line-height:1.28;font-weight:400}
.top-block__fv-copy>p:last-child{margin-top:26px;line-height:2;color:rgba(255,255,255,.78)}
.top-block__en{margin-top:22px;color:var(--accent-light,#df9a72);letter-spacing:.22em;font-size:13px}
.top-block__head{margin-top:clamp(80px,10vw,140px)}
.top-block__split{gap:clamp(36px,7vw,100px);align-items:center;margin-top:54px}
.top-block__split h3,.top-block__head h3{font-family:var(--serif);font-size:clamp(30px,4vw,55px);line-height:1.5}
.top-block__split p{line-height:2;color:var(--ink-soft)}
.top-block__cards{gap:22px;margin-top:44px}
.top-block__cards h3{margin-top:14px;font-family:var(--serif);font-size:clamp(21px,2.3vw,30px)}
.top-block__cards p:not(.card-min__num){margin-top:12px;line-height:1.9;color:var(--ink-soft);font-size:14px}
.top-block__image{position:relative;margin:0;background:#e9e3d8;overflow:hidden}
.top-block__image:has(img:not([src])):before,.top-block__image:has(img[src=""]):before{content:"画像を選択";position:absolute;inset:0;display:grid;place-items:center;color:#746d63;font-size:13px;letter-spacing:.1em}
.top-block__image img{width:100%;height:100%;object-fit:cover}
.top-block__image--portrait{aspect-ratio:4/5}
.top-block__image--43{aspect-ratio:4/3}
.top-block__image--34{aspect-ratio:3/4}
.top-block__image--wide{aspect-ratio:16/7;margin-top:48px}
.top-block__numbers{margin-top:clamp(80px,10vw,140px);padding:clamp(42px,6vw,78px);background:#12213b;color:#fff}
.top-block__number-grid{gap:1px;margin:30px 0;background:rgba(255,255,255,.15)}
.top-block__number-grid>.wp-block-column{padding:28px;background:#12213b}
.top-block__number{font-family:var(--serif);font-size:clamp(52px,7vw,100px);line-height:1;color:#fff}
.top-block--project .top-block__cards p,.top-block--crosstalk p{color:rgba(255,255,255,.72)}
.top-block--environment .top-block__number{color:var(--ink)}
.top-block--recruit{text-align:center}
.top-block--recruit .section-lead{margin-inline:auto}
.top-block--recruit .wp-block-buttons{justify-content:center;margin-top:40px}

@media(max-width:780px){
  .top-block__fv-copy{width:calc(100% - 40px);padding-top:220px}
  .top-block__cards,.top-block__split,.top-block__number-grid{display:grid!important;grid-template-columns:1fr!important}
  .top-block__cards--3{grid-template-columns:1fr!important}
  .top-block__image--wide{aspect-ratio:4/3}
  .top-block__numbers{padding:32px 22px}
}

/* 1.3 protected TOP editor controls */
.about-business__grid{gap:var(--gc-business-gap,28px)!important}
.about-business__item .ph{aspect-ratio:var(--gc-business-ratio,16/9)!important}
.about-numbers__list{transform:translate(var(--gc-numbers-x,0),var(--gc-numbers-y,0)) scale(var(--gc-numbers-scale,1));transform-origin:center}
.person__num{transform:translate(var(--gc-people-num-x,0),var(--gc-people-num-y,0)) scale(var(--gc-people-num-scale,1));transform-origin:center}
.about-business__item .ph{aspect-ratio:var(--gc-business-ratio,16/9)!important}
.about-numbers__list{transform:translate(var(--gc-numbers-x,0),var(--gc-numbers-y,0)) scale(var(--gc-numbers-scale,1));transform-origin:center}
.person__num{transform:translate(var(--gc-people-num-x,0),var(--gc-people-num-y,0)) scale(var(--gc-people-num-scale,1));transform-origin:center}
.top .section{padding-top:calc(clamp(80px,10vw,150px) * var(--gc-section-space,1));padding-bottom:calc(clamp(80px,10vw,150px) * var(--gc-section-space,1))}
