/*
Theme Name: Re:branding Corporate
Theme URI: https://rebranding.co.jp/
Author: Re:branding Inc.
Description: リブランディング株式会社 コーポレートサイト用カスタムテーマ。静的プロトタイプ（design-approved）をWordPress化したもの。各ページ固有のレイアウトCSSは各テンプレートの<style>に内包し、本ファイルには全ページ共通のシェル（ヘッダー／フッター／基本要素）のみを定義する。
Version: 0.2.5
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
Text Domain: rebranding
*/

/* =========================================================
   共通：変数 / リセット / 基本要素
   （フォームページは inc 経由で別シェルを使う場合あり）
   ========================================================= */
:root{
  --navy:#14224F;
  --navy-d:#0D1736;
  --gold:#C2A063;
  --gold-d:#A8854A;
  --bordeaux:#6E1B2C;
  --ink:#1C2230;
  --gray:#5C6470;
  --line:#E7E9EE;
  --tint:#F7F8FA;
  --maxw:1360px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:"Noto Sans JP",sans-serif;color:var(--ink);line-height:1.85;background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden;word-break:normal;word-break:auto-phrase;line-break:strict;overflow-wrap:break-word}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.eyebrow{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:15px;letter-spacing:.3em;color:var(--gold-d);text-transform:uppercase}

/* =========================================================
   共通：ボタン
   ※各ページが独自に .btn を上書きする場合は、各テンプレートの
     <style>（body内＝このファイルより後に読み込まれる）で上書き可
   ========================================================= */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--navy);color:#fff;font-weight:500;font-size:14px;line-height:1.4;padding:var(--cta-padding-y,11px) var(--cta-padding-x,18px);transition:.25s;letter-spacing:.04em;border-radius:var(--cta-radius,6px)}
.btn:hover{background:var(--navy-d)}
.btn-line{background:transparent;color:var(--navy);border:1px solid var(--navy);border-radius:var(--cta-radius,6px)}
.btn-line:hover{background:var(--navy);color:#fff}

/* =========================================================
   共通：ヘッダー
   ========================================================= */
header.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:80px}
.logo{font-family:"Shippori Mincho",serif;font-weight:700;font-size:23px;letter-spacing:.06em;color:var(--navy);position:relative}
.logo span{color:var(--bordeaux)}
.nav ul{display:flex;gap:34px;list-style:none;font-size:14px;font-weight:500}
.nav ul a{position:relative;padding:4px 0}
.nav ul a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--navy);transition:.3s}
.nav ul a:hover::after{width:100%}
.head-cta{display:flex;align-items:center;gap:12px}
.tel{text-align:right;line-height:1.15;margin-right:2px}
.tel a{font-family:var(--phone-font-family,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif);font-size:19px;color:var(--navy);font-weight:700;letter-spacing:.01em;display:block}
.tel .hours{font-size:10.5px;color:var(--gray);letter-spacing:.02em}
.head-cta .btn{padding:11px 18px;font-size:14px}
@media(max-width:1080px){.tel{display:none}}

/* ハンバーガー + モバイルメニュー */
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:11px;background:none;border:0;cursor:pointer}
.hamburger span{display:block;width:100%;height:2px;background:var(--navy);transition:transform .3s,opacity .3s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;flex-direction:column;background:#fff;border-top:1px solid var(--line);padding:6px 28px 24px}
.mobile-menu.open{display:flex}
.mobile-menu ul{list-style:none;display:flex;flex-direction:column}
.mobile-menu ul a{display:block;padding:15px 4px;border-bottom:1px solid var(--line);font-size:15px;font-weight:500;color:var(--navy)}
.mobile-menu .mm-cta{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.mobile-menu .mm-cta .btn{width:100%;padding:15px;font-size:14px}
.mobile-menu .mm-tel{margin-top:18px;text-align:center}
.mobile-menu .mm-tel a{font-family:var(--phone-font-family,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif);font-size:20px;font-weight:700;color:var(--navy);display:block}
.mobile-menu .mm-tel small{display:block;color:var(--gray);font-size:11px;margin-top:2px}

/* 常設3ボタンCTAバー（画面下部固定） */
.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:rgba(247,248,250,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);box-shadow:0 -12px 30px -18px rgba(20,34,79,.35);
  padding:14px 0 calc(14px + env(safe-area-inset-bottom));
  opacity:0;visibility:hidden;transform:translateY(16px);
  transition:opacity .35s ease,transform .35s ease,visibility .35s ease}
@supports not (backdrop-filter:blur(1px)){.cta-bar{background:rgba(247,248,250,.97)}}
.cta-bar.show{opacity:1;visibility:visible;transform:translateY(0)}
.cta-bar .wrap{display:flex;align-items:center;justify-content:center;gap:14px}
.cta-bar .wrap a{gap:8px}
.cta-bar svg{width:17px;height:17px;flex:none}
@media(max-width:560px){
  .cta-bar .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 16px}
  .cta-bar .wrap a{flex-direction:column;gap:5px;padding:10px 6px;font-size:12px;white-space:nowrap}
}
@media(min-width:881px){.cta-bar{display:none}}

/* =========================================================
   共通：フッター
   ========================================================= */
footer.site-footer{background:var(--navy-d);color:#9AA3BC;padding:0 0 38px;font-size:14px}
.footer-logo-band{background:#F1EADC;padding:36px 0}
.footer-logo-band .logo{margin:0 auto}
.f-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:40px 28px;padding:48px 0;border-bottom:1px solid rgba(255,255,255,.12)}
footer.site-footer .logo{color:var(--navy)}
footer.site-footer .logo span{color:var(--gold)}
footer.site-footer h5{font-family:"Cormorant Garamond",serif;color:var(--gold);font-size:14px;margin-bottom:18px;letter-spacing:.12em;text-transform:uppercase}
footer.site-footer ul{list-style:none;display:flex;flex-direction:column;gap:11px}
footer.site-footer a:hover{color:#fff}
.footer-bottom{display:flex;flex-direction:column;padding-top:26px;font-size:14px;color:#6B7390}
.footer-policy{display:flex;flex-wrap:wrap;gap:10px 20px}
.footer-policy a{white-space:nowrap}
.copy{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);text-align:center}
@media(min-width:881px){
  .footer-bottom{flex-direction:row-reverse;align-items:center;justify-content:space-between;gap:20px}
  .copy{margin-top:0;padding-top:0;border-top:none;text-align:left}
}

/* =========================================================
   共通：スクロール・フェードイン（JSで .in を付与）
   ========================================================= */
.fade{opacity:0;transform:translateY(22px);transition:.8s cubic-bezier(.2,.7,.2,1)}
.fade.in{opacity:1;transform:none}

@media(max-width:880px){
  .nav ul{display:none}
  .hamburger{display:flex}
  .head-cta{display:none}
  .nav{position:relative;justify-content:flex-end}
  .nav>.logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
  /* News一覧：固定px 4列だと375〜430px幅で必ずはみ出すため、2行レイアウトへ切替 */
  .news-row{grid-template-columns:auto auto 1fr;grid-template-areas:"time cat arrow" "ttl ttl ttl";gap:8px 14px;padding:18px 4px}
  .news-row time{grid-area:time}
  .news-row .cat{grid-area:cat}
  .news-row .ttl{grid-area:ttl;font-size:14px;line-height:1.7}
  .news-row .arrow{grid-area:arrow}
  footer.site-footer .wrap{padding:0 16px}
  .f-grid{grid-template-columns:1fr;gap:0;border-top:1px solid rgba(255,255,255,.14)}
  .f-grid>div{border-bottom:1px solid rgba(255,255,255,.14);min-width:0}
  .f-grid>div>h5{margin:0;padding:18px 30px 18px 4px;text-align:center;white-space:normal;position:relative;cursor:pointer}
  .f-grid>div>h5::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-family:sans-serif;font-size:20px;font-weight:300;line-height:1}
  .f-grid>div.open>h5::after{content:"\2013"}
  .f-grid>div>ul{max-height:0;overflow:hidden;align-items:center;gap:0;transition:max-height .25s ease}
  .f-grid>div.open>ul{max-height:320px;padding-bottom:18px}
  .f-grid>div>ul>li{text-align:center;padding:6px 0}
  /* Footer: プライバシーポリシー・反社会的勢力に対する基本方針を375pxでも1行に横並び表示 */
  .footer-policy{justify-content:center;gap:10px 14px;font-size:13px}
}

/* =========================================================
   News 一覧（home.php / archive.php / index.php）
   ========================================================= */
.news-page{padding:72px 0 104px}
.news-page .sec-head{margin-bottom:36px}
.news-page .sec-head .eyebrow{display:block;margin-bottom:6px}
.news-page .sec-head h1{font-family:"Shippori Mincho",serif;font-size:clamp(26px,3.3vw,38px);font-weight:700;color:var(--navy);line-height:1.5}
.news-tabs{display:flex;gap:30px;border-bottom:1px solid var(--line);margin:0 0 6px;flex-wrap:wrap}
.news-tabs a{padding:0 0 16px;font-size:14px;font-weight:500;color:var(--gray);border-bottom:2px solid transparent;margin-bottom:-1px;transition:.2s}
.news-tabs a.on,.news-tabs a:hover{color:var(--navy);border-color:var(--gold)}
.news-row{display:grid;grid-template-columns:128px 96px 1fr 20px;gap:26px;align-items:center;padding:24px 4px;border-bottom:1px solid var(--line)}
.news-row time{font-family:"Cormorant Garamond",serif;font-size:16px;letter-spacing:.08em;color:var(--gray)}
.news-row .cat{justify-self:start;font-size:11.5px;letter-spacing:.06em;padding:4px 0;width:100%;text-align:center;border:1px solid var(--line);color:var(--navy)}
.news-row .cat.seminar{color:var(--bordeaux);border-color:rgba(110,27,44,.35)}
.news-row .cat.case{color:var(--gold-d);border-color:rgba(168,133,74,.5)}
.news-row .ttl{font-size:15px;color:var(--ink);transition:.2s}
.news-row:hover .ttl{color:var(--navy)}
.news-row .arrow{color:var(--gold-d);text-align:right}
.news-empty{padding:40px 0;color:var(--gray)}
.news-pager{margin-top:44px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.news-pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:9px 12px;border:1px solid var(--line);color:var(--gray);font-family:"Cormorant Garamond",serif;transition:.2s}
.news-pager .page-numbers:hover{border-color:var(--navy);color:var(--navy)}
.news-pager .page-numbers.current{background:var(--navy);color:#fff;border-color:var(--navy)}
/* News 一覧：TOP「ニュース・最新情報」(front-page.php) と同じデザイン言語に統一。
   既存の .news-row / .news-tabs はTOPと共有されうるため、必ず .news-page 配下に限定する。値はTOPの既存定義と同一（新色なし）。 */
.news-page .sec-head{margin-bottom:32px}
.news-page .sec-head .eyebrow{margin-bottom:16px;letter-spacing:.3em}
.news-page .sec-head h1{font-family:var(--heading-h2-font-family,"Noto Sans JP",sans-serif);font-size:var(--heading-h2-size,clamp(21px,2.6vw,27px));font-weight:var(--heading-h2-weight,700);line-height:var(--heading-h2-line-height,1.75);letter-spacing:var(--heading-h2-letter-spacing,normal);color:var(--heading-h2-color,var(--navy))}
.news-page .news-tabs{display:flex;gap:4px;width:fit-content;max-width:100%;background:#fff;border:1px solid var(--line);padding:5px;margin:0 0 40px;flex-wrap:nowrap}
.news-page .news-tabs a{flex:none;white-space:nowrap;padding:10px 22px;font-size:14px;font-weight:500;color:var(--gray);border:none;margin:0;transition:.2s}
.news-page .news-tabs a.on{color:#fff;background:var(--navy)}
.news-page .news-tabs a:hover:not(.on){color:var(--navy);background:rgba(20,34,79,.06)}
.news-page .news-row{grid-template-columns:128px minmax(108px,auto) 1fr 20px}
.news-page .news-row .cat{display:inline-block;width:auto;white-space:nowrap;padding:4px 12px;font-size:14px;letter-spacing:.08em;line-height:1.4;text-align:center;color:var(--navy);background:var(--tint);border:1px solid var(--line)}
.news-page .news-row .cat.seminar{color:var(--bordeaux);background:rgba(110,27,44,.06);border-color:rgba(110,27,44,.22)}
.news-page .news-row .cat.case{color:var(--gold-d);background:rgba(168,133,74,.08);border-color:rgba(168,133,74,.28)}
.news-page .news-row .cat.release{color:#fff;background:var(--navy);border-color:var(--navy)}
.news-page .news-row .cat.media{color:var(--navy);background:rgba(20,34,79,.07);border-color:rgba(20,34,79,.25)}
@media(max-width:880px){
  .news-page .sec-head .eyebrow,.news-page .sec-head h1{text-align:center}
  .news-page .news-tabs{width:100%;justify-content:center;gap:2px;padding:4px}
  .news-page .news-tabs a{flex:1 1 auto;text-align:center;padding:8px 5px;font-size:clamp(11px,3.4vw,12px)}
  .news-page .news-row{grid-template-columns:auto auto 1fr;padding:20px 4px}
  .news-page .news-row .ttl{font-size:14.5px}
}
/* News 一覧ページネーション：高さ50px→約44px（line-height継承の1.85が原因）。色・文言・リンクは変更しない */
.news-page .news-pager{margin-top:32px}
.news-page .news-pager .page-numbers{min-width:44px;padding:10px 12px;font-size:15px;line-height:1.4}
@media(max-width:880px){.news-page{padding-bottom:72px}}

/* =========================================================
   News 記事ページ（single.php）
   ========================================================= */
.single-article{padding:64px 0 96px}
.single-article .meta{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.single-article .meta .cat{font-size:12px;border:1px solid var(--line);padding:4px 12px;color:var(--navy);letter-spacing:.06em}
.single-article .meta .cat.seminar{color:var(--bordeaux);border-color:rgba(110,27,44,.35)}
.single-article .meta .cat.case{color:var(--gold-d);border-color:rgba(168,133,74,.5)}
.single-article .meta time{font-family:"Cormorant Garamond",serif;color:var(--gray);letter-spacing:.06em}
.single-article h1{font-family:"Shippori Mincho",serif;font-size:clamp(26px,3.4vw,40px);font-weight:700;color:var(--navy);line-height:1.5;margin-bottom:28px;max-width:880px}
.single-article .thumb{margin:0 0 36px;max-width:980px}
.single-article .thumb img{width:100%;height:auto}
.article-body{max-width:820px;font-size:16px;line-height:2;color:var(--ink)}
.article-body h2{font-family:"Shippori Mincho",serif;color:var(--navy);font-size:24px;margin:40px 0 14px}
.article-body h3{font-family:"Shippori Mincho",serif;color:var(--navy);font-size:19px;margin:28px 0 10px}
.article-body p{margin:0 0 20px}
.article-body a{color:var(--bordeaux);text-decoration:underline}
.article-body ul,.article-body ol{margin:0 0 20px 1.4em}
.article-body li{margin-bottom:8px}
.article-body img{height:auto;margin:20px 0}
.article-body blockquote{border-left:3px solid var(--gold);padding:6px 0 6px 20px;color:var(--gray);margin:0 0 20px}
.article-nav{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;max-width:820px}
.article-nav a{color:var(--navy)}.article-nav a:hover{color:var(--bordeaux)}
/* 記事の前後ナビ：日本語の長いタイトル(auto-phraseのmin-content)で2列がはみ出すため、狭い幅では縦並びにする */
.single-article .article-nav span{min-width:0}
@media(max-width:480px){
  .single-article .article-nav{flex-direction:column;gap:12px}
  .single-article .article-nav span:empty{display:none}
}
.article-back{margin-top:40px}
.ctaband .btn-line {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.6);
}
.ctaband .btn-line:hover {
  background: #fff;
  color: var(--navy);
}
.ctaband .btn:not(.btn-line) {
  background: var(--bordeaux);
  font-weight: 700;
}
.ctaband .btn:not(.btn-line):hover {
  filter: brightness(0.88);
}
.media-full .ph.zoom-large {
  padding: 12px 16px;
}
.media-full .ph.zoom-large img {
  transform: scale(1.6);
}
.media-full:hover .ph.zoom-large img {
  transform: scale(1.6) scale(1.06);
}
.mobile-only-br {
  display: none;
}
@media (max-width: 880px) {
  .mobile-only-br {
    display: inline;
  }
  .desktop-only-br {
    display: none;
  }
}
