@charset "UTF-8";
/*
Template: swell
Theme Name: SWELL CHILD
Theme URI: https://swell-theme.com/
Description: FXコネクト合同会社用のSWELL子テーマ
Version: 1.0.0
Author: FXコネクト合同会社
*/

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

:root {
  --fxc-teal: #0f766e;
  --fxc-teal-dark: #0b4f4a;
  --fxc-deep: #123d3a;
  --fxc-coral: #e8794a;
  --fxc-coral-dark: #c85d34;
  --fxc-mist: #f2f8f7;
  --fxc-mint: #dff1ee;
  --fxc-sand: #fff7f0;
  --fxc-line: #d4e1df;
  --fxc-ink: #18302e;
  --fxc-grey: #637572;
}

html { scroll-behavior: smooth; }
body {
  color: var(--fxc-ink);
  background: #fff;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, system-ui, sans-serif;
  font-feature-settings: "palt";
  line-height: 1.9;
  letter-spacing: .03em;
}
a { transition: color .15s ease, background-color .15s ease, border-color .15s ease, transform .15s ease; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid var(--fxc-coral) !important;
  outline-offset: 3px !important;
}

.l-header { background: rgba(255,255,255,.97) !important; border-bottom: 1px solid var(--fxc-line); box-shadow: none !important; }
.l-header__bar { background: var(--fxc-deep) !important; }
.l-header__inner { max-width: 1180px !important; min-height: 78px; }
.c-headLogo__link { color: var(--fxc-deep) !important; font-weight: 700; letter-spacing: .02em; }
.c-gnav > li > a { min-height: 48px; color: var(--fxc-ink) !important; font-size: 13px; font-weight: 500; }
.c-gnav > li > a:hover { color: var(--fxc-teal) !important; }

.c-gnav > li:has(> a[href*="/contact/"]) { display: flex; align-items: center; }
.c-gnav a[href*="/contact/"] { height: 48px; margin-left: 10px; padding: 0 22px; display: flex; align-items: center; border-radius: 10px; background: var(--fxc-coral) !important; color: #fff !important; font-family: "Poppins", "Zen Kaku Gothic New", sans-serif; }
.c-gnav a[href*="/contact/"]:hover { background: var(--fxc-coral-dark) !important; color: #fff !important; transform: translateY(-1px); }
.l-footer { padding-top: 12px !important; background: var(--fxc-deep) !important; color: #fff !important; }
.l-footer a, .l-footer .copyright { color: #fff !important; }
.l-footer__nav a { min-height: 40px; display: inline-flex; align-items: center; }
.p-breadcrumb { color: var(--fxc-grey); font-size: 12px; }

body.page:not(.home) .l-content { max-width: 1120px; }
body.page:not(.home) .l-mainContent { width: 100%; max-width: 860px; margin-inline: auto; }
body.page:not(.home) #sidebar { display: none !important; }
body.page:not(.home) .c-pageTitle, body.page:not(.home) .c-postTitle { color: var(--fxc-deep); font-weight: 700; letter-spacing: .02em; }
.post_content { font-size: 16px; line-height: 1.9; }
.post_content > p, .post_content > ul, .post_content > ol, .post_content > table, .post_content > figure { margin-bottom: 32px; }
.post_content h2 { margin-top: 80px !important; margin-bottom: 32px !important; padding: 6px 0 6px 20px !important; border: 0 !important; border-left: 4px solid var(--fxc-teal) !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--fxc-deep) !important; font-size: 28px; line-height: 1.5; }
.post_content h2::before, .post_content h2::after { display: none !important; }
.post_content h3 { margin-top: 56px !important; padding: 0 0 12px !important; border: 0 !important; border-bottom: 1px solid var(--fxc-line) !important; color: var(--fxc-ink) !important; font-size: 20px; line-height: 1.6; }
.post_content a:not(.fxc-btn) { color: var(--fxc-teal); text-decoration: underline; text-underline-offset: 3px; }
.post_content table { overflow: hidden; border: 1px solid var(--fxc-line); border-radius: 14px; }
.post_content table th { background: var(--fxc-mint); color: var(--fxc-deep); }
.post_content table td, .post_content table th { padding: 16px; border-color: var(--fxc-line); }
.fxc-notice, .fxc-recruit-note { margin: 40px 0; padding: 28px 32px; border: 1px solid var(--fxc-line); border-radius: 16px; background: var(--fxc-mist); }
.fxc-notice p { margin: 6px 0 0; }
.fxc-recruit-note strong { color: var(--fxc-deep); font-size: 22px; }

.home .l-content { max-width: none !important; margin: 0 !important; padding: 0 !important; }
.home .l-mainContent, .home .l-mainContent__inner { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.home .post_content { margin: 0 !important; padding: 0 !important; }
.home .c-pageTitle, .home .c-postTitle, .home .p-breadcrumb, .home .l-topTitleArea, #post_slider, .p-mainVisual { display: none !important; }
.fxc-home { width: 100vw; margin-inline: calc(50% - 50vw); overflow: hidden; color: var(--fxc-ink); }
.fxc-home h2, .fxc-home h3 { margin-top: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.fxc-container { width: min(1120px, calc(100% - 80px)); margin-inline: auto; }
.fxc-narrow { width: min(780px, calc(100% - 80px)); }
.fxc-eyebrow { margin: 0 0 16px; color: var(--fxc-teal); font: 700 12px/1.5 "Poppins", "Zen Kaku Gothic New", sans-serif; letter-spacing: .16em; }

.fxc-hero { position: relative; min-height: 650px; display: flex; align-items: center; padding: 64px 0 78px; background: radial-gradient(circle at 82% 18%, rgba(223,241,238,.9) 0, rgba(223,241,238,0) 30%), linear-gradient(135deg, var(--fxc-mist), #fff 70%); }
.fxc-hero::after { content: ""; position: absolute; right: -80px; bottom: -110px; width: 280px; height: 280px; border: 1px solid rgba(15,118,110,.18); border-radius: 50%; }
.fxc-hero-grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 70px; align-items: center; }
.fxc-hero-title { margin: 0 0 28px; color: var(--fxc-deep); font-size: clamp(38px, 5vw, 58px); font-weight: 700; line-height: 1.35; letter-spacing: .01em; }
.fxc-lead { max-width: 39em; margin: 0; color: var(--fxc-ink); font-size: 18px; line-height: 2; }
.fxc-actions { margin-top: 40px; display: flex; gap: 16px; align-items: center; }
.fxc-btn { min-height: 50px; padding: 12px 28px !important; display: inline-flex !important; align-items: center; justify-content: center; border: 2px solid transparent; border-radius: 10px !important; font: 700 14px/1.4 "Poppins", "Zen Kaku Gothic New", sans-serif; text-decoration: none !important; }
.fxc-btn-accent { min-height: 56px; background: var(--fxc-coral) !important; color: #fff !important; }
.fxc-btn-accent:hover { background: var(--fxc-coral-dark) !important; color: #fff !important; transform: translateY(-2px); }
.fxc-btn-primary { background: var(--fxc-teal) !important; color: #fff !important; }
.fxc-btn-primary:hover { background: var(--fxc-teal-dark) !important; color: #fff !important; transform: translateY(-2px); }
.fxc-btn-outline { border-color: var(--fxc-teal) !important; background: #fff !important; color: var(--fxc-teal) !important; }
.fxc-btn-outline:hover { background: var(--fxc-mint) !important; color: var(--fxc-teal-dark) !important; }

.fxc-hero-visual { position: relative; width: 100%; aspect-ratio: 1; max-width: 490px; margin-inline: auto; overflow: hidden; border: 1px solid rgba(15,118,110,.12); border-radius: 34px; background: linear-gradient(145deg, #fff, var(--fxc-mint)); box-shadow: 0 26px 70px rgba(18,61,58,.10); }
.fxc-grid-dot { position: absolute; inset: 0; opacity: .32; background-image: radial-gradient(var(--fxc-teal) 1px, transparent 1px); background-size: 25px 25px; }
.fxc-ring { position: absolute; border: 2px solid rgba(15,118,110,.23); border-radius: 50%; }
.fxc-ring-a { inset: 13%; }
.fxc-ring-b { inset: 27%; border-style: dashed; animation: fxc-spin 26s linear infinite; }
.fxc-core { position: absolute; inset: 36%; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 28%; background: var(--fxc-deep); color: #fff; box-shadow: 0 16px 42px rgba(18,61,58,.22); transform: rotate(8deg); }
.fxc-core small, .fxc-core strong { transform: rotate(-8deg); }
.fxc-core small { font: 600 9px/1.5 "Poppins", sans-serif; letter-spacing: .18em; }
.fxc-core strong { font: 700 15px/1.5 "Poppins", sans-serif; letter-spacing: .05em; }
.fxc-node { position: absolute; padding: 9px 15px; border: 1px solid var(--fxc-line); border-radius: 8px; background: #fff; color: var(--fxc-deep); font: 600 11px/1 "Poppins", sans-serif; box-shadow: 0 10px 26px rgba(18,61,58,.09); }
.fxc-node-a { top: 16%; left: 7%; }
.fxc-node-b { top: 25%; right: 5%; }
.fxc-node-c { right: 16%; bottom: 13%; }

.fxc-section { padding: 116px 0; }
.fxc-mission { background: #fff; text-align: center; }
.fxc-mission h2, .fxc-section-head h2, .fxc-about h2, .fxc-talent h2, .fxc-contact-cta h2 { margin: 0 0 24px; color: var(--fxc-deep); font-size: 32px; line-height: 1.5; }
.fxc-section-lead { max-width: 42em; margin: 0 auto; font-size: 18px; line-height: 2; }
.fxc-section-mist { background: var(--fxc-mist); }
.fxc-section-head { max-width: 720px; margin: 0 auto 56px; text-align: center; }
.fxc-section-head > p:last-child { margin: 0; color: var(--fxc-grey); }
.fxc-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.fxc-card { min-height: 330px; padding: 34px; display: flex; flex-direction: column; border: 1px solid var(--fxc-line); border-radius: 18px; background: #fff; box-shadow: 0 8px 30px rgba(18,61,58,.04); }
.fxc-card-icon { width: 48px; height: 48px; margin-bottom: 28px; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--fxc-mint); color: var(--fxc-teal); font: 700 13px/1 "Poppins", sans-serif; }
.fxc-card h3 { margin: 0 0 16px; color: var(--fxc-deep); font-size: 20px; line-height: 1.6; }
.fxc-card p { margin: 0 0 24px; line-height: 1.9; }
.fxc-text-link { margin-top: auto; color: var(--fxc-teal) !important; font-weight: 700; text-decoration: underline !important; text-underline-offset: 4px; }

.fxc-values { background: #fff; }
.fxc-value-list { max-width: 880px; margin: 0 auto; border-top: 1px solid var(--fxc-line); }
.fxc-value-list article { padding: 36px 0; display: grid; grid-template-columns: 80px 1fr; gap: 24px; border-bottom: 1px solid var(--fxc-line); }
.fxc-value-list article > span { color: var(--fxc-teal); font: 700 14px/1.6 "Poppins", sans-serif; }
.fxc-value-list article > p:empty { display: none !important; }
.fxc-value-list article > div { grid-column: 2; }
.fxc-value-list h3 { margin: 0 0 8px; color: var(--fxc-deep); font-size: 20px; }
.fxc-value-list p { margin: 0; }

.fxc-talent { background: var(--fxc-sand); }
.fxc-split { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.fxc-talent p:not(.fxc-eyebrow), .fxc-about p:not(.fxc-eyebrow) { max-width: 35em; margin: 0 0 32px; }
.fxc-connect-map { position: relative; aspect-ratio: 4/3; overflow: hidden; border-radius: 28px; background: var(--fxc-deep); }
.fxc-connect-map::before, .fxc-connect-map::after, .fxc-connect-map i { content: ""; position: absolute; height: 1px; background: rgba(255,255,255,.28); transform-origin: left center; }
.fxc-connect-map::before { width: 48%; left: 24%; top: 33%; transform: rotate(25deg); }
.fxc-connect-map::after { width: 45%; left: 22%; top: 65%; transform: rotate(-29deg); }
.fxc-connect-map i { width: 54%; left: 24%; top: 38%; transform: rotate(88deg); }
.fxc-connect-map span { position: absolute; z-index: 2; width: 28px; height: 28px; border: 7px solid rgba(255,255,255,.23); border-radius: 50%; background: var(--fxc-coral); box-shadow: 0 0 0 10px rgba(232,121,74,.12); }
.fxc-connect-map span:nth-child(1) { left: 18%; top: 24%; }
.fxc-connect-map span:nth-child(2) { right: 18%; top: 34%; }
.fxc-connect-map span:nth-child(3) { left: 42%; bottom: 16%; }
.fxc-connect-map b { position: absolute; right: 8%; bottom: 7%; color: rgba(255,255,255,.14); font: 700 clamp(28px, 5vw, 54px)/1 "Poppins", sans-serif; letter-spacing: .08em; }

.fxc-about { background: var(--fxc-mint); }
.fxc-company-mini { margin: 0; padding: 16px 32px; border: 1px solid var(--fxc-line); border-radius: 18px; background: #fff; }
.fxc-company-mini > div { padding: 22px 0; display: grid; grid-template-columns: 120px 1fr; gap: 20px; border-bottom: 1px solid var(--fxc-line); }
.fxc-company-mini > div:last-child { border-bottom: 0; }
.fxc-company-mini dt { color: var(--fxc-grey); font-size: 14px; }
.fxc-company-mini dd { margin: 0; font-weight: 700; }

.fxc-contact-cta { padding: 54px 0 28px; background: var(--fxc-deep); color: #fff; text-align: center; }
.fxc-contact-cta .fxc-eyebrow { margin-bottom: 8px; color: #83d9cf; }
.fxc-contact-cta h2 { margin-bottom: 12px; color: #fff !important; font-size: 30px; }
.fxc-contact-cta p:not(.fxc-eyebrow) { margin: 0 0 20px; }
.fxc-home h2::before, .fxc-home h2::after, .fxc-home h3::before, .fxc-home h3::after { display: none !important; }

@keyframes fxc-spin { to { transform: rotate(360deg); } }
@media (max-width: 1023px) {
  .l-header__inner { min-height: 64px; }
  .fxc-container, .fxc-narrow { width: calc(100% - 64px); }
  .fxc-hero-grid, .fxc-split { gap: 44px; }
  .fxc-section { padding: 90px 0; }
}
@media (max-width: 767px) {
  body { font-size: 15px; }
  .fxc-container, .fxc-narrow { width: calc(100% - 40px); }
  .fxc-hero { min-height: auto; padding: 38px 0 58px; }
  .fxc-hero-grid, .fxc-split { grid-template-columns: 1fr; }
  .fxc-hero-title { font-size: 34px; }
  .fxc-lead, .fxc-section-lead { font-size: 16px; }
  .fxc-actions { flex-direction: column; align-items: stretch; }
  .fxc-actions .fxc-btn { width: 100%; }
  .fxc-hero-visual { width: 100%; max-width: 460px; }
  .fxc-section { padding: 66px 0; }
  .fxc-mission h2, .fxc-section-head h2, .fxc-about h2, .fxc-talent h2, .fxc-contact-cta h2 { font-size: 23px; }
  .fxc-card-grid { grid-template-columns: 1fr; }
  .fxc-card { min-height: 0; padding: 26px; }
  .fxc-value-list article { grid-template-columns: 50px 1fr; gap: 12px; padding: 28px 0; }
  .fxc-company-mini { padding: 8px 20px; }
  .fxc-company-mini > div { grid-template-columns: 1fr; gap: 4px; }
  .fxc-contact-cta { padding: 40px 0 24px; }
  .fxc-contact-cta .fxc-btn { width: 100%; }
  .post_content h2 { margin-top: 64px !important; font-size: 22px; }
  .post_content h3 { margin-top: 42px !important; font-size: 18px; }
  .fxc-recruit-note { padding: 24px; }
  .fxc-recruit-note strong { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}


/* Full-width photographic homepage hero */
.fxc-hero { min-height: 680px; padding: 76px 0 84px; background: linear-gradient(90deg, rgba(11,79,74,.92) 0%, rgba(11,79,74,.76) 34%, rgba(11,79,74,.38) 56%, rgba(11,79,74,.04) 78%), url("https://fx-connect.co.jp/wp-content/uploads/2026/09/fx-connect-hero-city-v1.webp") center center / cover no-repeat; }
.fxc-hero::after { display: none; }
.fxc-hero .fxc-container { position: relative; z-index: 1; }
.fxc-hero-grid { grid-template-columns: minmax(0, 650px); gap: 0; }
.fxc-hero .fxc-eyebrow { color: #dff1ee; }
.fxc-hero-title { color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.18); }
.fxc-hero .fxc-lead { color: rgba(255,255,255,.94); text-shadow: 0 1px 10px rgba(0,0,0,.18); }
.fxc-hero .fxc-btn-outline { border-color: #fff !important; background: rgba(255,255,255,.10) !important; color: #fff !important; backdrop-filter: blur(4px); }
.fxc-hero .fxc-btn-outline:hover { background: #fff !important; color: var(--fxc-deep) !important; }
.fxc-hero-visual { display: none; }

@media (max-width: 767px) {
  .fxc-hero { min-height: 620px; padding: 64px 0; background: linear-gradient(90deg, rgba(11,79,74,.90), rgba(11,79,74,.64)), url("https://fx-connect.co.jp/wp-content/uploads/2026/09/fx-connect-hero-city-v1.webp") 68% center / cover no-repeat; }
}


/* Photographic JOIN OUR TEAM visual */
.fxc-connect-map { aspect-ratio: 16 / 9; background: url("https://fx-connect.co.jp/wp-content/uploads/2026/09/fx-connect-join-team-v1.webp") center center / cover no-repeat; box-shadow: 0 22px 54px rgba(18,61,58,.14); }
.fxc-connect-map::before, .fxc-connect-map::after, .fxc-connect-map i, .fxc-connect-map span, .fxc-connect-map b { display: none; }


/* Keep the homepage hero compact and use an intentional desktop line break. */
.fxc-hero { min-height: 0; padding-top: 44px; padding-bottom: 64px; }
.fxc-desktop-break { display: inline; }

@media (max-width: 767px) {
  .fxc-hero { min-height: 0; padding-top: 28px; padding-bottom: 56px; }
  .fxc-desktop-break { display: none; }
}
