/*
Theme Name: Veritas Philia
Theme URI: https://veritasphilia.com/
Author: Veritas Philia
Description: Veritas Philia株式会社 公式サイト用カスタムテーマ。現行デザインを再現し、トップページをブロックエディタで編集できるようにしたクラシックテーマです（ACF不要）。
Version: 1.1.3
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: veritasphilia
*/

/* =========================================================
   1) 現行サイトのスタイル（そのまま移植）
   ========================================================= */

  :root{
    --font:"Meiryo UI","Meiryo","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",sans-serif;
    --navy:#11253f;
    --navy-2:#1b3557;
    --gold:#b8924a;
    --gold-light:#cba85f;
    --ink:#1d2430;
    --muted:#5d6675;
    --line:#e4e7ec;
    --bg:#ffffff;
    --bg-soft:#f6f7f9;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--font);
    color:var(--ink);background:var(--bg);line-height:1.85;
    -webkit-font-smoothing:antialiased;font-size:16px;
  }
  h1,h2,h3,.serif{font-family:var(--font);}
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
  .accent{color:var(--gold);}

  /* Header */
  header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
    backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
  .nav{display:flex;align-items:center;justify-content:space-between;height:68px;}
  .brand{display:flex;align-items:center;gap:11px;font-family:var(--font);font-weight:700;font-size:19px;letter-spacing:.02em;color:var(--navy);}
  .brand img{height:42px;width:auto;display:block;}
  .brand .bt{line-height:1.2;}
  .brand small{display:block;font-family:var(--font);font-weight:400;font-size:10.5px;letter-spacing:.18em;color:var(--gold);}
  .nav-links{display:flex;gap:28px;font-size:14px;font-weight:500;}
  .nav-links a{color:var(--muted);transition:.2s;}
  .nav-links a:hover{color:var(--navy);}
  .nav-cta{background:var(--navy);color:#fff;padding:9px 18px;border-radius:999px;font-size:13px;font-weight:500;}
  .menu-btn{display:none;background:none;border:0;font-size:24px;color:var(--navy);cursor:pointer;}

  /* Hero */
  .hero{position:relative;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;overflow:hidden;}
  .hero::after{content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 80% 15%,rgba(184,146,74,.22),transparent 45%);}
  .hero-inner{position:relative;z-index:2;padding:90px 0 100px;display:flex;align-items:center;gap:52px;}
  .hero-logo{flex-shrink:0;}
  .hero-logo img{width:auto;height:188px;display:block;
    filter:drop-shadow(0 10px 28px rgba(0,0,0,.35));}
  .hero-text{flex:1;}
  .eyebrow{font-size:13px;letter-spacing:.28em;color:var(--gold-light);font-weight:500;margin-bottom:22px;}
  .hero h1{font-size:clamp(28px,4.6vw,48px);line-height:1.45;font-weight:700;letter-spacing:.01em;color:#fff;}
  .hero .latin{font-size:clamp(15px,2vw,19px);letter-spacing:.16em;color:#c8d2df;margin-top:22px;font-weight:400;}
  .hero p.lead{max-width:620px;margin-top:28px;color:#d6dde6;font-size:16px;}
  .hero-actions{display:flex;gap:16px;margin-top:40px;flex-wrap:wrap;}
  .btn{display:inline-block;padding:14px 30px;border-radius:999px;font-weight:600;font-size:14.5px;transition:.2s;cursor:pointer;}
  .btn-gold{background:var(--gold);color:#fff;}
  .btn-gold:hover{background:var(--gold-light);}
  .btn-ghost{border:1px solid rgba(255,255,255,.4);color:#fff;}
  .btn-ghost:hover{background:rgba(255,255,255,.1);}

  /* Sections */
  section{padding:92px 0;}
  .sec-soft{background:var(--bg-soft);}
  .sec-head{text-align:center;margin-bottom:56px;}
  .sec-head .kicker{font-size:12.5px;letter-spacing:.26em;color:var(--gold);font-weight:600;margin-bottom:14px;}
  .sec-head h2{font-size:clamp(24px,3.4vw,32px);color:var(--navy);font-weight:700;line-height:1.5;}
  .sec-head p{color:var(--muted);margin-top:16px;max-width:640px;margin-left:auto;margin-right:auto;}

  /* Philosophy statement */
  .creed{text-align:center;max-width:780px;margin:0 auto;}
  .creed .big{font-family:var(--font);font-size:clamp(20px,3vw,28px);line-height:1.95;color:var(--ink);font-weight:600;}
  .creed .big em{font-style:normal;color:var(--gold);}

  /* Name meaning - two cards */
  .duo{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
  .name-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:40px 34px;}
  .name-card .latin{font-family:var(--font);font-size:30px;color:var(--navy);font-weight:700;}
  .name-card .reading{font-size:13px;color:var(--gold);letter-spacing:.1em;margin:6px 0 18px;font-weight:600;}
  .name-card p{color:var(--muted);font-size:15px;}

  /* Vision - three points */
  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .vcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:36px 28px;transition:.25s;}
  .vcard:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(17,37,63,.09);}
  .vcard .num{font-family:var(--font);font-size:15px;color:var(--gold);font-weight:700;letter-spacing:.1em;}
  .vcard h3{font-size:19px;color:var(--navy);margin:14px 0 12px;font-weight:700;}
  .vcard p{color:var(--muted);font-size:14.5px;}

  /* Business list */
  .biz{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;}
  .biz-item{background:#fff;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:10px;padding:24px 24px;}
  .biz-item h4{font-size:17px;color:var(--navy);font-weight:700;margin-bottom:8px;}
  .biz-item p{font-size:13.5px;color:var(--muted);}

  /* Keywords */
  .keywords{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:820px;margin:0 auto;}
  .kw{border:1px solid rgba(255,255,255,.28);color:#e9eef4;padding:9px 18px;border-radius:999px;font-size:14px;}
  .kw.lead-kw{background:var(--gold);border-color:var(--gold);color:#fff;font-weight:600;}

  /* Company table */
  .info-table{max-width:760px;margin:0 auto;border-top:1px solid var(--line);}
  .info-row{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--line);}
  .info-row dt{padding:18px 12px;font-weight:700;color:var(--navy);font-size:14.5px;background:var(--bg-soft);}
  .info-row dd{padding:18px 20px;color:var(--ink);font-size:14.5px;}

  /* Contact */
  .contact{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;text-align:center;}
  .contact h2{color:#fff;}
  .contact p{color:#cfd8e2;max-width:560px;margin:18px auto 36px;}

  /* Footer */
  footer{background:#0d1c30;color:#9fb0c4;padding:44px 0;font-size:13px;}
  .foot-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
  .foot-brand{font-family:var(--font);color:#fff;font-size:16px;font-weight:600;}

  @media(max-width:768px){
    .nav-links{display:none;}
    .menu-btn{display:block;}
    .nav-links.open{display:flex;position:absolute;top:68px;left:0;right:0;background:#fff;
      flex-direction:column;padding:18px 24px;gap:18px;border-bottom:1px solid var(--line);}
    .nav-links.open .nav-cta{align-self:flex-start;}
    .duo,.grid3{grid-template-columns:1fr;}
    .info-row{grid-template-columns:120px 1fr;}
    section{padding:64px 0;}
    .hero-inner{padding:72px 0 78px;flex-direction:column;text-align:center;gap:28px;}
    .hero-logo img{height:138px;}
    .hero p.lead{margin-left:auto;margin-right:auto;}
    .hero-actions{justify-content:center;}
  }

/* =========================================================
   2) 追加：メタリックゴールド／セリフ体（名刺ブランド反映）
   ========================================================= */
:root{
  --serif:"Cormorant Garamond",serif;
  --gold-metal-hi:#e6cc86; --gold-metal:#c9a24b; --gold-metal-dp:#9c7628;
  --grad-gold:linear-gradient(160deg,var(--gold-metal-hi) 0%,var(--gold-metal) 45%,var(--gold-metal-dp) 100%);
}

/* =========================================================
   3) 追加：実績・グループ経営セクション（#track）
   ========================================================= */
#track .rule{width:52px;height:3px;background:var(--grad-gold);margin:18px auto 0;border-radius:2px;}
#track .sec-head .kicker{font-family:var(--serif);font-size:17px;letter-spacing:.26em;color:var(--gold-metal-dp);font-weight:700;text-transform:uppercase;margin-bottom:12px;}
#track .sec-head p em{font-style:normal;color:var(--gold-metal-dp);font-weight:700;}
#track .tl-title{text-align:center;font-family:var(--serif);font-size:19px;letter-spacing:.16em;color:var(--gold-metal-dp);font-weight:700;margin-bottom:34px;text-transform:uppercase;}
#track .tl-title span{font-family:var(--font);font-size:13px;color:var(--muted);letter-spacing:.1em;}
#track .timeline{max-width:760px;margin:0 auto 74px;position:relative;padding-left:40px;}
#track .timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:3px;background:var(--grad-gold);border-radius:2px;}
#track .tl-item{position:relative;padding:0 0 34px 26px;}
#track .tl-item:last-child{padding-bottom:0;}
#track .tl-item::before{content:"";position:absolute;left:-37px;top:3px;width:21px;height:21px;border-radius:50%;background:#fff;border:3px solid var(--gold-metal);box-shadow:0 0 0 4px var(--bg-soft);}
#track .tl-item.now::before{background:var(--grad-gold);border-color:var(--gold-metal-hi);}
#track .tl-year{font-family:var(--serif);font-size:20px;font-weight:700;color:var(--navy);letter-spacing:.04em;}
#track .tl-year small{font-size:13px;color:var(--gold-metal-dp);font-family:var(--font);font-weight:700;letter-spacing:.08em;margin-left:2px;}
#track .tl-item h4{font-size:16.5px;color:var(--navy);margin:4px 0 6px;font-weight:700;}
#track .tl-item p{color:var(--muted);font-size:14px;}
#track .group-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
#track .gcard{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px 32px 32px;transition:.25s;display:flex;flex-direction:column;overflow:hidden;}
#track .gcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--grad-gold);}
#track .gcard:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(17,37,63,.10);}
#track .gcard-top{display:flex;align-items:center;gap:16px;margin-bottom:18px;}
#track .gmark{flex-shrink:0;width:60px;height:60px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:24px;color:#fff;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);}
#track .gmark.g2{color:#3a2c0c;background:var(--grad-gold);}
#track .gname{font-size:20px;color:var(--navy);font-weight:700;line-height:1.4;}
#track .glatin{font-family:var(--serif);font-size:14px;color:var(--gold-metal-dp);letter-spacing:.14em;font-weight:600;margin-top:1px;text-transform:uppercase;}
#track .badge{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--gold-metal-dp);border:1px solid var(--gold-metal);border-radius:999px;padding:4px 12px;margin-bottom:16px;align-self:flex-start;}
#track .badge.solid{background:var(--grad-gold);color:#3a2c0c;border-color:transparent;}
#track .gdesc{color:var(--muted);font-size:14.5px;margin-bottom:20px;}
#track .tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;}
#track .tag{background:var(--bg-soft);border:1px solid var(--line);color:var(--navy);font-size:12.5px;font-weight:600;border-radius:8px;padding:6px 12px;}
#track .tag.gold{border-left:3px solid var(--gold-metal);}
#track .store-line{font-size:13px;color:var(--muted);margin:2px 0 14px;}
#track .store-line b{color:var(--navy);}
@media(max-width:820px){ #track .group-grid{grid-template-columns:1fr;} }

/* =========================================================
   4) ブロックエディタ由来のラッパを現行デザインに馴染ませる
   ========================================================= */
.entry-content > .wp-block-group{margin:0;}
.entry-content p{margin:0;}
.vp-page .alignwide,.vp-page .alignfull{max-width:none;}

/* =========================================================
   5) ブロック(コアブロック)→現行デザイン 橋渡し
   ========================================================= */
.vp-sec{padding:92px 0;}                 /* 旧 section{padding} の代替 */
#track .sec-head::after{content:"";display:block;width:52px;height:3px;background:var(--grad-gold);margin:18px auto 0;border-radius:2px;}
/* ボタン（コアbuttons） */
.hero-actions .wp-block-button__link{display:inline-block;padding:14px 30px;border-radius:999px;font-weight:600;font-size:14.5px;text-decoration:none;transition:.2s;}
.hero-actions .is-gold .wp-block-button__link{background:var(--gold);color:#fff;}
.hero-actions .is-gold .wp-block-button__link:hover{background:var(--gold-light);}
.hero-actions .is-ghost .wp-block-button__link{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;}
.hero-actions .is-ghost .wp-block-button__link:hover{background:rgba(255,255,255,.1);}
.contact .wp-block-button{display:inline-block;}
.contact .wp-block-button__link{display:inline-block;padding:14px 30px;border-radius:999px;font-weight:600;font-size:14.5px;background:var(--gold);color:#fff;text-decoration:none;}
.contact .wp-block-button__link:hover{background:var(--gold-light);}
/* 会社概要（コアtable） */
.vp-info{max-width:760px;margin:0 auto;border-collapse:collapse;width:100%;}
.vp-info td{border-bottom:1px solid var(--line);padding:0;vertical-align:top;}
.vp-info tr td:first-child{width:200px;padding:18px 12px;font-weight:700;color:var(--navy);font-size:14.5px;background:var(--bg-soft);}
.vp-info tr td:last-child{padding:18px 20px;color:var(--ink);font-size:14.5px;}
.vp-info thead,.vp-info figcaption{display:none;}
.vp-info tr:first-child td{border-top:1px solid var(--line);}
/* コアブロックの余白リセット（デザイン維持） */
.entry-content .wp-block-group{margin-top:0;}
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4,.entry-content p{margin:0;}
.entry-content .wp-block-buttons{margin:0;}
.hero-actions.wp-block-buttons{display:flex;gap:16px;margin-top:40px;flex-wrap:wrap;}
/* 補助 */
.creed .creed-sub{color:var(--muted);margin-top:28px;}
.sec-head.no-mb{margin-bottom:0;}
.contact .kicker{color:var(--gold-light);}
.entry-content figure{margin:0;}
.entry-content figure.wp-block-image{display:flex;justify-content:center;}

/* =========================================================
   6) 画像バランス
   ========================================================= */
.hero-emblem{margin:0;}
.hero-logo img{height:184px;width:auto;max-width:100%;}
#track .gcard .wp-block-group{margin:0;}

/* =========================================================
   7) レスポンシブ（ブロック版クラスに対応）
   ========================================================= */
@media(max-width:900px){
  #track .group-grid{grid-template-columns:1fr;}
}
@media(max-width:768px){
  .vp-sec{padding:60px 0;}
  .sec-head{margin-bottom:40px;}
  .hero-logo img{height:150px;}
  .vp-info tr td:first-child{width:130px;padding:14px 10px;font-size:13px;}
  .vp-info tr td:last-child{padding:14px 12px;font-size:13.5px;}
  #track .timeline{max-width:100%;}
  #track .tl-title{font-size:16px;}
  .gcard{padding:28px 24px;}
}
@media(max-width:560px){
  .vp-sec{padding:48px 0;}
  .hero-logo img{height:120px;}
  .hero .eyebrow{margin-bottom:14px;}
  .biz{grid-template-columns:1fr;}
  .name-card{padding:30px 24px;}
  /* 会社概要：縦積みで読みやすく */
  .vp-info tr{display:block;border-bottom:1px solid var(--line);}
  .vp-info td{display:block;width:auto !important;border:none;}
  .vp-info tr td:first-child{background:transparent;color:var(--gold-metal-dp);padding:12px 4px 0;font-size:12.5px;letter-spacing:.04em;}
  .vp-info tr td:last-child{padding:2px 4px 12px;}
  #track .gcard-top{gap:12px;}
  #track .gmark{width:52px;height:52px;font-size:20px;}
  #track .tl-year{font-size:18px;}
}

/* =========================================================
   8) 微調整（2026/8/1 追加要望）
   ========================================================= */
/* 金色の見出し(kicker)を「Track Record & Group」と同じ書体・サイズに統一 */
.sec-head .kicker{font-family:var(--serif);font-size:17px;letter-spacing:.26em;color:var(--gold-metal-dp);font-weight:700;text-transform:uppercase;margin-bottom:12px;}
.contact .kicker{color:var(--gold-light);}

/* 会社概要：行の高さを圧縮 */
.vp-info tr td:first-child{padding:11px 12px;}
.vp-info tr td:last-child{padding:11px 20px;}

/* 事業内容：3＋2の中央揃えで均整に */
.biz{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;}
.biz-item{flex:0 1 calc(33.333% - 12px);}
@media(max-width:768px){ .biz-item{flex:0 1 calc(50% - 9px);} }
@media(max-width:560px){ .biz-item{flex:0 1 100%;} }

/* グループカード：公式サイト誘導リンク＋バッジ位置＋タグ間隔 */
#track .tag-row{margin-top:18px;}
#track .badge{margin-top:8px;}
#track .gsite{margin-top:16px;}
#track .gsite a{display:inline-block;color:var(--gold-metal-dp);font-weight:700;font-size:13px;text-decoration:none;border-bottom:1px solid var(--gold-metal);padding-bottom:1px;transition:.2s;}
#track .gsite a:hover{color:var(--gold-metal);border-color:var(--gold-metal-hi);}

/* ヒーロー画像を中央に揃える */
.hero-inner{align-items:center;}
.hero-logo{display:flex;align-items:center;justify-content:center;}
