/*
Theme Name: FreeStyleMarketing Corporate
Theme URI: https://freestylemarketing1.com/
Author: 株式会社FreeStyleMarketing
Author URI: https://freestylemarketing1.com/
Description: マーケティング・セールス・人脈・AI支援を行う株式会社FreeStyleMarketingのための、ネイビー・白・ゴールドを基調としたオリジナルWordPressブロックテーマです。
Requires at least: 6.6
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: freestylemarketing-corporate
Tags: block-patterns, full-site-editing, custom-colors, custom-logo, editor-style, wide-blocks, one-column, portfolio
*/

:root {
  --fsm-navy: #081a33;
  --fsm-navy-2: #0f2b50;
  --fsm-gold: #c7a24a;
  --fsm-gold-light: #e8d49a;
  --fsm-ink: #172033;
  --fsm-muted: #607089;
  --fsm-offwhite: #f6f8fb;
  --fsm-white: #ffffff;
  --fsm-line: #dce3ec;
  --fsm-shadow: 0 18px 50px rgba(8, 26, 51, 0.10);
  --fsm-radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--fsm-ink);
  background: var(--fsm-white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body, button, input, textarea, select {
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", "Noto Sans JP", Meiryo, sans-serif;
}
a { text-underline-offset: .18em; }
img { max-width: 100%; height: auto; }

/* Shared layout */
.fsm-section { padding-top: clamp(72px, 9vw, 132px); padding-bottom: clamp(72px, 9vw, 132px); }
.fsm-section--compact { padding-top: clamp(52px, 6vw, 88px); padding-bottom: clamp(52px, 6vw, 88px); }
.fsm-eyebrow {
  letter-spacing: .15em;
  text-transform: uppercase;
  font-size: .82rem;
  font-weight: 800;
  color: var(--fsm-gold);
  margin-bottom: 14px;
}
.fsm-section-title { max-width: 920px; margin-top: 0; }
.fsm-lead { font-size: clamp(1.05rem, 1.4vw, 1.22rem); line-height: 2; color: #344258; }
.fsm-muted { color: var(--fsm-muted); }
.fsm-center { text-align: center; }
.fsm-kicker-line { width: 54px; height: 3px; background: var(--fsm-gold); border-radius: 20px; margin: 18px 0 30px; }
.fsm-kicker-line.is-center { margin-left: auto; margin-right: auto; }

/* Header */
.fsm-site-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(8,26,51,.08);
}
.admin-bar .fsm-site-header { top: 32px; }
.fsm-header-inner { min-height: 82px; }
.fsm-site-header .wp-block-site-title a { text-decoration: none; letter-spacing: .015em; }
.fsm-site-header .wp-block-navigation-item__content { font-size: .91rem; font-weight: 700; color: var(--fsm-navy); }
.fsm-site-header .wp-block-navigation-item__content:hover { color: #8f6d1f; }
.fsm-nav-cta > a {
  background: var(--fsm-gold);
  color: var(--fsm-navy) !important;
  border-radius: 999px;
  padding: 12px 20px !important;
  box-shadow: 0 10px 25px rgba(199,162,74,.25);
}
.fsm-nav-cta > a:hover { transform: translateY(-1px); background: var(--fsm-gold-light); }

/* Hero */
.fsm-hero {
  min-height: min(820px, 92vh);
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 83% 22%, rgba(199,162,74,.23), transparent 25%),
    radial-gradient(circle at 72% 70%, rgba(56,111,174,.20), transparent 32%),
    linear-gradient(120deg, #06152b 0%, #0a2445 58%, #0f335d 100%);
}
.fsm-hero::before,
.fsm-hero::after {
  content: "";
  position: absolute;
  inset: auto;
  border: 1px solid rgba(232,212,154,.25);
  border-radius: 50%;
  pointer-events: none;
}
.fsm-hero::before { width: 520px; height: 520px; right: -90px; top: 90px; }
.fsm-hero::after { width: 320px; height: 320px; right: 110px; top: 190px; }
.fsm-hero-grid {
  min-height: min(820px, 92vh);
  display: grid;
  grid-template-columns: minmax(0,1.18fr) minmax(300px,.82fr);
  align-items: center;
  gap: clamp(40px, 7vw, 100px);
  position: relative;
  z-index: 2;
}
.fsm-hero-copy { padding-top: 70px; padding-bottom: 70px; }
.fsm-hero h1 {
  font-size: clamp(2.45rem, 5.3vw, 5.3rem);
  line-height: 1.17;
  letter-spacing: -.035em;
  color: #fff;
  margin: 0 0 28px;
  max-width: 1000px;
}
.fsm-hero h1 strong { color: var(--fsm-gold-light); font-weight: 800; }
.fsm-hero-sub { font-size: clamp(1.08rem, 1.5vw, 1.35rem); line-height: 1.9; color: rgba(255,255,255,.84); max-width: 760px; }
.fsm-hero-note { color: rgba(255,255,255,.58); font-size: .88rem; }
.fsm-hero-visual {
  min-height: 440px;
  display: grid;
  place-items: center;
  position: relative;
}
.fsm-network-card {
  width: min(100%, 440px);
  aspect-ratio: 1/1;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
  background: radial-gradient(circle at 50% 50%, rgba(199,162,74,.24), rgba(8,26,51,.12) 56%, rgba(8,26,51,0) 70%);
  position: relative;
  box-shadow: 0 0 90px rgba(199,162,74,.10);
}
.fsm-network-card::before,
.fsm-network-card::after {
  content:"";
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.16);
}
.fsm-network-card::before { inset: 14%; }
.fsm-network-card::after { inset: 29%; }
.fsm-network-center {
  position:absolute; inset: 39%; border-radius:50%;
  background: var(--fsm-gold);
  box-shadow: 0 0 35px rgba(199,162,74,.72);
}
.fsm-node { position:absolute; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 0 0 8px rgba(255,255,255,.08); }
.fsm-node.n1 { left:12%; top:35%; }
.fsm-node.n2 { left:42%; top:6%; }
.fsm-node.n3 { right:9%; top:38%; }
.fsm-node.n4 { right:20%; bottom:14%; }
.fsm-node.n5 { left:21%; bottom:12%; }

/* Buttons */
.wp-block-button .wp-block-button__link { transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(8,26,51,.15); }
.fsm-button-outline .wp-block-button__link { background: transparent !important; color: #fff !important; border: 1px solid rgba(255,255,255,.65); }
.fsm-button-outline .wp-block-button__link:hover { background: rgba(255,255,255,.09) !important; }

/* Cards */
.fsm-card,
.fsm-service-card,
.fsm-reason-card,
.fsm-case-card,
.fsm-stat-card {
  background: #fff;
  border: 1px solid var(--fsm-line);
  border-radius: var(--fsm-radius);
  box-shadow: var(--fsm-shadow);
}
.fsm-service-card,
.fsm-reason-card,
.fsm-case-card { height: 100%; padding: clamp(25px, 3vw, 38px); }
.fsm-service-card { position: relative; overflow: hidden; }
.fsm-service-card::before { content:""; position:absolute; top:0; left:0; right:0; height:4px; background: linear-gradient(90deg,var(--fsm-gold),var(--fsm-gold-light)); }
.fsm-card-number { font-size: .82rem; letter-spacing: .14em; font-weight: 800; color: var(--fsm-gold); }
.fsm-service-card h3, .fsm-reason-card h3 { margin-top: 12px; }
.fsm-card-link a { font-weight: 800; color: var(--fsm-navy); text-decoration: none; }
.fsm-card-link a::after { content: " →"; color: var(--fsm-gold); }

/* Problems */
.fsm-problems { background: var(--fsm-offwhite); }
.fsm-problem-list { list-style: none; padding: 0; margin: 0; }
.fsm-problem-list li {
  background: #fff;
  border: 1px solid var(--fsm-line);
  border-radius: 16px;
  padding: 20px 22px 20px 58px;
  margin-bottom: 14px;
  position: relative;
  font-weight: 700;
  line-height: 1.7;
}
.fsm-problem-list li::before {
  content: "✓";
  position: absolute;
  left: 20px;
  top: 18px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--fsm-navy);
  color: var(--fsm-gold-light);
  font-size: .83rem;
}

/* Reasons */
.fsm-reasons { background: var(--fsm-navy); color: #fff; }
.fsm-reasons .fsm-lead, .fsm-reasons p { color: rgba(255,255,255,.78); }
.fsm-reason-card { background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.12); box-shadow: none; }
.fsm-reason-card h3 { color: #fff; }
.fsm-reason-card strong { color: var(--fsm-gold-light); }
.fsm-support-box { border: 1px solid rgba(232,212,154,.35); background: rgba(199,162,74,.08); border-radius: 20px; padding: clamp(26px,4vw,46px); }
.fsm-support-box li { margin-bottom: 12px; }

/* Stats */
.fsm-stats { background: linear-gradient(180deg,#fff,#f3f6fa); }
.fsm-stat-card { text-align:center; padding: 34px 22px; }
.fsm-stat-value { color: var(--fsm-navy); font-size: clamp(2rem,4vw,3.3rem); line-height:1.1; font-weight: 900; letter-spacing: -.04em; margin: 10px 0; }
.fsm-stat-label { font-size: .93rem; color: var(--fsm-muted); font-weight: 700; }
.fsm-provisional { display:inline-block; margin-top: 10px; font-size:.74rem; padding:5px 9px; border-radius:999px; background:#fff7df; color:#765715; }

/* Profile */
.fsm-profile-placeholder {
  min-height: 520px;
  border-radius: 28px;
  background:
    radial-gradient(circle at 45% 28%, rgba(232,212,154,.48), transparent 18%),
    linear-gradient(145deg,#0d315c,#081a33);
  color: rgba(255,255,255,.8);
  display:grid;
  place-items:center;
  text-align:center;
  padding:40px;
  border: 1px solid rgba(199,162,74,.45);
  box-shadow: var(--fsm-shadow);
}
.fsm-profile-placeholder strong { display:block; font-size:1.4rem; color:#fff; margin-bottom:8px; }

/* News */
.fsm-news-item { border-top: 1px solid var(--fsm-line); padding: 22px 0; }
.fsm-news-item:last-child { border-bottom: 1px solid var(--fsm-line); }
.fsm-news-item .wp-block-post-title { margin-top: 6px; margin-bottom: 0; }
.fsm-news-item .wp-block-post-title a { text-decoration: none; color: var(--fsm-navy); }

/* Company */
.fsm-company-table { border-top: 1px solid var(--fsm-line); }
.fsm-company-row { display:grid; grid-template-columns: 190px minmax(0,1fr); gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--fsm-line); }
.fsm-company-label { font-weight: 800; color: var(--fsm-navy); }
.fsm-company-value { overflow-wrap:anywhere; }

/* Contact visual form */
.fsm-contact-wrap { background: var(--fsm-offwhite); }
.fsm-contact-form {
  background:#fff;
  border-radius:28px;
  border:1px solid var(--fsm-line);
  padding:clamp(26px,5vw,56px);
  box-shadow:var(--fsm-shadow);
}
.fsm-contact-form label { display:block; font-weight:800; color:var(--fsm-navy); margin-bottom:8px; }
.fsm-contact-form input,
.fsm-contact-form textarea {
  width:100%;
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:14px 16px;
  font-size:16px;
  background:#fff;
  margin-bottom:20px;
}
.fsm-contact-form input:focus,
.fsm-contact-form textarea:focus { outline:3px solid rgba(199,162,74,.22); border-color:var(--fsm-gold); }
.fsm-contact-form textarea { min-height:170px; resize:vertical; }
.fsm-contact-form button {
  border:0;
  border-radius:999px;
  padding:15px 28px;
  background:#9aa5b4;
  color:#fff;
  font-weight:800;
  cursor:not-allowed;
}
.fsm-form-note { font-size:.86rem; color:var(--fsm-muted); background:#f8fafc; padding:14px 16px; border-radius:10px; }

/* CTA */
.fsm-cta {
  background:
   radial-gradient(circle at 80% 20%,rgba(199,162,74,.25),transparent 24%),
   linear-gradient(120deg,#06152b,#10345e);
  color:#fff;
  border-radius:30px;
  padding:clamp(38px,7vw,78px);
  overflow:hidden;
}
.fsm-cta h2 { color:#fff; }
.fsm-cta p { color:rgba(255,255,255,.78); }

/* Footer */
.fsm-site-footer { background:#051326; color:rgba(255,255,255,.72); }
.fsm-site-footer h2, .fsm-site-footer h3, .fsm-site-footer a { color:#fff; }
.fsm-site-footer a { text-decoration:none; }
.fsm-site-footer a:hover { color:var(--fsm-gold-light); }
.fsm-footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding-top:24px; margin-top:34px; }

/* Inner pages */
.fsm-page-hero { background:linear-gradient(120deg,#07182e,#11385f); color:#fff; padding-top:80px; padding-bottom:80px; }
.fsm-page-hero h1 { color:#fff; margin:0; }
.fsm-content-shell { padding-top:70px; padding-bottom:100px; }
.fsm-content-shell > * { max-width: 920px; margin-left:auto; margin-right:auto; }
.fsm-content-shell > .alignwide { max-width: 1200px; }

/* Accessibility */
:focus-visible { outline: 3px solid var(--fsm-gold); outline-offset: 3px; }
.screen-reader-text { border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute!important; width:1px; word-wrap:normal!important; }

/* Responsive */
@media (max-width: 980px) {
  .fsm-hero-grid { grid-template-columns: 1fr; min-height:auto; }
  .fsm-hero-copy { padding-top:100px; padding-bottom:20px; }
  .fsm-hero-visual { min-height:330px; padding-bottom:70px; }
  .fsm-network-card { width:min(82vw,360px); }
  .fsm-company-row { grid-template-columns: 150px minmax(0,1fr); }
}
@media (max-width: 782px) {
  .admin-bar .fsm-site-header { top:46px; }
  .fsm-header-inner { min-height:70px; }
  .fsm-company-row { grid-template-columns:1fr; gap:6px; }
  .fsm-profile-placeholder { min-height:400px; }
  .fsm-site-header .wp-block-navigation__responsive-container.is-menu-open { background:var(--fsm-navy); color:#fff; padding:32px; }
  .fsm-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color:#fff; font-size:1.12rem; }
  .fsm-nav-cta > a { display:inline-block; }
}
@media (max-width: 520px) {
  .fsm-hero h1 { font-size:clamp(2.15rem,11vw,3.15rem); }
  .fsm-hero-copy { padding-top:76px; }
  .fsm-section { padding-top:64px; padding-bottom:64px; }
  .fsm-service-card,.fsm-reason-card,.fsm-case-card { padding:24px; }
  .fsm-cta { border-radius:22px; }
}
