/*
Theme Name: UVJ
Description: Unicorn Valley Japan コーポレートサイト用ブロックテーマ（STUDIO版デザインを再現）
Version: 1.0.0
Requires at least: 6.6
Text Domain: uvj
*/

:root {
	--uvj-navy: #101d3a;
	--uvj-navy2: #1b2c5c;
	--uvj-blue: #3157e5;
	--uvj-gold: #c8a96b;
	--uvj-text: #2f3542;
	--uvj-muted: #6b7686;
	--uvj-line: #e3e8f2;
	--uvj-soft: #f5f7fc;
	--uvj-pill: #eef2fd;
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
.material-symbols-outlined { font-family: "Material Symbols Outlined"; font-weight: normal; font-style: normal; line-height: 1; vertical-align: middle; font-size: 1.25em; }

/* ---------- Header ---------- */
.uvj-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--uvj-line); }
.uvj-header__inner { max-width: 1280px; margin: 0 auto; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.uvj-logo { display: flex; align-items: center; gap: 6px; text-decoration: none; color: var(--uvj-navy); }
.uvj-logo img { width: 38px; height: 38px; object-fit: contain; }
.uvj-logo span { font-family: "Cinzel", serif; font-weight: 600; font-size: 17px; letter-spacing: .06em; }
.uvj-header .wp-block-navigation { font-size: 14px; font-weight: 500; gap: 22px; }
.uvj-header .wp-block-navigation a { color: var(--uvj-navy); text-decoration: none; }
.uvj-header .wp-block-navigation a:hover { color: var(--uvj-blue); }
.uvj-header .uvj-cta a { background: var(--uvj-gold); color: var(--uvj-navy) !important; padding: 10px 20px; border-radius: 4px; font-weight: 700; }
.uvj-header .uvj-cta a:hover { opacity: .85; }

/* ---------- Common ---------- */
.uvj-sec { padding: 110px 20px; }
.uvj-sec.is-soft { background: var(--uvj-soft); }
.uvj-sec.is-tight { padding-top: 70px; padding-bottom: 70px; }
.uvj-eyebrow { display: inline-block; margin-top: 0 !important; margin-bottom: 18px !important; padding: 4px 14px; border-radius: 999px; background: var(--uvj-pill); color: var(--uvj-blue); font-family: "Inter", sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .16em; }
.is-soft .uvj-eyebrow { background: #fff; }
.uvj-h2 { color: var(--uvj-navy); font-size: clamp(26px, 3.2vw, 34px); font-weight: 700; line-height: 1.45; margin: 0 0 20px; }
.uvj-lead { color: var(--uvj-text); font-size: 15px; line-height: 2; }
.uvj-muted { color: var(--uvj-muted); font-size: 13px; }
.uvj-center { text-align: center; }
.uvj-link a, a.uvj-link { color: var(--uvj-blue); font-weight: 700; font-size: 14px; text-decoration: none; }
.uvj-link a::after { content: " →"; }
.uvj-bar { border-left: 3px solid var(--uvj-gold); padding-left: 24px; }

/* Buttons */
.wp-block-button.is-style-gold .wp-block-button__link { background: var(--uvj-gold); color: var(--uvj-navy); border-radius: 4px; font-weight: 700; font-size: 14px; padding: 14px 30px; }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: #fff; border: 1px solid #fff; border-radius: 4px; font-weight: 700; font-size: 14px; padding: 13px 30px; }
.wp-block-button.is-style-navy .wp-block-button__link { background: var(--uvj-navy); color: #fff; border-radius: 4px; font-weight: 700; font-size: 14px; padding: 14px 30px; }
.wp-block-button .wp-block-button__link:hover { opacity: .85; }
.wp-block-button.has-arrow .wp-block-button__link::after { content: "  →"; }

/* ---------- Home hero ---------- */
.uvj-hero { min-height: calc(100vh - 70px); display: flex; align-items: center; padding: 80px 20px; color: #fff;
	background: linear-gradient(90deg, rgba(16,29,58,.95) 0%, rgba(16,29,58,.75) 45%, rgba(16,29,58,.25) 100%),
	url("/wp-content/uploads/2026/10/s-1920x1080_v-frms_7bef408d-1ce2-418c-ae4b-06d120497322.webp") center/cover no-repeat; }
.uvj-hero > * { width: 100%; }
.uvj-hero .uvj-badge { display: inline-block; border: 1px solid var(--uvj-gold); color: var(--uvj-gold); border-radius: 999px; padding: 4px 14px; font-family: "Inter", sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .16em; margin-bottom: 26px; }
.uvj-hero h1 { color: #fff; font-size: clamp(36px, 5vw, 56px); line-height: 1.4; margin: 0 0 28px; }
.uvj-hero p { color: #fff; font-size: 15px; line-height: 1.9; }

/* ---------- Page hero (lower pages) ---------- */
.uvj-pagehero { background: var(--uvj-navy); background-image: linear-gradient(120deg, var(--uvj-navy) 40%, var(--uvj-navy2)); color: #fff; padding: 90px 20px 80px; }
.uvj-pagehero .uvj-crumb { font-size: 12px; color: #c9d2e4; margin-bottom: 30px; }
.uvj-pagehero .uvj-crumb a { color: #c9d2e4; text-decoration: none; }
.uvj-pagehero .uvj-en { color: var(--uvj-gold); font-family: "Inter", sans-serif; font-weight: 600; letter-spacing: .2em; font-size: 13px; margin: 0 0 10px; }
.uvj-pagehero h1 { color: #fff; font-size: clamp(30px, 4vw, 42px); margin: 0 0 20px; }
.uvj-pagehero p { color: #dfe5f1; line-height: 1.9; }
.uvj-anchors { gap: 12px !important; margin-top: 30px; }
.uvj-anchors p { margin: 0; }
.uvj-anchors a { display: inline-block; border: 1px solid rgba(255,255,255,.35); color: #fff; padding: 8px 18px; border-radius: 999px; font-size: 13px; text-decoration: none; }
.uvj-anchors a::after { content: " ↓"; }

/* ---------- Cards ---------- */
.uvj-cards { gap: 16px !important; }
.uvj-card { background: #fff; border: 1px solid var(--uvj-line); border-top: 3px solid var(--uvj-blue); border-radius: 6px; padding: 26px 28px !important; height: 100%; }
.uvj-card.is-gold { border-top-color: var(--uvj-gold); }
.uvj-card .uvj-num, .uvj-profile .uvj-num { color: var(--uvj-blue); font-family: "Inter", sans-serif; font-weight: 600; font-size: 12px; margin: 0 0 8px; }
.uvj-card h3 { color: var(--uvj-navy); font-size: 18px; margin: 0 0 10px; }
.uvj-card p { font-size: 13px; color: var(--uvj-muted); line-height: 1.8; }
a.uvj-cardlink { text-decoration: none; }

/* Numbered list (strengths) */
.uvj-numlist .uvj-item { border-top: 1px solid var(--uvj-line); padding: 28px 0 !important; gap: 28px !important; }
.uvj-numlist .uvj-item:last-child { border-bottom: 1px solid var(--uvj-line); }
.uvj-bignum { color: var(--uvj-blue); font-family: "Inter", sans-serif; font-weight: 600; font-size: 40px; line-height: 1; margin: 0; }
.uvj-item h3 { color: var(--uvj-navy); font-size: 18px; margin: 0 0 8px; }
.uvj-item p { font-size: 14px; line-height: 1.9; }

/* News list */
.uvj-news .wp-block-post { border-top: 1px solid var(--uvj-line); padding: 20px 0; display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.uvj-news .wp-block-post:last-child { border-bottom: 1px solid var(--uvj-line); }
.uvj-news .wp-block-post-date { color: var(--uvj-muted); font-family: "Inter", sans-serif; font-size: 13px; min-width: 90px; }
.uvj-news .taxonomy-category a { background: var(--uvj-soft); color: var(--uvj-muted); font-size: 11px; padding: 3px 10px; border-radius: 999px; text-decoration: none; }
.uvj-news .wp-block-post-title { font-size: 15px; font-weight: 500; margin: 0; }
.uvj-news .wp-block-post-title a { color: var(--uvj-navy); text-decoration: none; }

/* Message */
.uvj-msgcard { background: linear-gradient(120deg, var(--uvj-navy), var(--uvj-navy2)); border-radius: 8px; min-height: 180px; display: flex; flex-direction: column; justify-content: center; padding: 30px 34px !important; }
.uvj-msgcard p { color: #fff; font-family: "Cinzel", serif; font-size: 30px; letter-spacing: .08em; margin: 0; }
.uvj-msgcard p.uvj-star { color: var(--uvj-gold); font-size: 18px; }

/* Company profile card */
.uvj-profile { background: #fff; border: 1px solid var(--uvj-line); border-radius: 8px; padding: 26px 28px !important; }

/* Contact CTA */
.uvj-cta-sec { background: linear-gradient(120deg, var(--uvj-navy) 40%, var(--uvj-navy2)); color: #fff; padding: 100px 20px; text-align: center; }
.uvj-cta-sec .uvj-badge { display: inline-block; border: 1px solid var(--uvj-gold); color: var(--uvj-gold); border-radius: 999px; padding: 3px 14px; font-family: "Inter", sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .16em; }
.uvj-cta-sec h2 { color: #fff; font-size: clamp(24px, 3vw, 30px); margin: 20px 0; }
.uvj-cta-sec p { color: #dfe5f1; line-height: 1.9; }

/* Values / issues / approach */
.uvj-icon { color: var(--uvj-blue); }
.uvj-icon .material-symbols-outlined { font-size: 32px; }
.uvj-value h3 { color: var(--uvj-navy); font-size: 20px; margin: 6px 0 10px; }
.uvj-value .uvj-sub { color: var(--uvj-navy); font-weight: 700; font-size: 14px; }
.uvj-approach .uvj-en { color: var(--uvj-blue); font-family: "Inter", sans-serif; font-weight: 600; letter-spacing: .14em; font-size: 12px; margin: 0 0 6px; }
.uvj-approach h3 { color: var(--uvj-navy); font-size: 18px; margin: 0 0 10px; }
.uvj-vision { background: var(--uvj-navy); color: #fff; border-radius: 8px; padding: 50px 44px !important; }
.uvj-vision h3, .uvj-vision h2 { color: #fff; }
.uvj-vision p { color: #dfe5f1; }
.uvj-chips { gap: 10px !important; }
.uvj-chips p { margin: 0; border: 1px solid var(--uvj-gold); color: var(--uvj-gold); padding: 6px 18px; border-radius: 999px; font-size: 14px; }

/* Flow (business) */
.uvj-flow { gap: 10px !important; }
.uvj-flow .wp-block-column { background: #fff; border: 1px solid var(--uvj-line); border-radius: 6px; padding: 18px 14px !important; text-align: center; }
.uvj-flow .uvj-step { color: var(--uvj-blue); font-family: "Inter", sans-serif; font-weight: 600; font-size: 11px; letter-spacing: .12em; margin: 0; }
.uvj-flow h3 { font-size: 15px; color: var(--uvj-navy); margin: 6px 0; }
.uvj-flow p { font-size: 12px; color: var(--uvj-muted); margin: 0; }

/* Business detail */
.uvj-biz { border-top: 1px solid var(--uvj-line); padding: 40px 0 !important; gap: 40px !important; }
.uvj-biz .uvj-bignum { font-size: 48px; }
.uvj-biz h3 { color: var(--uvj-navy); font-size: 22px; margin: 0 0 6px; }
.uvj-biz .uvj-sub { color: var(--uvj-blue); font-weight: 700; }

/* Tables */
.uvj-table table { border-collapse: collapse; width: 100%; font-size: 14px; }
.uvj-table td { border: 0; border-bottom: 1px solid var(--uvj-line); padding: 20px 12px; vertical-align: top; line-height: 1.9; }
.uvj-table tr td:first-child { width: 28%; color: var(--uvj-navy); font-weight: 700; }
.uvj-table tr:first-child td { border-top: 1px solid var(--uvj-line); }

/* Contact categories */
.uvj-cat { background: #fff; border: 1px solid var(--uvj-line); border-radius: 6px; padding: 22px 24px !important; height: 100%; }
.uvj-cat h3 { color: var(--uvj-navy); font-size: 16px; margin: 8px 0; }
.uvj-cat p { font-size: 13px; color: var(--uvj-muted); line-height: 1.8; }

/* Contact form 7 */
.wpcf7 { max-width: 760px; margin: 0 auto; }
.wpcf7 label { display: block; font-weight: 700; color: var(--uvj-navy); font-size: 14px; }
.wpcf7 .req, .wpcf7 .opt { display: inline-block; margin-left: 8px; font-size: 11px; padding: 1px 8px; border-radius: 3px; vertical-align: middle; }
.wpcf7 .req { background: var(--uvj-gold); color: var(--uvj-navy); }
.wpcf7 .opt { background: var(--uvj-line); color: var(--uvj-muted); }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 select, .wpcf7 textarea { width: 100%; box-sizing: border-box; margin-top: 8px; padding: 12px 14px; border: 1px solid #c9d2e4; border-radius: 4px; font: inherit; font-weight: 400; background: #fff; }
.wpcf7 p { margin: 0 0 22px; }
.wpcf7 input[type=submit] { background: var(--uvj-gold); color: var(--uvj-navy); border: 0; border-radius: 4px; padding: 15px 60px; font-weight: 700; font-size: 15px; cursor: pointer; display: block; margin: 10px auto 0; }

/* Legal pages */
.uvj-legal { max-width: 860px; }
.uvj-legal h2 { color: var(--uvj-navy); font-size: 20px; margin: 48px 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--uvj-line); }
.uvj-legal h3 { color: var(--uvj-navy); font-size: 16px; margin: 30px 0 10px; }
.uvj-legal p { font-size: 14px; line-height: 2; margin: 0 0 10px; }

/* Thanks */
.uvj-thanks { text-align: center; padding: 140px 20px; }
.uvj-thanks .material-symbols-outlined { font-size: 56px; color: var(--uvj-gold); }

/* ---------- Footer ---------- */
.uvj-footer { background: var(--uvj-navy); color: #c9d2e4; padding: 60px 20px 30px; border-top: 1px solid rgba(255,255,255,.08); }
.uvj-footer a { color: #c9d2e4; text-decoration: none; font-size: 13px; }
.uvj-footer a:hover { color: #fff; }
.uvj-footer .uvj-flogo { font-family: "Cinzel", serif; color: #fff; font-size: 18px; letter-spacing: .08em; margin: 0 0 14px; }
.uvj-footer .uvj-flogo::before { content: "✦ "; color: var(--uvj-gold); }
.uvj-footer .uvj-fhead { color: var(--uvj-gold); font-size: 12px; font-weight: 700; margin: 0 0 10px; }
.uvj-footer .uvj-fcol p { margin: 0 0 8px; }
.uvj-footer .uvj-legal-links { border-top: 1px solid rgba(255,255,255,.12); margin-top: 40px; padding-top: 24px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; text-align: center; font-size: 12px; }
.uvj-footer .uvj-legal-links a { margin: 0; font-size: 12px; white-space: nowrap; }
.uvj-footer .uvj-copy { text-align: center; font-size: 12px; font-family: "Inter", sans-serif; margin-top: 8px; }

/* ---------- Responsive ---------- */
@media (max-width: 781px) {
	.uvj-sec { padding: 70px 20px; }
	.uvj-hero { min-height: 80vh; background-position: 65% center; }
	.uvj-logo span { font-size: 14px; }
	.uvj-table tr td:first-child { width: 34%; }
	.uvj-bar { padding-left: 16px; }
}

.uvj-table th { text-align: left; background: var(--uvj-navy); color: #fff; padding: 14px 12px; font-size: 13px; border: 0; }
.uvj-table td a { font-weight: 700; text-decoration: none; }
.uvj-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--uvj-navy); }
.uvj-header .wp-block-navigation__responsive-container.is-menu-open a { color: #fff; font-size: 18px; }

.uvj-card h3 a, .uvj-cat h3 a, .uvj-profile h3 a { color: var(--uvj-navy); text-decoration: none; }
.uvj-card h3 a:hover, .uvj-cat h3 a:hover, .uvj-profile h3 a:hover { color: var(--uvj-blue); }
.uvj-bignum { flex-shrink: 0; min-width: 2.2em; white-space: nowrap; }
.uvj-item > .wp-block-group, .uvj-biz > .wp-block-group { flex: 1 1 auto; min-width: 0; }
.uvj-item .uvj-bignum, .uvj-biz .uvj-bignum { font-size: 40px; color: var(--uvj-blue); line-height: 1; }
.uvj-biz .uvj-bignum { font-size: 48px; }

/* セクション同士の余白（ブロック間マージン）を消して、背景色をつなげる */
.wp-site-blocks > *, main.wp-block-post-content > * { margin-block-start: 0 !important; margin-block-end: 0; }

/* ラベル（ABOUT US など）を、セクションの本文の左端にそろえる */
.is-layout-constrained > .uvj-eyebrow { display: block; width: fit-content; margin-left: max(0px, calc((100% - var(--uvj-cs, 960px)) / 2)) !important; margin-right: auto !important; }
.uvj-wide { --uvj-cs: 1100px; }

/* 「Unicorn Valley Japanが」を途中で改行しない。2列の狭い欄では文字を少し小さくして1行に収める */
.uvj-nowrap { white-space: nowrap; }
.wp-block-column .uvj-h2:has(.uvj-nowrap) { font-size: clamp(22px, 2.4vw, 30px); }
