/*
Theme Name: TAMURA GYM
Author: TAMURA GYM
Description: TAMURA GYM（タムラジム）用の1ページ型WordPressテーマ。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: tamura-gym
*/
:root { --red:#e92b2b; --gold:#d9b95f; --ink:#111214; --paper:#f2f0ea; --line:#cbc8c0; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Helvetica Neue","Noto Sans JP",Arial,sans-serif; overflow-x:hidden; }
::selection { background:var(--red); color:#fff; }
a { color:inherit; text-decoration:none; }
.header { height:86px; padding:0 4vw; background:rgba(255,255,255,.96); backdrop-filter:blur(12px); display:flex; align-items:center; justify-content:space-between; position:relative; z-index:5; box-shadow:0 1px 0 rgba(0,0,0,.08); }
.header::after { content:""; position:absolute; left:0; bottom:0; width:0; height:3px; background:linear-gradient(90deg,var(--red),var(--gold)); animation:header-line 1.2s .2s ease forwards; }
.brand { display:flex; align-items:center; gap:12px; font-weight:900; font-size:13px; line-height:1.05; letter-spacing:.04em; }
.brand-mark { width:42px; height:42px; background:var(--red); color:#fff; display:grid; place-items:center; font:italic 900 26px/1 Arial; transform:skew(-7deg); }
.brand-logo { width:52px; height:52px; object-fit:contain; }
.brand small { font-size:10px; letter-spacing:.12em; }
nav { display:flex; gap:2.5vw; font-size:12px; font-weight:700; }
nav a { transition:.2s; } nav a:hover { color:var(--red); }
.header-cta { background:var(--ink); color:#fff; padding:16px 20px; font-size:12px; font-weight:800; }
.header-cta span,.btn span { margin-left:28px; }
.hero { min-height:690px; height:calc(100vh - 86px); position:relative; display:flex; align-items:center; overflow:hidden; isolation:isolate; color:#fff; background:url("https://images.unsplash.com/photo-1549719386-74dfcbf7dbed?auto=format&fit=crop&w=2000&q=88") center 38%/cover; animation:hero-focus 1.6s ease both; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,9,11,.94) 0%,rgba(8,9,11,.58) 48%,rgba(8,9,11,.08) 100%); }
.hero-flash { position:absolute; top:-35%; left:-45%; width:35%; height:180%; transform:rotate(15deg); background:linear-gradient(90deg,transparent,rgba(233,43,43,.48),rgba(255,255,255,.12),transparent); filter:blur(3px); animation:slash-flash 7s 1.8s cubic-bezier(.7,0,.2,1) infinite; pointer-events:none; }
.hero-content { position:relative; z-index:1; margin-left:8vw; max-width:780px; }
.eyebrow { display:flex; align-items:center; gap:12px; font-size:11px; letter-spacing:.28em; font-weight:800; }
.eyebrow span { width:38px; height:2px; background:var(--red); }
.hero h1,.trial h2 { margin:26px 0 20px; font-size:clamp(52px,7.5vw,112px); line-height:.93; letter-spacing:-.055em; font-weight:900; }.hero h1 span { display:inline-block; animation:title-in .8s .15s both; }.hero h1 em { display:inline-block; animation:title-in .8s .32s both; text-shadow:0 0 35px rgba(233,43,43,.25); }
.hero h1 em,.trial h2 em { color:var(--red); font-style:normal; }
.hero-copy { font-size:17px; line-height:1.9; color:#ddd; }
.hero-actions { display:flex; align-items:center; gap:34px; margin-top:38px; }
.btn { display:inline-flex; align-items:center; justify-content:space-between; min-width:250px; padding:19px 22px; font-size:13px; font-weight:900; transition:.2s; position:relative; overflow:hidden; }.btn::before { content:""; position:absolute; inset:0; transform:translateX(-120%) skewX(-20deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent); transition:transform .55s ease; }.btn:hover::before { transform:translateX(120%) skewX(-20deg); }
.btn:hover { transform:translateY(-3px); box-shadow:0 14px 28px rgba(0,0,0,.18); }
.btn-red { background:var(--red); color:#fff; }.text-link { font-size:12px; font-weight:800; border-bottom:1px solid #777; padding:12px 0; }
.text-link span { margin-left:20px; }.hero-note { position:absolute; z-index:1; right:4vw; bottom:40px; display:grid; grid-template-columns:auto 45px auto; align-items:center; gap:12px; font-size:10px; font-weight:800; letter-spacing:.12em; }
.hero-note strong { font-size:23px; }.hero-note span { height:1px; background:#fff; }
.ticker { background:linear-gradient(110deg,#b30e14,var(--red) 45%,#ff4d3b,var(--red)); color:#fff; overflow:hidden; white-space:nowrap; padding:15px 0; font-size:12px; font-weight:900; letter-spacing:.2em; box-shadow:0 8px 30px rgba(233,43,43,.25); }
.ticker div { width:max-content; animation:ticker 22s linear infinite; }.ticker b { margin:0 34px; color:#111; }
@keyframes ticker { to { transform:translateX(-35%); } }
@keyframes header-line { to { width:100%; } }
@keyframes hero-focus { from { background-size:auto 112%; } to { background-size:auto 100%; } }
@keyframes title-in { from { opacity:0; transform:translateY(38px) skewY(3deg); } to { opacity:1; transform:none; } }
@keyframes slash-flash { 0%,72% { left:-45%; opacity:0; } 76% { opacity:1; } 88% { left:125%; opacity:.8; } 89%,100% { left:125%; opacity:0; } }
.section { padding:120px 8vw; }.section-index { font:800 10px/1 Arial; letter-spacing:.2em; color:#777; position:relative; padding-left:42px; }.section-index::before { content:""; position:absolute; left:0; top:4px; width:30px; height:2px; background:linear-gradient(90deg,var(--red),var(--gold)); }
.about { display:grid; grid-template-columns:12% 44% 44%; min-height:700px; }
.kicker { color:var(--red); font-size:12px; font-weight:900; letter-spacing:.12em; }
.about h2,.price h2 { font-size:clamp(38px,4.4vw,66px); line-height:1.18; margin:18px 0 28px; letter-spacing:-.04em; }
.body-copy,.price-title>p:last-child { color:#666; line-height:2; font-size:14px; max-width:570px; }
.stats { display:flex; gap:42px; margin-top:50px; padding-top:32px; border-top:1px solid var(--line); }
.stats div { display:flex; flex-direction:column; gap:8px; }.stats strong { font-size:36px; }.stats small { font-size:15px; }.stats span { font-size:10px; color:#777; }
.about-image { margin-left:50px; min-height:500px; background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.8)),url("assets/gym-kids.jpg") center/cover; position:relative; }
.about-image span { position:absolute; bottom:26px; left:26px; color:#fff; font-size:28px; font-weight:900; line-height:.88; font-style:italic; }
.program { background:var(--ink); color:#fff; display:grid; grid-template-columns:12% 34% 54%; }
.light { color:#999; }.program-heading h2 { font-size:clamp(54px,6.5vw,94px); line-height:.84; margin:20px 0; letter-spacing:-.06em; }.program-heading i { color:var(--red); }
.red { color:var(--red); }.program-list { border-top:1px solid #3b3c3e; }
.program-card { display:grid; grid-template-columns:52px 1fr 45px; gap:18px; padding:30px 0; border-bottom:1px solid #3b3c3e; transition:.25s; }
.program-card:hover { padding-left:12px; background:linear-gradient(90deg,#17181a,#241416); border-color:var(--red); }.program-no,.program-en { font-size:10px; color:#888; letter-spacing:.15em; }.program-card h3 { margin:7px 0 10px; font-size:21px; }.program-card p:last-child { margin:0; color:#aaa; line-height:1.75; font-size:12px; }.program-card>a { width:42px; height:42px; border:1px solid #555; display:grid; place-items:center; transition:.25s; }.program-card:hover>a { background:var(--red); border-color:var(--red); transform:rotate(8deg); }
.gallery { background:#fff; }.gallery-heading { display:grid; grid-template-columns:18% 46% 36%; align-items:end; margin-bottom:48px; }.gallery-heading h2 { margin:12px 0 0; font-size:clamp(42px,5vw,72px); line-height:.9; letter-spacing:-.05em; }.gallery-heading>p { color:#666; font-size:13px; line-height:1.9; padding-left:4vw; }.gallery-grid { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; gap:14px; height:680px; }.gallery-grid figure { margin:0; position:relative; overflow:hidden; background:#111; }.gallery-main { grid-row:1/3; }.gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease,filter .55s ease; }.gallery-grid figure::after { content:""; position:absolute; inset:0; background:linear-gradient(120deg,transparent 55%,rgba(233,43,43,.35)); opacity:0; transition:.4s; }.gallery-grid figure:hover img { transform:scale(1.035); filter:contrast(1.08); }.gallery-grid figure:hover::after { opacity:1; }.gallery-grid figcaption { position:absolute; z-index:2; left:18px; bottom:16px; background:var(--red); color:#fff; padding:8px 11px; font-size:9px; font-weight:900; letter-spacing:.14em; }
.video-section { background:#111214; color:#fff; display:grid; grid-template-columns:32% 68%; gap:5vw; }.video-copy h2 { font-size:clamp(40px,4.8vw,68px); line-height:1.02; margin:18px 0 26px; letter-spacing:-.05em; }.video-copy>p:last-child { color:#aaa; line-height:1.9; font-size:13px; }.video-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.video-frame { position:relative; aspect-ratio:16/9; overflow:hidden; background:#050505; border:1px solid #333; }.video-frame::after { content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(217,185,95,.16); }.video-frame iframe { width:100%; height:100%; border:0; }.video-grid>div>p { color:#777; font-size:9px; letter-spacing:.15em; font-weight:800; }
.price { display:grid; grid-template-columns:36% 32% 32%; gap:0; }.price-title { padding-right:5vw; }.price-box { background:var(--red); color:#fff; padding:34px; align-self:start; }.entry-fee { display:flex; align-items:end; justify-content:space-between; padding-bottom:22px; border-bottom:1px solid rgba(255,255,255,.45); }.entry-fee span { font-size:11px; font-weight:900; letter-spacing:.12em; }.entry-fee strong { font-size:32px; }.plan-list>div { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.45); }.plan-list span { font-size:12px; font-weight:800; }.plan-list small { display:block; margin-top:5px; font-size:9px; font-weight:500; opacity:.8; }.plan-list strong { white-space:nowrap; font-size:25px; }.btn-dark { margin-top:25px; background:#111; color:#fff; width:100%; }.hours { padding:24px 30px; border:1px solid var(--line); align-self:start; }.hours div { padding:16px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:6px; }.hours div:last-child { border:none; }.hours span { font-size:10px; color:#777; font-weight:800; }.hours strong { font-size:14px; }.hours em { color:#777; font-size:10px; font-style:normal; }
.trial { padding:100px 8vw; background:linear-gradient(90deg,rgba(8,9,11,.93),rgba(8,9,11,.7)),url("https://images.unsplash.com/photo-1517438322307-e67111335449?auto=format&fit=crop&w=2000&q=85") center/cover; color:#fff; display:flex; justify-content:space-between; align-items:end; }.trial h2 { font-size:clamp(44px,5.7vw,82px); }.trial-card { width:360px; }.trial-card p { color:#ccc; font-size:13px; line-height:1.9; }.btn-white { background:#fff; color:#111; width:100%; margin:15px 0; }.trial-card small { color:#999; font-size:9px; }
footer { background:#090a0b; color:#fff; padding:72px 8vw 26px; display:grid; grid-template-columns:2fr 1fr 1fr; gap:50px; position:relative; }.footer-logo { width:74px; height:74px; object-fit:contain; background:#fff; vertical-align:middle; }.footer-brand>strong { margin-left:15px; }.footer-brand p { color:#888; font-size:11px; line-height:1.8; margin-top:26px; }.footer-label { color:#777; font-size:9px; letter-spacing:.18em; }footer>div>a { display:block; margin:12px 0; font-size:12px; }.copyright { position:absolute; right:8vw; bottom:28px; color:#555; font-size:9px; }
@media (max-width:900px) {
  .header { height:72px; }.header nav { display:none; }.header-cta { padding:13px; }.header-cta span { margin-left:8px; }
  .hero { height:calc(100svh - 72px); min-height:620px; }.hero-content { margin:0 6vw; }.hero-note { display:none; }.hero-copy { font-size:14px; }
  .section { padding:80px 6vw; }.about,.program,.price,.video-section { grid-template-columns:1fr; }.section-index { margin-bottom:38px; }.about-image { margin:55px 0 0; min-height:420px; }.program-heading { margin-bottom:45px; }.gallery-heading { grid-template-columns:1fr; }.gallery-heading>p { padding:25px 0 0; }.gallery-grid { height:auto; grid-template-columns:1fr 1fr; grid-template-rows:440px 240px; }.gallery-main { grid-column:1/-1; grid-row:auto; }.video-grid { margin-top:22px; }.price-box,.hours { margin-top:35px; }.trial { padding:80px 6vw; flex-direction:column; align-items:start; }.trial-card { width:100%; max-width:420px; }footer { grid-template-columns:1fr 1fr; }.footer-brand { grid-column:1/-1; }
}
@media (max-width:560px) {
  .brand span:last-child { display:none; }.header-cta { font-size:10px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:10px; }.stats { gap:18px; justify-content:space-between; }.stats strong { font-size:26px; }.program-card { grid-template-columns:35px 1fr 36px; }.gallery-grid { display:block; }.gallery-grid figure { height:260px; margin-bottom:10px; }.gallery-grid .gallery-main { height:360px; }.video-grid { grid-template-columns:1fr; }.price-box { padding:30px 24px; }.price-number strong { font-size:40px; }footer { grid-template-columns:1fr; }.copyright { position:static; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.ticker div,.header::after,.hero,.hero-flash,.hero h1 span,.hero h1 em { animation:none; }.btn,.gallery-grid img { transition:none; } }

/* WordPress compatibility */
.admin-bar .header { z-index: 999; }
.wp-fallback-content { min-height: 60vh; }
.wp-fallback-content article { max-width: 900px; margin: 0 auto; }
