:root { --color-white:      #FFFFFF;
--color-bg:         #FAFAFA;
--color-bg-light:   #F4F4F4;
--color-text:       #2D2D2D; --color-text-light: #484848; --color-text-muted: #6B6B6B; --color-ink:        #1B1B1B; --color-border:     #E0E0E0;  --color-shu:    #EA5532; --color-kogane: #E6B422; --color-kachi:  #1C3A6E; --color-tokiwa: #1A5C3A;  --font-base:    'Montserrat', 'Noto Sans JP', sans-serif;
--font-en:      'Montserrat', sans-serif;
--font-ja:      'Noto Sans JP', sans-serif;  --fs-base:   1rem; --fs-sm:     0.9375rem; --fs-xs:     0.875rem; --fs-label:  0.875rem; --fs-nav:    0.875rem; --fs-btn:    0.9375rem; --fs-caption:0.875rem;   --fs-h1: clamp(1.875rem, 3.5vw, 2.5rem); --fs-h2: clamp(1.5rem,   2.8vw, 2rem); --fs-h3: clamp(1.25rem,  2vw,   1.5rem); --fs-h4: 1.125rem; --fs-h5: 1rem; --fs-h6: 0.9375rem;  --fs-section-title: clamp(2rem, 4vw, 3rem);  --lh-body:     1.8; --lh-heading:  1.4; --lh-tight:    1.3; --lh-relaxed:  2.0; --lh-loose:    2.2;  --ls-body:    0.05em; --ls-heading: 0.04em; --ls-label:   0.12em; --ls-wide:    0.2em; --ls-tight:   0;  --transition-fast: 0.3s ease;
--transition-slow: 0.6s cubic-bezier(0.16, 1, 0.3, 1);
} *, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
font-size: 16px;  overflow-x: hidden;
}
body {
font-family: var(--font-base);
font-size: var(--fs-base); color: var(--color-text);
background-color: var(--color-white);
line-height: var(--lh-body); letter-spacing: var(--ls-body); -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
overflow-x: hidden;
} :where(p, li, dt, dd, td, th, label, span, a, small, figcaption, cite, address) {
font-size: max(var(--fs-xs), 1em);
}
.montserrat { font-family: 'Montserrat', sans-serif; }
.kogane { color: var(--color-kogane); }
a {
color: inherit;
text-decoration: none;
transition: var(--transition-fast);
}
img, video {
max-width: 100%;
height: auto;
display: block;
}
.container {
max-width: 1100px;
margin: 0 auto;
padding: 0 6%;
}
.section {
padding: 180px 0;
opacity: 0;
transform: translateY(40px);
transition: opacity 1s ease, transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.section.is-visible {
opacity: 1;
transform: translateY(0);
}
.bg-light { background-color: var(--color-bg); }
.bg-dark { background-color: var(--color-ink); color: var(--color-white); }
.text-white { color: var(--color-white) !important; }  h1 { font-size: var(--fs-h1); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); font-weight: 700; }
h2 { font-size: var(--fs-h2); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); font-weight: 700; }
h3 { font-size: var(--fs-h3); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); font-weight: 700; }
h4 { font-size: var(--fs-h4); line-height: var(--lh-heading); letter-spacing: var(--ls-heading); font-weight: 700; }
h5 { font-size: var(--fs-h5); line-height: var(--lh-body);    letter-spacing: var(--ls-heading); font-weight: 700; }
h6 { font-size: var(--fs-h6); line-height: var(--lh-body);    letter-spacing: var(--ls-heading); font-weight: 600; } p {
font-size: var(--fs-base);
line-height: var(--lh-relaxed);
letter-spacing: var(--ls-body);
margin-bottom: 1.2em;
} ul, ol {
font-size: var(--fs-base);
line-height: var(--lh-relaxed);
letter-spacing: var(--ls-body);
} small {
font-size: var(--fs-xs); line-height: var(--lh-body);
color: var(--color-text-muted);
} .nav-label,
.footer-col-title,
.footer-nav-list a,
.footer-copyright,
.breadcrumb,
.single-date,
.single-cat-link,
.reading-time,
.toc-item a,
.page-hero-en,
.page-hero-ja {
font-size: max(var(--fs-xs), 1em);
}
.section-title {
font-size: var(--fs-section-title);
font-family: var(--font-en);
font-weight: 700;
text-align: center;
margin-bottom: 100px;
color: var(--color-text);
position: relative;
padding-bottom: 30px;
letter-spacing: var(--ls-label);
line-height: var(--lh-tight);
}
.section-title.left-align { text-align: left; }
.section-title.left-align::after {
left: 0;
transform: none;
}
.section-title::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 60px;
height: 3px;
background-color: var(--color-shu);
}
.section-title span {
display: block;
font-family: var(--font-ja);
font-size: var(--fs-xs); font-weight: 500;
color: var(--color-text-muted);
margin-top: 15px;
letter-spacing: var(--ls-wide);
line-height: var(--lh-body);
} .bg-dark .section-title span {
color: rgba(255, 255, 255, 0.65);
}
.section-desc {
text-align: center;
margin-bottom: 100px;
font-size: var(--fs-sm);
line-height: var(--lh-relaxed);
color: var(--color-text-light);
max-width: 800px;
margin-left: auto;
margin-right: auto;
}
.icon {
display: block;
margin: 0 auto;
} .btn-primary, .btn-submit, .header-cta, .btn-bottom-cta {
display: inline-flex;
justify-content: center;
align-items: center;
padding: 20px 50px;
background-color: var(--color-shu);
color: var(--color-white);
font-weight: 700;
border-radius: 4px;
border: 1px solid var(--color-shu);
box-shadow: 0 10px 25px rgba(234, 85, 50, 0.25);
cursor: pointer;
font-size: 1.05rem;
position: relative;
overflow: hidden;
z-index: 1;
letter-spacing: 0.08em;
transition: box-shadow var(--transition-fast);
}
.btn-primary::before, .btn-submit::before, .header-cta::before, .btn-bottom-cta::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background-color: var(--color-white);
transform: scaleX(0);
transform-origin: right;
transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
z-index: -1;
}
.btn-primary:hover, .btn-submit:hover, .header-cta:hover, .btn-bottom-cta:hover {
color: var(--color-shu);
box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.btn-primary:hover::before, .btn-submit:hover::before,
.header-cta:hover::before, .btn-bottom-cta:hover::before {
transform: scaleX(1);
transform-origin: left;
}
.btn-large {
padding: 25px 60px;
font-size: 1.2rem;
}
.btn-outline {
display: inline-flex;
justify-content: center;
align-items: center;
padding: 15px 35px;
border: 1px solid var(--color-text);
color: var(--color-text);
font-weight: 700;
border-radius: 4px;
transition: var(--transition-fast);
font-size: 0.95rem;
}
.btn-outline:hover {
background-color: var(--color-text);
color: var(--color-white);
}
.external-link::after {
content: '↗';
margin-left: 8px;
font-weight: normal;
}
.btn-text {
background: none;
border: none;
cursor: pointer;
font-family: var(--font-base);
font-size: 1rem;
color: var(--color-text-light);
text-decoration: underline;
text-underline-offset: 4px;
padding: 10px;
transition: var(--transition-fast);
display: block;
margin: 20px auto 0;
}
.btn-text:hover { color: var(--color-text); } .header-inner {
display: flex;
justify-content: space-between;
align-items: center;
padding: 28px 5%;
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: rgba(255, 255, 255, 0.98);
backdrop-filter: blur(10px);
z-index: 1000;
transition: padding var(--transition-fast), box-shadow var(--transition-fast);
}
.header-inner.is-scrolled {
padding: 14px 5%;
box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}
.logo a {
display: flex;
align-items: center;
}
.logo-img {
height: 36px;
width: auto;
}
.global-nav ul {
display: flex;
list-style: none;
gap: 40px;
}
.global-nav a {
font-family: var(--font-en);
font-weight: 700;
color: var(--color-text);
font-size: var(--fs-nav); position: relative;
letter-spacing: var(--ls-label);
}
.global-nav a::after {
content: '';
position: absolute;
width: 0; height: 2px;
bottom: -6px; left: 0;
background-color: var(--color-shu);
transition: width var(--transition-fast);
}
.global-nav a:hover::after { width: 100%; } .global-nav .nav-diagnostic > a {
display: inline-block;
border: 2px solid var(--color-kogane);
color: var(--color-kogane) !important;
padding: 6px 14px;
border-radius: 4px;
font-weight: 700;
font-size: var(--fs-nav); letter-spacing: var(--ls-label);
transition: background var(--transition-fast), color var(--transition-fast);
}
.global-nav .nav-diagnostic > a::after { display: none; }
.global-nav .nav-diagnostic > a:hover {
background: var(--color-kogane);
color: var(--color-ink) !important;
} .drawer-nav .nav-diagnostic > a.drawer-link {
color: var(--color-kogane) !important;
font-weight: 700;
border-top: 1px solid rgba(230,180,34,0.25);
margin-top: 8px;
padding-top: 16px;
}
.header-right {
display: flex;
align-items: center;
gap: 20px;
}
.hamburger {
display: none;
width: 48px;
height: 48px;
background: transparent;
border: none;
cursor: pointer;
position: relative;
z-index: 2000;
}
.hamburger .line {
display: block;
width: 24px;
height: 2px;
background-color: var(--color-text);
position: absolute;
left: 12px;
transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s;
}
.hamburger .line:nth-child(1) { top: 14px; }
.hamburger .line:nth-child(2) { top: 23px; }
.hamburger .line:nth-child(3) { top: 32px; }
.hamburger.is-open .line:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.hamburger.is-open .line:nth-child(2) { opacity: 0; }
.hamburger.is-open .line:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }
.drawer {
position: fixed;
top: 0;
right: -100%;
width: 100%;
max-width: 420px;
height: 100%;
height: 100dvh;
background-color: var(--color-white); z-index: 1700;
transition: right 0.5s cubic-bezier(0.16, 1, 0.3, 1);
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: stretch;
box-shadow: -10px 0 30px rgba(0,0,0,0.05);
overflow-y: auto;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;
}
.drawer.is-open { right: 0; }
.drawer-inner {
width: 100%;
padding: 80px 40px 60px;
} .drawer-close-btn {
position: absolute;
top: 20px;
right: 20px;
width: 44px;
height: 44px;
background: transparent;
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
color: var(--color-text);
opacity: 0.6;
transition: opacity var(--transition-fast), transform var(--transition-fast);
z-index: 10;
}
.drawer-close-btn:hover {
opacity: 1;
transform: rotate(90deg);
}
.drawer-nav {
list-style: none;
margin-bottom: 50px;
}
.drawer-nav li {
margin-bottom: 20px;
border-bottom: 1px solid var(--color-bg-light);
padding-bottom: 20px;
}
.drawer-nav a {
display: block;
font-family: 'Montserrat', sans-serif;
font-size: 1.7rem;
font-weight: 700;
color: var(--color-text);
letter-spacing: 0.1em;
transition: color var(--transition-fast), transform var(--transition-fast);
}
.drawer-nav a:hover {
color: var(--color-shu);
transform: translateX(8px);
}
.drawer-cta { width: 100%; text-align: center; }
.drawer-overlay {
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
background: rgba(0,0,0,0.6);
z-index: 1400;
opacity: 0;
visibility: hidden;
transition: opacity 0.4s ease;
backdrop-filter: blur(4px);
}
.drawer-overlay.is-open {
opacity: 1;
visibility: visible;
} .hero {
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
}
.hero-bg {
position: absolute;
top: 0; left: 0; width: 100%; height: 100%;
z-index: -2;
background-color: var(--color-ink);
}
.hero-video {
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
} .hero-overlay {
position: absolute;
top: 0; left: 0; width: 100%; height: 100%;
background: linear-gradient(135deg, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.45) 100%);
z-index: -1;
}
.hero-content {
text-align: center;
max-width: 900px;
padding: 0 20px;
margin-top: 80px;
} .reveal-text {
display: inline-block;
opacity: 0;
transform: translateY(25px);
}
@keyframes revealUp {
to {
opacity: 1;
transform: translateY(0);
}
} .hero .reveal-text {
animation: revealUp 1s cubic-bezier(0.16, 1, 0.3, 1) both;
} .section .reveal-text {
transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.section .reveal-text.is-visible {
opacity: 1;
transform: translateY(0);
}
.hero-copy {
font-size: 4.5rem;
font-weight: 700;
line-height: 1.6;
margin-bottom: 40px;
color: var(--color-white);
letter-spacing: 0.15em;
}
.hero-subtext {
font-size: 1.25rem;
color: rgba(255, 255, 255, 0.82);
font-weight: 400;
line-height: 2.2;
letter-spacing: 0.15em;
} .only-one-lead {
text-align: center;
margin-bottom: 56px;
}
.only-one-tagline {
font-size: 1.45rem;
font-weight: 700;
color: var(--color-white);
line-height: 1.8;
letter-spacing: 0.04em;
}
.only-one-tagline em {
color: var(--color-kogane);
font-style: normal;
border-bottom: 2px solid var(--color-kogane);
}
.differentiator-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
}
.differentiator-card {
border: 1px solid rgba(255,255,255,0.1);
border-radius: 6px;
padding: 36px 28px 32px;
position: relative;
transition: border-color var(--transition-fast);
}
.differentiator-card::before {
content: '';
position: absolute;
top: 0; left: 0;
width: 100%; height: 3px;
background: var(--color-kogane);
border-radius: 6px 6px 0 0;
}
.differentiator-card:hover {
border-color: rgba(230,180,34,0.35);
}
.differentiator-num {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
color: var(--color-kogane);
font-weight: 700;
letter-spacing: 0.18em;
margin-bottom: 14px;
display: block;
}
.differentiator-title {
font-size: 1.0rem;
font-weight: 700;
color: var(--color-white);
line-height: 1.75;
margin-bottom: 14px;
}
.differentiator-body {
font-size: 0.875rem;
color: rgba(255,255,255,0.62);
line-height: 1.95;
}
@media (max-width: 900px) {
.differentiator-grid {
grid-template-columns: 1fr;
gap: 20px;
}
.only-one-tagline { font-size: 1.1rem; }
} .solution-cta-band {
background: var(--color-ink);
padding: 56px 0;
text-align: center;
}
.solution-cta-text {
font-size: 1.15rem;
color: rgba(255,255,255,0.88);
line-height: 1.95;
margin-bottom: 32px;
letter-spacing: 0.05em;
}
.solution-cta-text strong {
color: var(--color-kogane);
}
@media (max-width: 768px) {
.solution-cta-band { padding: 44px 0; }
.solution-cta-text { font-size: 1rem; }
} .hero-cta-band {
background: var(--color-ink);
border-top: 1px solid rgba(255,255,255,0.08);
padding: 64px 0 56px;
}
.hero-cta-features {
display: flex;
align-items: stretch;
margin-bottom: 48px;
}
.hero-cta-feature {
flex: 1;
padding: 0 40px;
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
text-align: center;
}
.hero-cta-sep {
width: 1px;
background: rgba(255,255,255,0.12);
flex-shrink: 0;
align-self: stretch;
margin: 4px 0;
}
.hero-cta-label {
font-size: 0.8rem;
color: var(--color-kogane);
letter-spacing: 0.12em;
font-weight: 600;
line-height: 1.7;
}
.hero-cta-arrow {
font-size: 1.1rem;
color: rgba(255,255,255,0.28);
line-height: 1;
}
.hero-cta-value {
font-size: 0.975rem;
color: rgba(255,255,255,0.88);
line-height: 1.85;
font-weight: 500;
}
.hero-cta-btn-wrap {
text-align: center;
}
@media (max-width: 768px) {
.hero-cta-band { padding: 48px 0 44px; }
.hero-cta-features {
flex-direction: column;
gap: 32px;
margin-bottom: 40px;
}
.hero-cta-sep {
width: 40px;
height: 1px;
align-self: center;
margin: 0 auto;
}
.hero-cta-feature { padding: 0 12px; }
} .about-flex {
display: flex;
gap: 80px;
align-items: flex-start;
}
.about-text { flex: 1.2; }
.about-text .lead-text {
font-size: 2rem;
font-weight: 700;
line-height: 1.7;
margin-bottom: 50px;
color: var(--color-text);
}
.about-text p { margin-bottom: 30px; font-size: 1.05rem; }
.about-stats-container {
flex: 0.8;
display: flex;
flex-direction: column;
gap: 30px;
}
.stat-card {
background: var(--color-white);
border: 1px solid var(--color-bg-light);
padding: 35px 30px;
border-radius: 4px;
box-shadow: 0 15px 40px rgba(0,0,0,0.03);
transition: var(--transition-slow);
}
.stat-card:hover {
transform: translateX(-10px);
box-shadow: 0 20px 50px rgba(0,0,0,0.08);
}
.stat-header {
font-size: 0.85rem;
font-weight: 700;
color: var(--color-text-light);
margin-bottom: 10px;
letter-spacing: 0.1em;
}
.stat-body {
display: flex;
align-items: baseline;
gap: 10px;
}
.stat-num {
font-family: 'Montserrat', sans-serif;
font-size: 3.5rem;
font-weight: 700;
line-height: 1;
}
.stat-unit { font-size: 1.1rem; font-weight: 700; }
.stat-sub { font-size: 0.85rem; color: var(--color-text-light); }
.stat-area .area-text {
font-size: 1.05rem;
font-weight: 700;
line-height: 1.8;
}
.stat-area .area-text span {
font-size: 0.9rem;
color: var(--color-shu);
display: block;
margin-top: 10px;
} .service-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 50px;
}
.service-card {
background: var(--color-white);
padding: 70px 40px;
border-radius: 4px;
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,0.04);
border-top: 5px solid var(--color-shu);
transition: var(--transition-slow);
display: flex;
flex-direction: column;
align-items: center;
}
.service-card:hover { transform: translateY(-15px); }
.service-icon {
margin-bottom: 40px;
color: var(--color-text);
} .icon-consulting { color: var(--color-kogane); }
.service-name {
font-size: 1.4rem;
font-weight: 700;
margin-bottom: 30px;
}
.service-name span {
display: block;
font-family: 'Montserrat', sans-serif;
font-size: 0.85rem;
color: var(--color-text-light);
margin-top: 10px;
}
.service-desc {
font-size: 0.95rem;
margin-bottom: 40px;
flex-grow: 1;
} .dual-section {
display: flex;
gap: 80px;
}
.news-area { flex: 1; }
.news-list {
list-style: none;
border-top: 1px solid var(--color-bg-light);
}
.news-list li {
border-bottom: 1px solid var(--color-bg-light);
padding: 25px 0;
display: flex;
flex-direction: column;
gap: 10px;
}
.news-date {
font-family: 'Montserrat', sans-serif;
font-size: 0.9rem;
color: var(--color-kogane);
font-weight: 700;
}
.news-title {
font-size: 1.05rem;
font-weight: 500;
transition: var(--transition-fast);
}
.news-title:hover { color: var(--color-shu); }
.blog-area { flex: 1.5; }
.blog-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
}
.blog-card {
background: var(--color-bg);
border-radius: 4px;
overflow: hidden;
transition: var(--transition-slow);
}
.blog-card:hover {
box-shadow: 0 10px 28px rgba(0,0,0,0.08);
}
.blog-thumb {
width: 100%;
height: 200px;
} .bg-placeholder {
background: linear-gradient(90deg, var(--color-bg-light) 25%, #ebebeb 50%, var(--color-bg-light) 75%);
background-size: 200% 100%;
animation: shimmer 1.8s infinite;
}
@keyframes shimmer {
0%   { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
.blog-content { padding: 30px 25px; }
.blog-date {
display: block;
font-family: 'Montserrat', sans-serif;
font-size: 0.85rem;
color: var(--color-text-light);
margin-bottom: 15px;
}
.blog-title {
font-size: 1.1rem;
font-weight: 700;
line-height: 1.6;
} .diagnostic-container {
background: var(--color-white);
border-radius: 8px;
padding: 80px 60px;
max-width: 900px;
margin: 0 auto;
color: var(--color-text);
box-shadow: 0 30px 60px rgba(0,0,0,0.2);
}
.progress-bar-container {
width: 100%;
height: 8px;
background-color: var(--color-bg-light);
border-radius: 4px;
margin-bottom: 60px;
overflow: hidden;
}
.progress-bar {
height: 100%;
background-color: var(--color-shu);
width: 10%;
transition: width 0.5s ease;
}
.quiz-area { text-align: center; }
.question-title {
font-size: 1.7rem;
font-weight: 700;
margin-bottom: 60px;
min-height: 100px;
line-height: 1.7;
}
#q-num { color: var(--color-shu); font-size: 2rem; }
.quiz-buttons {
display: flex;
justify-content: center;
gap: 40px;
}
.btn-quiz {
padding: 25px 80px;
font-size: 1.25rem;
font-weight: 700;
border-radius: 60px;
cursor: pointer;
border: 2px solid transparent;
transition: var(--transition-fast);
font-family: var(--font-base);
}
.btn-yes {
background-color: var(--color-white);
border-color: var(--color-kogane);
color: var(--color-kogane);
}
.btn-yes:hover {
background-color: var(--color-kogane);
color: var(--color-white);
}
.btn-no {
background-color: var(--color-white);
border-color: #B0B0B0;
color: #B0B0B0;
}
.btn-no:hover {
background-color: #B0B0B0;
color: var(--color-white);
}
.result-area { text-align: center; }
.result-score-box { margin-bottom: 50px; }
.result-label {
font-size: 1.2rem;
font-weight: 700;
color: var(--color-text-light);
margin-bottom: 15px;
}
.score-display {
display: flex;
justify-content: center;
align-items: baseline;
}
.score-number {
font-size: 6rem;
color: var(--color-kogane);
line-height: 1;
margin-right: 10px;
}
.score-unit { font-size: 2rem; font-weight: 700; }
.result-feedback {
font-size: 1.15rem;
margin-bottom: 60px;
line-height: 2;
} .contact-form-wrapper {
max-width: 800px;
margin: 0 auto;
background: var(--color-bg);
padding: 80px 70px;
border-radius: 4px;
}
.form-group { margin-bottom: 50px; }
.form-group label {
display: block;
margin-bottom: 20px;
font-weight: 700;
font-size: 1.1rem;
} .required {
display: inline-flex;
align-items: center;
justify-content: center;
background-color: var(--color-shu);
color: var(--color-white);
font-size: 0.70rem;
font-weight: 700;
letter-spacing: 0.08em;
padding: 3px 10px 4px;
border-radius: 2px;
line-height: 1;
vertical-align: middle;
margin-left: 10px;
flex-shrink: 0;
}
.form-group input, .form-group textarea {
width: 100%;
padding: 20px;
border: 1px solid #D0D0D0;
border-radius: 4px;
font-family: var(--font-base);
font-size: 1.05rem;
background: var(--color-white);
transition: var(--transition-fast);
}
.form-group input:focus, .form-group textarea:focus {
outline: none;
border-color: var(--color-shu);
box-shadow: 0 0 0 4px rgba(234, 85, 50, 0.1);
}
.btn-submit { width: 100%; font-size: 1.3rem; padding: 25px; }  .wpcf7 { width: 100%; }
.wpcf7-form { width: 100%; } .wpcf7 p {
margin-bottom: 44px;
position: relative; }
.wpcf7 p:last-child { margin-bottom: 0; } .wpcf7 p > label {
display: block;
margin-bottom: 14px;
font-weight: 700;
font-size: 1.05rem;
line-height: 1.5;
color: var(--color-text);
}  .wpcf7 .required {
margin-left: 10px;
} @supports selector(p:has(x)) {
.wpcf7 p:has(.wpcf7-validates-as-required) > label {
padding-right: 58px; }
.wpcf7 p:has(.wpcf7-validates-as-required)::after {
content: '必須';
position: absolute;
top: 0;
right: 0;
display: inline-flex;
align-items: center;
justify-content: center;
background-color: var(--color-shu);
color: var(--color-white);
font-size: 0.70rem;
font-weight: 700;
letter-spacing: 0.08em;
padding: 3px 10px 4px;
border-radius: 2px;
line-height: 1;
pointer-events: none;
} .wpcf7 p:has(.wpcf7-validates-as-required):has(.required)::after {
display: none;
}
.wpcf7 p:has(.wpcf7-validates-as-required):has(.required) > label {
padding-right: 0;
}
} .wpcf7-form-control-wrap {
display: block;
width: 100%;
} .wpcf7-form-control-wrap .wpcf7-text,
.wpcf7-form-control-wrap .wpcf7-email,
.wpcf7-form-control-wrap .wpcf7-tel,
.wpcf7-form-control-wrap .wpcf7-url,
.wpcf7-form-control-wrap .wpcf7-number,
.wpcf7-form-control-wrap .wpcf7-date {
width: 100%;
padding: 18px 20px;
border: 1.5px solid var(--color-border);
border-radius: 4px;
font-family: var(--font-base);
font-size: 1rem;
background: var(--color-white);
color: var(--color-text);
transition: border-color 0.25s ease, box-shadow 0.25s ease;
appearance: none;
-webkit-appearance: none;
box-sizing: border-box;
line-height: 1.6;
}
.wpcf7-form-control-wrap .wpcf7-text:focus,
.wpcf7-form-control-wrap .wpcf7-email:focus,
.wpcf7-form-control-wrap .wpcf7-tel:focus,
.wpcf7-form-control-wrap .wpcf7-url:focus,
.wpcf7-form-control-wrap .wpcf7-number:focus,
.wpcf7-form-control-wrap .wpcf7-date:focus {
outline: none;
border-color: var(--color-shu);
box-shadow: 0 0 0 4px rgba(234, 85, 50, 0.1);
}
.wpcf7-form-control-wrap .wpcf7-text::placeholder,
.wpcf7-form-control-wrap .wpcf7-email::placeholder,
.wpcf7-form-control-wrap .wpcf7-tel::placeholder,
.wpcf7-form-control-wrap .wpcf7-url::placeholder { color: #C0C0C0; } .wpcf7-form-control-wrap .wpcf7-textarea {
width: 100%;
padding: 18px 20px;
border: 1.5px solid var(--color-border);
border-radius: 4px;
font-family: var(--font-base);
font-size: 1rem;
background: var(--color-white);
color: var(--color-text);
resize: vertical;
min-height: 180px;
transition: border-color 0.25s ease, box-shadow 0.25s ease;
box-sizing: border-box;
line-height: 1.85;
}
.wpcf7-form-control-wrap .wpcf7-textarea:focus {
outline: none;
border-color: var(--color-shu);
box-shadow: 0 0 0 4px rgba(234, 85, 50, 0.1);
}
.wpcf7-form-control-wrap .wpcf7-textarea::placeholder { color: #C0C0C0; } .wpcf7-form-control-wrap .wpcf7-select {
width: 100%;
padding: 18px 52px 18px 20px;
border: 1.5px solid var(--color-border);
border-radius: 4px;
font-family: var(--font-base);
font-size: 1rem;
background-color: var(--color-white);
color: var(--color-text);
cursor: pointer;
appearance: none;
-webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%232D2D2D' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 18px center;
transition: border-color 0.25s ease, box-shadow 0.25s ease;
box-sizing: border-box;
line-height: 1.6;
}
.wpcf7-form-control-wrap .wpcf7-select:focus {
outline: none;
border-color: var(--color-shu);
box-shadow: 0 0 0 4px rgba(234, 85, 50, 0.1);
}
.wpcf7-form-control-wrap .wpcf7-select:hover {
border-color: #AAAAAA;
}  .wpcf7-checkbox,
.wpcf7-radio,
.wpcf7-acceptance {
display: flex;
flex-direction: column;
gap: 14px;
}
.wpcf7-list-item {
display: block;
margin: 0 !important;
padding: 0 !important;
} .wpcf7-list-item label {
display: inline-flex !important;
align-items: flex-start !important;
gap: 0 !important;
position: relative;
padding-left: 36px !important;
padding-top: 2px !important;
padding-bottom: 2px !important;
margin-bottom: 0 !important;
font-weight: 400 !important;
font-size: 0.97rem !important;
cursor: pointer;
user-select: none;
line-height: 1.65;
color: var(--color-text);
} .wpcf7-checkbox input[type="checkbox"],
.wpcf7-radio input[type="radio"],
.wpcf7-acceptance input[type="checkbox"] {
position: absolute;
left: 0;
top: 1px;
width: 24px;
height: 24px;
opacity: 0;
cursor: pointer;
margin: 0;
z-index: 1;
} .wpcf7-checkbox .wpcf7-list-item label::before,
.wpcf7-acceptance .wpcf7-list-item label::before {
content: '';
position: absolute;
left: 0;
top: 2px;
width: 22px;
height: 22px;
border: 2px solid var(--color-border);
border-radius: 4px;
background: var(--color-white);
transition:
background  0.2s ease,
border-color 0.2s ease,
box-shadow   0.2s ease;
pointer-events: none;
} .wpcf7-checkbox .wpcf7-list-item label::after,
.wpcf7-acceptance .wpcf7-list-item label::after {
content: '';
position: absolute;
left: 3px;
top: 12px; width: 16px;
height: 8px;
border-left:   2.5px solid transparent;
border-bottom: 2.5px solid transparent;
transform: rotate(-45deg) scaleX(0);
transform-origin: left center;
transition:
transform    0.18s ease,
border-color 0.18s ease;
pointer-events: none;
} @supports selector(label:has(x)) { .wpcf7-checkbox .wpcf7-list-item label:has(input:checked)::before,
.wpcf7-acceptance .wpcf7-list-item label:has(input:checked)::before {
background: var(--color-shu);
border-color: var(--color-shu);
box-shadow: 0 2px 10px rgba(234, 85, 50, 0.28);
} .wpcf7-checkbox .wpcf7-list-item label:has(input:checked)::after,
.wpcf7-acceptance .wpcf7-list-item label:has(input:checked)::after {
border-left-color:   var(--color-white);
border-bottom-color: var(--color-white);
transform: rotate(-45deg) scaleX(1);
} .wpcf7-checkbox .wpcf7-list-item label:hover::before,
.wpcf7-acceptance .wpcf7-list-item label:hover::before {
border-color: var(--color-shu);
box-shadow: 0 0 0 4px rgba(234, 85, 50, 0.08);
} .wpcf7-checkbox .wpcf7-list-item label:has(input:focus-visible)::before,
.wpcf7-acceptance .wpcf7-list-item label:has(input:focus-visible)::before {
border-color: var(--color-shu);
box-shadow: 0 0 0 4px rgba(234, 85, 50, 0.18);
}
}  .wpcf7-radio .wpcf7-list-item label::before {
content: '';
position: absolute;
left: 0;
top: 2px;
width: 22px;
height: 22px;
border: 2px solid var(--color-border);
border-radius: 50%;
background: var(--color-white);
transition:
border-color 0.2s ease,
box-shadow   0.2s ease;
pointer-events: none;
} .wpcf7-radio .wpcf7-list-item label::after {
content: '';
position: absolute;
left: 5px; top: 7px; width: 12px;
height: 12px;
border-radius: 50%;
background: var(--color-shu);
transform: scale(0); transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
pointer-events: none;
}
@supports selector(label:has(x)) { .wpcf7-radio .wpcf7-list-item label:has(input:checked)::before {
border-color: var(--color-shu);
box-shadow: 0 2px 10px rgba(234, 85, 50, 0.22);
} .wpcf7-radio .wpcf7-list-item label:has(input:checked)::after {
transform: scale(1);
} .wpcf7-radio .wpcf7-list-item label:hover::before {
border-color: var(--color-shu);
box-shadow: 0 0 0 4px rgba(234, 85, 50, 0.08);
} .wpcf7-radio .wpcf7-list-item label:has(input:focus-visible)::before {
border-color: var(--color-shu);
box-shadow: 0 0 0 4px rgba(234, 85, 50, 0.18);
}
} .wpcf7-list-item-label {
font-weight: 400;
line-height: 1.65;
} .wpcf7-submit {
display: inline-flex;
align-items: center;
justify-content: center;
width: 100%;
padding: 22px;
font-size: 1.2rem;
font-family: var(--font-base);
font-weight: 700;
color: var(--color-white);
background: var(--color-shu);
border: none;
border-radius: 4px;
cursor: pointer;
letter-spacing: 0.08em;
transition:
transform    0.25s ease,
box-shadow   0.25s ease,
opacity      0.25s ease;
margin-top: 10px;
position: relative;
overflow: hidden;
}
.wpcf7-submit:hover {
transform: translateY(-3px);
box-shadow: 0 10px 28px rgba(234, 85, 50, 0.32);
}
.wpcf7-submit:active {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(234, 85, 50, 0.2);
}
.wpcf7-submit:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none;
box-shadow: none;
} .wpcf7-spinner {
display: inline-block;
width: 22px;
height: 22px;
margin-left: 10px;
vertical-align: middle;
opacity: 0.8;
} .wpcf7-response-output {
margin: 28px 0 0;
padding: 18px 22px;
border-radius: 4px;
font-size: 0.95rem;
line-height: 1.75;
border: none !important;
font-weight: 500;
} .wpcf7-mail-sent-ok {
background: #f0faf4;
color: #1a5c3a;
border-left: 4px solid var(--color-tokiwa) !important;
} .wpcf7-mail-sent-ng,
.wpcf7-aborted {
background: #fff5f3;
color: #b03010;
border-left: 4px solid var(--color-shu) !important;
} .wpcf7-validation-errors,
.wpcf7-acceptance-missing {
background: #fffbf0;
color: #7a5a00;
border-left: 4px solid var(--color-kogane) !important;
} .wpcf7-spam-blocked {
background: #f5f5f5;
color: var(--color-text-light);
border-left: 4px solid #AAAAAA !important;
} .wpcf7-not-valid {
border-color: var(--color-shu) !important;
box-shadow: 0 0 0 4px rgba(234, 85, 50, 0.12) !important;
}
.wpcf7-not-valid-tip {
display: block;
margin-top: 8px;
font-size: 0.85rem;
color: var(--color-shu);
font-weight: 500;
} .cf7-not-installed,
.cf7-no-form {
text-align: center;
padding: 50px 30px;
background: var(--color-bg-light);
border-radius: 4px;
color: var(--color-text-light);
line-height: 2;
}
.cf7-not-installed strong,
.cf7-no-form strong { color: var(--color-text); }
.cf7-not-installed a,
.cf7-no-form a {
color: var(--color-shu);
text-decoration: underline;
} .footer {
background-color: var(--color-ink);
color: var(--color-white);
} .footer-main {
padding: 80px 0 70px;
}
.footer-grid {
display: grid;
grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
gap: 50px;
align-items: start;
} .footer-col-title {
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
letter-spacing: var(--ls-wide);
color: rgba(255,255,255,0.45); margin-bottom: 28px;
display: block;
} .footer-logo-img {
height: 28px;
width: auto;
display: block;
margin-bottom: 28px;
filter: brightness(0) invert(1);
opacity: 0.88;
}
.footer-tagline {
font-size: 1rem;
color: rgba(255,255,255,0.75);
margin-bottom: 14px;
font-weight: 500;
}
.footer-copy-sub {
font-size: var(--fs-xs); color: rgba(255,255,255,0.55); line-height: var(--lh-relaxed);
margin-bottom: 32px;
} .footer-sns {
display: flex;
flex-direction: column;
gap: 10px;
margin-bottom: 28px;
}
.footer-sns-link {
display: inline-flex;
align-items: center;
gap: 10px;
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
color: rgba(255,255,255,0.6); letter-spacing: var(--ls-body);
transition: color var(--transition-fast);
}
.footer-sns-link:hover {
color: rgba(255,255,255,0.9);
}
.footer-sns-link--instagram:hover { color: var(--color-kogane); }
.footer-sns-link--youtube:hover   { color: #FF4444; }
.footer-sns-link--facebook:hover  { color: #4A90D9; }
.footer-sns-link--note:hover      { color: #41C9B4; }
.footer-sns-link svg {
flex-shrink: 0;
opacity: 0.7;
transition: opacity var(--transition-fast);
}
.footer-sns-link:hover svg { opacity: 1; } .footer-area-compact {
display: flex;
align-items: baseline;
gap: 10px;
font-size: var(--fs-xs); color: rgba(255,255,255,0.4); line-height: var(--lh-body);
}
.footer-area-label {
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
letter-spacing: var(--ls-wide);
color: rgba(255,255,255,0.35);
flex-shrink: 0;
} .footer-nav-list {
list-style: none;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4px 16px;
}
.footer-nav-list li {}
.footer-nav-list a {
display: block;
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
color: rgba(255,255,255,0.6); letter-spacing: var(--ls-body);
padding: 9px 0;
border-bottom: 1px solid rgba(255,255,255,0.06);
transition: color var(--transition-fast), padding-left var(--transition-fast);
}
.footer-nav-list a:hover {
color: var(--color-kogane);
padding-left: 6px;
} .footer-links-list {
list-style: none;
}
.footer-links-list li {
border-bottom: 1px solid rgba(255,255,255,0.05);
}
.footer-links-list a {
display: flex;
align-items: center;
gap: 8px;
font-size: var(--fs-xs); color: rgba(255,255,255,0.6); padding: 11px 0;
transition: color var(--transition-fast), padding-left var(--transition-fast);
}
.footer-links-list a:hover {
color: var(--color-kogane);
padding-left: 6px;
}
.footer-links-list svg {
flex-shrink: 0;
opacity: 0.6;
}
.footer-links-list a:hover svg { opacity: 1; } .footer-follow-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 10px;
}
.footer-instagram-icon {
color: var(--color-kogane); flex-shrink: 0;
}
.footer-follow-title {
font-family: 'Montserrat', sans-serif;
font-size: 1.1rem;
font-weight: 700;
letter-spacing: 0.2em;
color: var(--color-kogane);
}
.footer-follow-handle {
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
color: rgba(255,255,255,0.65); letter-spacing: var(--ls-label);
margin-bottom: 10px;
}
.footer-follow-desc {
font-size: var(--fs-xs); color: rgba(255,255,255,0.55); line-height: var(--lh-relaxed);
margin-bottom: 24px;
} .footer-feed-area {
display: flex;
flex-direction: column;
gap: 10px;
} .footer-feed-area iframe,
.footer-feed-area .twitter-timeline {
max-width: 100% !important;
border-radius: 4px;
overflow: hidden;
} .footer-follow-btn {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 13px 22px;
border: 1px solid rgba(255,255,255,0.18);
border-radius: 4px;
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
letter-spacing: var(--ls-body);
color: rgba(255,255,255,0.65); transition: border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast);
text-decoration: none;
}
.footer-follow-btn:hover {
border-color: var(--color-kogane);
color: var(--color-kogane);
background: rgba(230,180,34,0.05);
}
.footer-follow-btn--x:hover {
border-color: rgba(255,255,255,0.4);
color: rgba(255,255,255,0.8);
background: rgba(255,255,255,0.04);
}
.footer-widget-hint {
font-size: var(--fs-xs); color: rgba(255,255,255,0.35); line-height: var(--lh-body);
margin-top: 8px;
} .sns-links { display: flex; gap: 20px; }
.sns-links a { color: var(--color-white); opacity: 0.7; }
.sns-links a:hover { opacity: 1; color: var(--color-kogane); } .footer-seo-bar {
border-top: 1px solid rgba(255,255,255,0.06);
border-bottom: 1px solid rgba(255,255,255,0.06);
padding: 20px 0;
}
.footer-seo-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
flex-wrap: wrap;
}
.footer-seo-text {
display: flex;
align-items: baseline;
gap: 12px;
flex-wrap: wrap;
flex: 1;
}
.footer-seo-kicker {
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
letter-spacing: var(--ls-wide);
color: var(--color-kogane);
flex-shrink: 0;
}
.footer-seo-cities {
font-size: var(--fs-xs); color: rgba(255,255,255,0.45); line-height: var(--lh-body);
}
.footer-seo-cities span {
display: inline;
}
.footer-seo-cities span::after {
content: ' · ';
color: rgba(255,255,255,0.15);
}
.footer-seo-cities span:last-child::after { content: ''; }
.footer-seo-cta {
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
letter-spacing: var(--ls-label);
color: var(--color-shu);
white-space: nowrap;
transition: color var(--transition-fast);
flex-shrink: 0;
}
.footer-seo-cta:hover { color: var(--color-kogane); } .footer-bottom {
padding: 24px 0;
border-top: 1px solid rgba(255,255,255,0.06);
}
.footer-bottom-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
flex-wrap: wrap;
}
.footer-copyright {
font-size: var(--fs-xs); color: rgba(255,255,255,0.45); letter-spacing: var(--ls-body);
}
.footer-bottom-links {
display: flex;
gap: 20px;
}
.footer-bottom-links a {
font-family: var(--font-en);
font-size: var(--fs-xs); color: rgba(255,255,255,0.45); letter-spacing: var(--ls-body);
transition: color var(--transition-fast);
}
.footer-bottom-links a:hover { color: rgba(255,255,255,0.8); } @media (max-width: 1200px) {
.footer-grid {
grid-template-columns: 1.2fr 1fr 1fr;
gap: 44px;
}
.footer-col--social { grid-column: 1 / -1; }
.footer-feed-area { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 1024px) {
.footer-grid {
grid-template-columns: 1fr 1fr;
gap: 44px;
}
.footer-col--brand  { grid-column: 1 / -1; }
.footer-col--social { grid-column: 1 / -1; }
.footer-follow-header { margin-top: 0; }
.footer-feed-area { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 768px) {
.footer-main { padding: 60px 0 50px; }
.footer-grid {
grid-template-columns: 1fr;
gap: 40px;
}
.footer-col--brand  { grid-column: auto; }
.footer-col--social { grid-column: auto; }
.footer-seo-inner { flex-direction: column; align-items: flex-start; gap: 12px; }
.footer-bottom-inner { flex-direction: column; align-items: flex-start; gap: 10px; } .footer-inner { flex-direction: column; gap: 60px; }
.footer-links { width: 100%; justify-content: flex-start; }
.footer-links ul { text-align: left; }
} .page-top {
position: fixed;
bottom: 40px;
right: 40px;
width: 60px;
height: 60px;
background-color: var(--color-ink);
color: var(--color-white);
border: none;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
z-index: 900;
box-shadow: 0 10px 25px rgba(0,0,0,0.2);
opacity: 0;
visibility: hidden;
transform: translateY(20px);
transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.page-top.is-visible {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.page-top:hover {
background-color: var(--color-shu);
transform: translateY(-5px);
}
.bottom-cta {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background-color: rgba(255,255,255,0.95);
padding: 20px;
box-shadow: 0 -10px 30px rgba(0,0,0,0.08);
z-index: 900;
text-align: center;
transform: translateY(100%);
transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
backdrop-filter: blur(8px);
}
.bottom-cta.is-visible { transform: translateY(0); }
.btn-bottom-cta {
display: inline-flex;
width: 100%;
max-width: 450px;
padding: 22px;
font-size: 1.2rem;
background-color: var(--color-shu);
box-shadow: 0 5px 20px rgba(234, 85, 50, 0.3);
} @media (max-width: 1024px) {
.global-nav { display: none; }
.hamburger { display: block; }
.dual-section { flex-direction: column; gap: 80px; }
.about-flex { flex-direction: column; gap: 60px; }
.service-grid { grid-template-columns: 1fr; gap: 50px; }
}
@media (max-width: 768px) {
.section { padding: 120px 0; }
.hero-copy { font-size: 2.8rem; }
.footer-inner { flex-direction: column; gap: 60px; }
.footer-links { width: 100%; justify-content: flex-start; }
.footer-links ul { text-align: left; }
.blog-grid { grid-template-columns: 1fr; }
.diagnostic-container { padding: 50px 30px; }
.quiz-buttons { flex-direction: column; gap: 20px; }
.btn-quiz { width: 100%; padding: 20px; }
.contact-form-wrapper { padding: 50px 30px; }
.page-top { bottom: 110px; right: 20px; width: 50px; height: 50px; }
.btn-bottom-cta { padding: 18px; font-size: 1.1rem; }
}  .page-hero {
padding: 200px 0 120px;
background-color: var(--color-ink);
text-align: center;
position: relative;
overflow: hidden;
}
.page-hero::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background: linear-gradient(135deg, rgba(234,85,50,0.07) 0%, transparent 55%);
pointer-events: none;
}
.page-hero-en {
font-family: 'Montserrat', sans-serif;
font-size: 4.5rem;
font-weight: 700;
color: var(--color-white);
letter-spacing: 0.2em;
display: block;
line-height: 1;
margin-bottom: 20px;
}
.page-hero-ja {
font-family: var(--font-ja);
font-size: var(--fs-xs); font-weight: 500;
color: rgba(255,255,255,0.6); letter-spacing: 0.35em;
display: block;
}
.page-hero-desc {
font-size: 1.1rem;
color: rgba(255,255,255,0.72);
margin-top: 50px;
line-height: 2.2;
max-width: 680px;
margin-left: auto;
margin-right: auto;
letter-spacing: 0.08em;
} .breadcrumb {
font-family: var(--font-en);
font-size: var(--fs-xs); color: rgba(255,255,255,0.5); letter-spacing: var(--ls-label);
margin-top: 60px;
}
.breadcrumb a { color: rgba(255,255,255,0.65); }
.breadcrumb a:hover { color: var(--color-shu); }
.breadcrumb span { margin: 0 12px; } .strength-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 60px;
}
.strength-card {
text-align: center;
padding: 60px 30px;
border-top: 1px solid var(--color-bg-light);
transition: var(--transition-slow);
}
.strength-card:hover { transform: translateY(-8px); }
.strength-num {
font-family: 'Montserrat', sans-serif;
font-size: 0.8rem;
font-weight: 700;
color: var(--color-shu);
letter-spacing: 0.25em;
display: block;
margin-bottom: 30px;
}
.strength-icon {
margin-bottom: 30px;
color: var(--color-text);
}
.strength-title {
font-size: 1.25rem;
font-weight: 700;
margin-bottom: 20px;
line-height: 1.5;
}
.strength-body {
font-size: 0.95rem;
color: var(--color-text-light);
line-height: 1.95;
} .plan-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 30px;
align-items: start;
}
.plan-card {
background: var(--color-white);
border: 1px solid var(--color-bg-light);
border-radius: 4px;
padding: 55px 35px;
text-align: center;
position: relative;
transition: var(--transition-slow);
}
.plan-card:hover {
transform: translateY(-10px);
box-shadow: 0 20px 50px rgba(0,0,0,0.08);
}
.plan-card.is-featured {
border-top: 5px solid var(--color-shu);
box-shadow: 0 15px 40px rgba(0,0,0,0.06);
}
.plan-badge {
position: absolute;
top: 0; right: 0;
background-color: var(--color-shu);
color: var(--color-white);
font-size: 0.72rem;
font-weight: 700;
padding: 7px 18px;
letter-spacing: 0.12em;
font-family: 'Montserrat', sans-serif;
}
.plan-name {
font-size: 1rem;
font-weight: 700;
margin-bottom: 35px;
letter-spacing: 0.06em;
color: var(--color-text-light);
}
.plan-price {
font-family: 'Montserrat', sans-serif;
font-size: 3rem;
font-weight: 700;
color: var(--color-text);
line-height: 1;
margin-bottom: 8px;
letter-spacing: -0.02em;
}
.plan-price-unit {
font-size: 1.1rem;
font-weight: 500;
color: var(--color-text-light);
}
.plan-period {
font-size: 0.88rem;
color: var(--color-text-light);
margin-bottom: 40px;
padding-bottom: 40px;
border-bottom: 1px solid var(--color-bg-light);
}
.plan-features {
list-style: none;
text-align: left;
}
.plan-features li {
padding: 14px 0;
font-size: 0.92rem;
border-bottom: 1px solid var(--color-bg-light);
display: flex;
align-items: flex-start;
gap: 12px;
line-height: 1.6;
}
.plan-features li::before {
content: '';
width: 5px;
height: 5px;
background-color: var(--color-shu);
border-radius: 50%;
flex-shrink: 0;
margin-top: 7px;
}
.plan-note {
font-size: 0.82rem;
color: var(--color-text-light);
margin-top: 30px;
text-align: left;
line-height: 1.7;
} .step-list {
max-width: 780px;
margin: 0 auto;
}
.step-item {
display: flex;
gap: 50px;
align-items: flex-start;
padding-bottom: 60px;
position: relative;
}
.step-item:not(:last-child)::after {
content: '';
position: absolute;
left: 27px;
top: 56px;
width: 2px;
height: calc(100% - 56px);
background: linear-gradient(to bottom, var(--color-bg-light), transparent);
}
.step-num-wrap {
flex-shrink: 0;
width: 56px;
height: 56px;
background-color: var(--color-ink);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.step-num {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
font-weight: 700;
color: var(--color-white);
letter-spacing: 0.05em;
}
.step-body { padding-top: 12px; }
.step-title {
font-size: 1.2rem;
font-weight: 700;
margin-bottom: 12px;
}
.step-desc {
font-size: 0.95rem;
color: var(--color-text-light);
line-height: 1.9;
} .works-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 30px;
}
.work-card {
background: var(--color-white);
border-radius: 4px;
overflow: hidden;
padding: 0;
transition: var(--transition-slow);
border-left: 3px solid var(--color-bg-light);
box-shadow: 0 5px 20px rgba(0,0,0,0.03);
}
.work-card:hover {
box-shadow: 0 10px 28px rgba(0,0,0,0.09);
}
.work-card-link {
display: flex;
flex-direction: column;
height: 100%;
color: inherit;
text-decoration: none;
}
.work-card-thumb {
width: 100%;
height: 200px;
min-height: 200px;
flex-shrink: 0;
background-color: var(--color-bg-light);
background-size: cover;
background-position: center;
position: relative;
}
.work-card-body {
padding: 24px 24px 28px;
flex: 1;
display: flex;
flex-direction: column;
border-left: 3px solid var(--color-bg-light);
transition: border-color var(--transition-fast);
}
.work-card:hover .work-card-body {
border-left-color: var(--color-shu);
}
.work-type {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
font-weight: 700;
color: var(--color-shu);
letter-spacing: 0.22em;
display: block;
margin-bottom: 14px;
}
.work-client {
font-size: 1.05rem;
font-weight: 700;
margin-bottom: 12px;
line-height: 1.5;
}
.work-desc {
font-size: 0.88rem;
color: var(--color-text-light);
line-height: 1.85;
} .works-sub-heading {
font-size: 1.05rem;
font-weight: 700;
color: var(--color-text-light);
letter-spacing: 0.12em;
padding-bottom: 14px;
border-bottom: 2px solid var(--color-bg-light);
margin: 0 0 28px;
} .options-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
margin-bottom: 40px;
}
.option-item {
background: var(--color-white);
border: 1px solid var(--color-bg-light);
padding: 28px 20px;
border-radius: 4px;
font-size: 0.92rem;
font-weight: 700;
text-align: center;
color: var(--color-text);
letter-spacing: 0.05em;
} .video-types {
display: flex;
flex-wrap: wrap;
gap: 14px;
margin-bottom: 30px;
}
.video-type-tag {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 12px 22px;
border: 1px solid var(--color-bg-light);
border-radius: 40px;
font-size: 0.9rem;
font-weight: 700;
background: var(--color-white);
}
.video-type-tag::before {
content: '';
width: 6px;
height: 6px;
background-color: var(--color-shu);
border-radius: 50%;
} .profile-layout {
display: flex;
gap: 100px;
align-items: flex-start;
}
.profile-visual {
flex-shrink: 0;
width: 260px;
text-align: center;
} .profile-photo {
width: 260px;
margin-bottom: 30px;
position: relative;
}
.profile-photo::before {
content: '';
position: absolute;
top: 10px;
left: 10px;
right: -10px;
bottom: -10px;
border: 2px solid var(--color-shu);
border-radius: 4px;
opacity: 0.35;
pointer-events: none;
}
.profile-photo img {
width: 260px;
height: 320px;
object-fit: cover;
object-position: center top;
display: block;
border-radius: 4px;
position: relative;
z-index: 1;
} .profile-photo-placeholder {
width: 260px;
height: 320px;
background: linear-gradient(150deg, var(--color-bg-light) 0%, #e4e4e4 100%);
border-radius: 4px;
margin-bottom: 30px;
display: flex;
align-items: center;
justify-content: center;
color: #bbb;
border: 1px dashed var(--color-border);
}
.profile-name-en {
font-family: 'Montserrat', sans-serif;
font-size: 1.25rem;
font-weight: 700;
letter-spacing: 0.15em;
margin-bottom: 6px;
color: var(--color-text);
}
.profile-name-ja {
font-size: var(--fs-xs);
color: var(--color-text-muted);
letter-spacing: 0.18em;
}
.profile-info { flex: 1; } .profile-lead {
font-size: clamp(1.4rem, 2.5vw, 1.75rem);
font-weight: 700;
line-height: 1.7;
margin-bottom: 48px;
padding-left: 28px;
border-left: 3px solid var(--color-shu);
color: var(--color-text);
letter-spacing: 0.03em;
}
.profile-body p {
margin-bottom: 28px;
font-size: 1.05rem;
line-height: 2;
} .company-table {
width: 100%;
border-collapse: collapse;
}
.company-table tr { border-bottom: 1px solid var(--color-bg-light); }
.company-table tr:first-child { border-top: 1px solid var(--color-bg-light); }
.company-table th {
width: 200px;
padding: 28px 30px;
font-size: 0.85rem;
font-weight: 700;
color: var(--color-text-light);
letter-spacing: 0.1em;
text-align: left;
vertical-align: top;
white-space: nowrap;
}
.company-table td {
padding: 28px 30px;
font-size: 1rem;
line-height: 1.85;
vertical-align: top;
} .consulting-card {
background: var(--color-white);
border-radius: 8px;
padding: 80px 70px;
max-width: 960px;
margin: 0 auto;
color: var(--color-text);
box-shadow: 0 30px 60px rgba(0,0,0,0.25);
}
.consulting-eyecatch {
font-size: 1.6rem;
font-weight: 700;
line-height: 1.65;
margin-bottom: 20px;
}
.consulting-sub {
font-size: 1.05rem;
color: var(--color-text-light);
margin-bottom: 60px;
line-height: 1.9;
}
.consulting-features {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 25px;
margin-bottom: 60px;
}
.consulting-feature {
background: var(--color-bg);
border-radius: 4px;
padding: 35px 30px;
border-top: 3px solid var(--color-shu);
}
.consulting-feature-label {
font-family: 'Montserrat', sans-serif;
font-size: 0.75rem;
font-weight: 700;
color: var(--color-shu);
letter-spacing: 0.2em;
display: block;
margin-bottom: 14px;
}
.consulting-feature-title {
font-size: 1.1rem;
font-weight: 700;
margin-bottom: 12px;
}
.consulting-feature-body {
font-size: 0.92rem;
color: var(--color-text-light);
line-height: 1.85;
} .inner-cta-banner {
text-align: center;
padding: 0;
}
.inner-cta-banner .section-desc {
margin-bottom: 50px;
} @media (max-width: 1024px) {
.strength-grid { grid-template-columns: 1fr; gap: 0; }
.plan-grid { grid-template-columns: 1fr; gap: 30px; }
.works-grid { grid-template-columns: repeat(2, 1fr); }
.options-grid { grid-template-columns: repeat(2, 1fr); }
.profile-layout { flex-direction: column; gap: 60px; }
.profile-visual { width: 100%; }
.profile-photo-placeholder { width: 100%; max-width: 300px; margin: 0 auto 30px; }
.consulting-features { grid-template-columns: 1fr; }
.consulting-card { padding: 60px 40px; }
}
@media (max-width: 768px) {
.page-hero { padding: 160px 0 80px; }
.page-hero-en { font-size: 2.8rem; }
.works-grid { grid-template-columns: 1fr; }
.options-grid { grid-template-columns: 1fr; }
.consulting-card { padding: 50px 30px; }
.consulting-eyecatch { font-size: 1.3rem; }
.step-item { gap: 25px; }
.company-table th { width: 120px; padding: 20px 15px; }
.company-table td { padding: 20px 15px; }
.profile-lead { font-size: 1.4rem; }
}  .works-filter-bar {
display: flex;
flex-wrap: wrap;
gap: 12px;
justify-content: center;
margin-bottom: 80px;
}
.works-filter-btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 24px;
background: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: 2px;
font-family: 'Montserrat', sans-serif;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.15em;
color: var(--color-text-light);
cursor: pointer;
transition: var(--transition-fast);
}
.works-filter-btn:hover {
border-color: var(--color-shu);
color: var(--color-shu);
}
.works-filter-btn.is-active {
background: var(--color-shu);
border-color: var(--color-shu);
color: var(--color-white);
}
.works-filter-count {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 22px;
height: 22px;
padding: 0 6px;
background: rgba(0,0,0,0.12);
border-radius: 999px;
font-size: 0.7rem;
font-weight: 700;
}
.works-filter-btn.is-active .works-filter-count {
background: rgba(255,255,255,0.25);
} .works-archive-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 36px;
} .works-archive-card {
background: var(--color-white);
border-radius: 4px;
overflow: hidden;
box-shadow: 0 4px 20px rgba(0,0,0,0.05);
transition: var(--transition-slow);
display: flex;
flex-direction: column;
}
.works-archive-card:hover {
transform: translateY(-10px);
box-shadow: 0 20px 40px rgba(0,0,0,0.09);
}
.works-archive-card-link {
display: flex;
flex-direction: column;
height: 100%;
color: inherit;
} .works-archive-thumb {
position: relative;
width: 100%;
height: 220px;
min-height: 220px;
flex-shrink: 0;
background-color: var(--color-bg-light);
background-size: cover;
background-position: center;
overflow: hidden;
}
.works-archive-thumb::after {
content: '';
position: absolute;
inset: 0;
background: rgba(0,0,0,0);
transition: var(--transition-fast);
}
.works-archive-card:hover .works-archive-thumb::after {
background: rgba(0,0,0,0.08);
} .works-cat-badge {
position: absolute;
top: 16px;
left: 16px;
z-index: 1;
display: inline-block;
padding: 4px 12px;
background: var(--color-shu);
color: var(--color-white);
font-family: 'Montserrat', sans-serif;
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.18em;
border-radius: 2px;
text-transform: uppercase;
}
.works-cat-badge--link {
position: static;
margin-right: 8px;
text-decoration: none;
transition: var(--transition-fast);
}
.works-cat-badge--link:hover {
background: var(--color-text);
} .works-archive-body {
padding: 28px 28px 32px;
flex: 1;
display: flex;
flex-direction: column;
gap: 8px;
}
.works-archive-client {
font-size: 0.78rem;
color: var(--color-text-light);
letter-spacing: 0.08em;
margin: 0;
}
.works-archive-title {
font-size: 1.05rem;
font-weight: 700;
line-height: 1.6;
margin: 0;
}
.works-archive-excerpt {
font-size: 0.88rem;
color: var(--color-text-light);
line-height: 1.8;
margin: 0;
flex: 1;
}
.works-archive-more {
display: block;
margin-top: 12px;
font-family: 'Montserrat', sans-serif;
font-size: 0.78rem;
font-weight: 700;
color: var(--color-shu);
letter-spacing: 0.1em;
transition: var(--transition-fast);
}
.works-archive-card:hover .works-archive-more {
letter-spacing: 0.18em;
} .works-pagination {
text-align: center;
margin-top: 80px;
}
.works-pagination .page-numbers {
display: inline-flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
margin: 0 4px;
border: 1px solid var(--color-border);
border-radius: 2px;
font-family: 'Montserrat', sans-serif;
font-size: 0.85rem;
font-weight: 700;
color: var(--color-text-light);
text-decoration: none;
transition: var(--transition-fast);
}
.works-pagination .page-numbers:hover,
.works-pagination .page-numbers.current {
background: var(--color-shu);
border-color: var(--color-shu);
color: var(--color-white);
}
.works-pagination .page-numbers.prev,
.works-pagination .page-numbers.next {
width: auto;
padding: 0 20px;
letter-spacing: 0.1em;
} .works-filter-empty {
text-align: center;
padding: 80px 0;
color: var(--color-text-light);
} .works-empty {
text-align: center;
padding: 80px 0;
color: var(--color-text-light);
} .works-single {
max-width: 900px;
margin: 0 auto;
} .works-single-header {
margin-bottom: 48px;
}
.works-single-cats {
margin-bottom: 20px;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.works-single-title {
font-size: 2.2rem;
font-weight: 700;
line-height: 1.5;
} .works-meta-bar {
display: flex;
flex-wrap: wrap;
gap: 0;
border: 1px solid var(--color-border);
border-radius: 4px;
overflow: hidden;
margin-bottom: 60px;
}
.works-meta-item {
display: flex;
flex-direction: column;
padding: 20px 28px;
border-right: 1px solid var(--color-border);
flex: 1;
min-width: 160px;
}
.works-meta-item:last-child { border-right: none; }
.works-meta-label {
font-family: 'Montserrat', sans-serif;
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.15em;
color: var(--color-text-light);
margin-bottom: 6px;
text-transform: uppercase;
}
.works-meta-value {
font-size: 0.95rem;
font-weight: 500;
color: var(--color-text);
}
.works-meta-url {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 0.88rem;
font-weight: 700;
color: var(--color-shu);
transition: var(--transition-fast);
}
.works-meta-url:hover { opacity: 0.75; } .works-single-hero-img {
margin-bottom: 60px;
border-radius: 4px;
overflow: hidden;
box-shadow: 0 8px 40px rgba(0,0,0,0.08);
} .works-single-body {
margin-bottom: 80px;
font-size: 1.05rem;
line-height: 2;
} .works-section-block {
margin-bottom: 60px;
padding: 60px;
border-radius: 4px;
}
.works-section-block--challenge {
background: var(--color-bg);
border-left: 4px solid var(--color-shu);
}
.works-section-block--points {
background: var(--color-ink);
color: var(--color-white);
}
.works-section-block-title {
font-size: 1.4rem;
font-weight: 700;
margin-bottom: 32px;
line-height: 1.4;
}
.works-section-block-en {
display: block;
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.25em;
color: var(--color-shu);
margin-bottom: 10px;
}
.works-section-block--points .works-section-block-en {
color: var(--color-kogane);
}
.works-section-block-body {
font-size: 1rem;
line-height: 2;
color: var(--color-text);
}
.works-section-block--challenge .works-section-block-body {
color: var(--color-text);
} .works-points-list {
list-style: none;
display: flex;
flex-direction: column;
gap: 36px;
}
.works-point-item {
display: flex;
gap: 28px;
align-items: flex-start;
}
.works-point-num {
flex-shrink: 0;
width: 48px;
height: 48px;
display: flex;
align-items: center;
justify-content: center;
border: 2px solid var(--color-kogane);
border-radius: 50%;
font-family: 'Montserrat', sans-serif;
font-size: 1rem;
font-weight: 700;
color: var(--color-kogane);
line-height: 1;
}
.works-point-body {
flex: 1;
font-size: 1rem;
line-height: 1.9;
color: rgba(255,255,255,0.88);
padding-top: 10px;
} .works-external-cta {
text-align: center;
margin: 60px 0;
}
.works-external-btn {
display: inline-flex;
align-items: center;
} .works-single-nav {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
margin-top: 80px;
padding-top: 48px;
border-top: 1px solid var(--color-border);
}
.works-nav-link {
display: flex;
flex-direction: column;
gap: 6px;
max-width: 280px;
transition: var(--transition-fast);
}
.works-nav-link--prev { align-items: flex-start; }
.works-nav-link--next { align-items: flex-end; text-align: right; }
.works-nav-dir {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
font-weight: 700;
color: var(--color-shu);
letter-spacing: 0.15em;
}
.works-nav-title {
font-size: 0.9rem;
color: var(--color-text-light);
line-height: 1.5;
}
.works-nav-link:hover .works-nav-title { color: var(--color-text); }
.works-nav-archive {
flex-shrink: 0;
padding: 12px 28px;
border: 1px solid var(--color-border);
border-radius: 2px;
font-family: 'Montserrat', sans-serif;
font-size: 0.78rem;
font-weight: 700;
color: var(--color-text-light);
letter-spacing: 0.1em;
transition: var(--transition-fast);
}
.works-nav-archive:hover {
border-color: var(--color-shu);
color: var(--color-shu);
}  .nb-filter-bar {
display: flex;
flex-wrap: wrap;
gap: 12px;
justify-content: center;
margin-bottom: 80px;
}
.nb-filter-btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 28px;
background: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: 2px;
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
letter-spacing: var(--ls-label);
color: var(--color-text-light);
cursor: pointer;
transition: var(--transition-fast);
}
.nb-filter-btn:hover {
border-color: var(--color-shu);
color: var(--color-shu);
}
.nb-filter-btn.is-active {
background: var(--color-shu);
border-color: var(--color-shu);
color: var(--color-white);
} .nb-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 36px;
} .nb-card {
background: var(--color-white);
border-radius: 4px;
overflow: hidden;
box-shadow: 0 4px 20px rgba(0,0,0,0.05);
transition: var(--transition-slow);
display: flex;
flex-direction: column;
}
.nb-card:hover {
box-shadow: 0 12px 32px rgba(0,0,0,0.10);
}
.nb-card-link {
display: flex;
flex-direction: column;
height: 100%;
color: inherit;
} .nb-thumb {
position: relative;
width: 100%;
height: 200px;
flex-shrink: 0;
background-color: var(--color-bg-light);
background-size: cover;
background-position: center;
} .nb-type-badge {
position: absolute;
top: 14px;
right: 14px;
display: inline-block;
padding: 4px 10px;
border-radius: 2px;
font-family: var(--font-en);
font-size: var(--fs-xs); font-weight: 700;
letter-spacing: var(--ls-label);
}
.nb-type-badge--news {
background: var(--color-kachi);
color: var(--color-white);
}
.nb-type-badge--blog {
background: var(--color-shu);
color: var(--color-white);
} .nb-body {
padding: 24px 24px 28px;
flex: 1;
display: flex;
flex-direction: column;
gap: 10px;
}
.nb-meta {
display: flex;
align-items: center;
gap: 12px;
flex-wrap: wrap;
}
.nb-date {
font-family: 'Montserrat', sans-serif;
font-size: 0.8rem;
color: var(--color-text-light);
letter-spacing: 0.08em;
}
.nb-cat {
font-size: 0.75rem;
color: var(--color-shu);
font-weight: 700;
letter-spacing: 0.1em;
}
.nb-title {
font-size: 1rem;
font-weight: 700;
line-height: 1.65;
margin: 0;
}
.nb-excerpt {
font-size: 0.85rem;
color: var(--color-text-light);
line-height: 1.8;
margin: 0;
flex: 1;
} .single-article {
max-width: 800px;
margin: 0 auto;
}
.single-header {
margin-bottom: 56px;
}
.single-meta-row {
display: flex;
align-items: center;
gap: 14px;
flex-wrap: wrap;
margin-bottom: 20px;
}
.single-date {
font-family: var(--font-en);
font-size: var(--fs-xs); color: var(--color-text-muted);
letter-spacing: var(--ls-label);
}
.single-cats {
display: flex;
gap: 6px;
flex-wrap: wrap;
}
.single-cat-link {
display: inline-block;
padding: 4px 12px;
border: 1px solid var(--color-border);
border-radius: 2px;
font-size: var(--fs-xs); color: var(--color-text-light);
letter-spacing: var(--ls-body);
transition: var(--transition-fast);
}
.single-cat-link:hover {
border-color: var(--color-shu);
color: var(--color-shu);
}
.single-title {
font-size: var(--fs-h1);
font-weight: 700;
line-height: var(--lh-heading);
margin-bottom: 16px;
} .reading-time {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: var(--fs-xs); color: var(--color-text-muted);
font-family: var(--font-en);
margin-top: 4px;
margin-bottom: 0;
letter-spacing: 0.04em;
}
.reading-time svg { flex-shrink: 0; opacity: 0.7; }
.reading-time strong { color: var(--color-shu); font-weight: 700; }
.single-thumbnail {
margin-bottom: 60px;
border-radius: 4px;
overflow: hidden;
box-shadow: 0 8px 40px rgba(0,0,0,0.08);
}
.single-content {
font-size: 1.05rem;
line-height: 2.1;
margin-bottom: 60px;
}  .single-content .wp-block-embed,
.single-content figure.wp-block-embed,
.entry-content .wp-block-embed,
.entry-content figure.wp-block-embed {
margin: 40px 0;
max-width: 100%;
}
.single-content .wp-block-embed__wrapper,
.entry-content .wp-block-embed__wrapper {
position: relative;
width: 100%;
padding-bottom: 56.25%; height: 0;
overflow: hidden;
border-radius: 6px;
background: var(--color-ink);
}
.single-content .wp-block-embed__wrapper iframe,
.entry-content .wp-block-embed__wrapper iframe {
position: absolute;
top: 0; left: 0;
width: 100%;
height: 100%;
border: none;
} .single-content .embed-responsive,
.entry-content .embed-responsive {
position: relative;
width: 100%;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
border-radius: 6px;
}
.single-content .embed-responsive iframe,
.entry-content .embed-responsive iframe {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
border: none;
} .single-content .twitter-tweet,
.entry-content .twitter-tweet {
margin: 32px auto !important;
max-width: 550px !important;
width: 100% !important;
} .single-content .instagram-media,
.entry-content .instagram-media {
margin: 32px auto !important;
max-width: 540px !important;
min-width: unset !important;
width: 100% !important;
} .single-content blockquote.tiktok-embed,
.entry-content blockquote.tiktok-embed {
margin: 32px auto !important;
max-width: 605px;
min-width: unset !important;
width: 100% !important;
} .single-content .wp-block-embed.is-type-rich .wp-block-embed__wrapper,
.entry-content .wp-block-embed.is-type-rich .wp-block-embed__wrapper {
padding-bottom: 0;
height: auto;
overflow: visible;
background: none;
}
.single-content .wp-block-embed.is-type-rich iframe,
.entry-content .wp-block-embed.is-type-rich iframe {
position: static;
width: 100%;
height: auto;
min-height: 152px;
border-radius: 6px;
} .single-content iframe,
.entry-content iframe {
max-width: 100%;
border-radius: 4px;
border: none;
} .single-content .wp-block-video,
.entry-content .wp-block-video {
margin: 40px 0;
}
.single-content .wp-block-video video,
.entry-content .wp-block-video video {
width: 100%;
height: auto;
border-radius: 6px;
} .single-content figure.wp-block-embed,
.entry-content figure.wp-block-embed {
text-align: center;
}
.single-content figure.wp-block-embed figcaption,
.entry-content figure.wp-block-embed figcaption {
font-size: 0.82rem;
color: var(--color-text-light);
margin-top: 12px;
text-align: center;
} @media (max-width: 768px) {
.single-content .twitter-tweet,
.entry-content .twitter-tweet,
.single-content .instagram-media,
.entry-content .instagram-media {
margin: 24px auto !important;
}
}
.single-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 60px;
padding-top: 40px;
border-top: 1px solid var(--color-bg-light);
}
.single-tag {
display: inline-block;
padding: 4px 14px;
background: var(--color-bg);
border-radius: 2px;
font-size: 0.8rem;
color: var(--color-text-light);
transition: var(--transition-fast);
}
.single-tag:hover { color: var(--color-shu); } .single-post-nav {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
padding-top: 48px;
border-top: 1px solid var(--color-bg-light);
}
.single-nav-link {
display: flex;
flex-direction: column;
gap: 6px;
max-width: 260px;
transition: var(--transition-fast);
}
.single-nav-link--prev { align-items: flex-start; }
.single-nav-link--next { align-items: flex-end; text-align: right; }
.single-nav-dir {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
font-weight: 700;
color: var(--color-shu);
letter-spacing: 0.12em;
}
.single-nav-label {
font-size: 0.88rem;
color: var(--color-text-light);
line-height: 1.5;
}
.single-nav-link:hover .single-nav-label { color: var(--color-text); } @media (max-width: 1024px) {
.works-archive-grid { grid-template-columns: repeat(2, 1fr); }
.nb-grid { grid-template-columns: repeat(2, 1fr); }
.works-section-block { padding: 48px 40px; }
.works-meta-bar { flex-direction: column; }
.works-meta-item { border-right: none; border-bottom: 1px solid var(--color-border); }
.works-meta-item:last-child { border-bottom: none; }
}
@media (max-width: 768px) {
.works-archive-grid { grid-template-columns: 1fr; gap: 24px; }
.nb-grid { grid-template-columns: 1fr; gap: 24px; }
.works-filter-bar,
.nb-filter-bar { gap: 8px; }
.works-filter-btn,
.nb-filter-btn { padding: 8px 18px; font-size: var(--fs-xs); } .works-archive-thumb { height: 180px; }
.works-single-title { font-size: 1.6rem; }
.works-section-block { padding: 36px 28px; }
.works-point-item { flex-direction: column; gap: 16px; }
.works-point-num { width: 40px; height: 40px; }
.works-single-nav { flex-direction: column; gap: 16px; }
.works-nav-link--next { align-items: flex-start; text-align: left; }
.single-title { font-size: 1.5rem; }
.single-post-nav { flex-direction: column; gap: 16px; }
.single-nav-link--next { align-items: flex-start; text-align: left; }
.nb-thumb { height: 180px; }
}  .btn-primary,
.btn-submit,
.btn-bottom-cta {
overflow: hidden; }
.btn-primary::after,
.btn-submit::after,
.btn-bottom-cta::after {
content: '';
position: absolute;
top: -50%;
left: -80%;
width: 50%;
height: 200%;
background: linear-gradient(
to right,
rgba(255,255,255,0) 0%,
rgba(255,255,255,0.28) 50%,
rgba(255,255,255,0) 100%
);
transform: skewX(-20deg);
transition: left 0.65s cubic-bezier(0.16, 1, 0.3, 1);
pointer-events: none;
z-index: 2;
}
.btn-primary:hover::after,
.btn-submit:hover::after,
.btn-bottom-cta:hover::after {
left: 130%;
} .section {
transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1),
transform 1.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
} .works-more-cta {
text-align: center;
margin-top: 70px;
padding-top: 60px;
border-top: 1px solid var(--color-bg-light);
}
.btn-works-more {
display: inline-flex;
align-items: center;
gap: 12px;
padding: 20px 52px;
background: transparent;
border: 2px solid var(--color-shu);
color: var(--color-shu);
font-weight: 700;
font-size: 1rem;
border-radius: 4px;
letter-spacing: 0.08em;
position: relative;
overflow: hidden;
transition: color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
z-index: 1;
}
.btn-works-more::before {
content: '';
position: absolute;
inset: 0;
background-color: var(--color-shu);
transform: scaleX(0);
transform-origin: right;
transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
z-index: -1;
}
.btn-works-more:hover {
color: var(--color-white);
box-shadow: 0 10px 30px rgba(234,85,50,0.3);
transform: translateY(-3px);
}
.btn-works-more:hover::before {
transform: scaleX(1);
transform-origin: left;
}
.btn-works-more svg {
transition: transform var(--transition-fast);
}
.btn-works-more:hover svg {
transform: translateX(6px);
} .section-list-btn {
text-align: center;
margin-top: 70px;
padding-top: 60px;
border-top: 1px solid var(--color-bg-light);
} .micro-copy {
text-align: center;
margin-top: 18px;
font-size: 0.88rem;
color: var(--color-text-light);
letter-spacing: 0.06em;
line-height: 1.7;
}
.micro-copy strong {
color: var(--color-shu);
font-weight: 700;
} .recommend-section {
background: var(--color-bg);
padding: 100px 0;
}
.recommend-label-en {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.28em;
color: var(--color-shu);
display: block;
text-align: center;
margin-bottom: 10px;
}
.recommend-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
margin-top: 60px;
}
.recommend-card {
background: var(--color-white);
border-radius: 4px;
overflow: hidden;
transition: var(--transition-slow);
box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}
.recommend-card:hover {
transform: translateY(-8px);
box-shadow: 0 20px 40px rgba(0,0,0,0.09);
}
.recommend-card-link {
display: flex;
flex-direction: column;
color: inherit;
height: 100%;
}
.recommend-thumb {
width: 100%;
height: 180px;
background-color: var(--color-bg-light);
background-size: cover;
background-position: center;
}
.recommend-body {
padding: 24px 24px 28px;
flex: 1;
display: flex;
flex-direction: column;
gap: 8px;
}
.recommend-date {
font-family: 'Montserrat', sans-serif;
font-size: 0.78rem;
color: var(--color-text-light);
}
.recommend-cat {
font-size: 0.72rem;
font-weight: 700;
color: var(--color-shu);
letter-spacing: 0.1em;
font-family: 'Montserrat', sans-serif;
}
.recommend-title {
font-size: 0.98rem;
font-weight: 700;
line-height: 1.65;
flex: 1;
}
@media (max-width: 768px) {
.recommend-grid { grid-template-columns: 1fr; }
} .voice-section {
margin: 70px 0;
}
.voice-section-label {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.25em;
color: var(--color-kogane);
display: block;
margin-bottom: 10px;
}
.voice-section-title {
font-size: 1.4rem;
font-weight: 700;
margin-bottom: 36px;
}
.voice-blockquote {
background: var(--color-bg);
border-left: 4px solid var(--color-kogane);
border-radius: 0 6px 6px 0;
padding: 52px 64px 52px 60px;
position: relative;
margin: 0;
overflow: hidden;
}
.voice-blockquote::before {
content: '\201C';
position: absolute;
top: 10px;
left: 22px;
font-family: Georgia, serif;
font-size: 7rem;
color: var(--color-kogane);
opacity: 0.15;
line-height: 1;
pointer-events: none;
}
.voice-text {
font-size: 1.08rem;
line-height: 2.1;
color: var(--color-text);
position: relative;
z-index: 1;
margin-bottom: 28px;
font-style: normal;
}
.voice-cite {
display: flex;
align-items: center;
gap: 14px;
font-style: normal;
font-size: 0.88rem;
color: var(--color-text-light);
}
.voice-cite::before {
content: '';
display: inline-block;
width: 32px;
height: 2px;
background: var(--color-kogane);
flex-shrink: 0;
}
.voice-cite strong {
color: var(--color-text);
font-weight: 700;
}
@media (max-width: 768px) {
.voice-blockquote { padding: 40px 30px 40px 36px; }
} .faq-list {
max-width: 860px;
margin: 0 auto;
}
.faq-item {
border-bottom: 1px solid var(--color-bg-light);
}
.faq-item:first-child {
border-top: 1px solid var(--color-bg-light);
}
.faq-question {
width: 100%;
background: none;
border: none;
text-align: left;
cursor: pointer;
padding: 30px 16px;
display: flex;
align-items: center;
gap: 16px;
font-family: var(--font-base);
font-size: 1.05rem;
font-weight: 700;
color: var(--color-text);
letter-spacing: 0.04em;
line-height: 1.6;
transition: color var(--transition-fast);
}
.faq-question:hover {
color: var(--color-shu);
}
.faq-q-label {
font-family: 'Montserrat', sans-serif;
font-size: 1.1rem;
font-weight: 700;
color: var(--color-shu);
flex-shrink: 0;
}
.faq-q-text {
flex: 1;
}
.faq-icon {
flex-shrink: 0;
width: 28px;
height: 28px;
border: 2px solid var(--color-shu);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: var(--color-shu);
transition: transform 0.4s cubic-bezier(0.16,1,0.3,1), background var(--transition-fast), color var(--transition-fast);
}
.faq-item.is-open .faq-icon {
transform: rotate(45deg);
background: var(--color-shu);
color: var(--color-white);
}
.faq-answer {
display: none;
padding: 0 16px 30px 60px;
font-size: 0.98rem;
color: var(--color-text-light);
line-height: 2;
}
.faq-answer a {
color: var(--color-shu);
text-decoration: underline;
text-underline-offset: 3px;
}
@media (max-width: 768px) {
.faq-answer { padding-left: 16px; }
} .footer-local-seo {
background: rgba(255,255,255,0.03);
border-top: 1px solid rgba(255,255,255,0.07);
border-bottom: 1px solid rgba(255,255,255,0.07);
padding: 50px 0;
margin-bottom: 60px;
}
.local-seo-inner {
max-width: 1100px;
margin: 0 auto;
padding: 0 6%;
display: flex;
gap: 60px;
align-items: center;
}
.local-seo-body { flex: 1; }
.local-seo-kicker {
font-family: 'Montserrat', sans-serif;
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.25em;
color: var(--color-kogane);
display: block;
margin-bottom: 12px;
}
.local-seo-heading {
font-size: 1.05rem;
font-weight: 700;
color: var(--color-white);
margin-bottom: 14px;
line-height: 1.65;
}
.local-seo-cities {
display: flex;
flex-wrap: wrap;
gap: 6px 20px;
margin-bottom: 12px;
}
.local-seo-cities span {
font-size: 0.82rem;
color: rgba(255,255,255,0.55);
}
.local-seo-cities span::before {
content: '◆ ';
color: var(--color-shu);
font-size: 0.5em;
vertical-align: middle;
margin-right: 2px;
}
.local-seo-note {
font-size: 0.78rem;
color: rgba(255,255,255,0.3);
line-height: 1.7;
}
.local-seo-action { flex-shrink: 0; }
.local-seo-action .btn-primary {
white-space: nowrap;
padding: 16px 32px;
font-size: 0.92rem;
}
@media (max-width: 768px) {
.local-seo-inner { flex-direction: column; gap: 30px; }
.local-seo-action { width: 100%; text-align: center; }
} .diagnostic-banner {
background: linear-gradient(135deg, var(--color-ink) 60%, #2b1708 100%);
border-radius: 8px;
padding: 55px 50px;
text-align: center;
border: 1px solid rgba(234,85,50,0.18);
box-shadow: 0 12px 50px rgba(0,0,0,0.12);
margin: 70px 0 0;
}
.diagnostic-banner-kicker {
font-family: 'Montserrat', sans-serif;
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.28em;
color: var(--color-shu);
display: block;
margin-bottom: 16px;
}
.diagnostic-banner-title {
font-size: 1.4rem;
font-weight: 700;
color: var(--color-white);
line-height: 1.65;
margin-bottom: 14px;
}
.diagnostic-banner-desc {
font-size: 0.93rem;
color: rgba(255,255,255,0.55);
line-height: 1.9;
margin-bottom: 32px;
}
.diagnostic-banner .btn-primary {
padding: 16px 42px;
font-size: 0.95rem;
}
@media (max-width: 768px) {
.diagnostic-banner { padding: 40px 28px; }
} .result-service-links {
display: flex;
flex-wrap: wrap;
gap: 14px;
justify-content: center;
margin-top: 32px;
padding-top: 32px;
border-top: 1px solid var(--color-bg-light);
}
.result-service-link {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 14px 30px;
border: 1px solid var(--color-border);
border-radius: 4px;
font-size: 0.9rem;
font-weight: 700;
color: var(--color-text);
transition: var(--transition-fast);
letter-spacing: 0.04em;
}
.result-service-link:hover {
border-color: var(--color-shu);
color: var(--color-shu);
transform: translateY(-2px);
}
.result-service-link .link-tag {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
color: var(--color-shu);
font-weight: 700;
letter-spacing: 0.1em;
} .works-invite-wrap {
text-align: center;
padding: 80px 0 40px;
}
.works-invite-wrap .section-desc {
margin-bottom: 40px;
} .triple-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 6px;
margin-bottom: 8px;
}
.triple-item {
background: var(--color-ink);
color: var(--color-white);
padding: 60px 36px;
text-align: center;
position: relative;
transition: background var(--transition-slow);
overflow: hidden;
}
.triple-item:hover { background: #202020; }
.triple-item-bg-num {
font-family: 'Montserrat', sans-serif;
font-size: 6rem;
font-weight: 700;
color: var(--color-kogane);
opacity: 0.08;
position: absolute;
top: 10px;
left: 16px;
line-height: 1;
pointer-events: none;
}
.triple-item-icon {
font-size: 2.2rem; line-height: 1;
}
.triple-item-title {
font-size: 1.25rem;
font-weight: 700;
margin-bottom: 14px;
color: var(--color-white);
line-height: 1.4;
}
.triple-item-sub {
font-size: 0.87rem;
color: rgba(255,255,255,0.55);
line-height: 1.9;
}
.triple-conclusion {
background: linear-gradient(100deg, var(--color-shu) 0%, #bf3a1e 100%);
color: var(--color-white);
border-radius: 0 0 4px 4px;
padding: 50px 40px;
text-align: center;
}
.triple-conclusion-main {
font-size: 1.5rem;
font-weight: 700;
line-height: 1.65;
margin-bottom: 16px;
}
.triple-conclusion-sub {
font-size: 0.95rem;
opacity: 0.85;
line-height: 1.95;
}
@media (max-width: 1024px) {
.triple-grid { grid-template-columns: 1fr; }
.triple-conclusion { border-radius: 0 0 4px 4px; }
} .btn-secondary {
display: inline-flex;
justify-content: center;
align-items: center;
padding: 18px 44px;
background: var(--color-white);
color: var(--color-shu);
font-weight: 700;
border-radius: 4px;
border: 2px solid var(--color-shu);
font-size: 1rem;
letter-spacing: 0.06em;
transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}
.btn-secondary:hover {
background: var(--color-shu);
color: var(--color-white);
transform: translateY(-3px);
box-shadow: 0 10px 28px rgba(234,85,50,0.28);
} .error404-section {
min-height: calc(100vh - 80px);
display: flex;
align-items: center;
justify-content: center;
background: var(--color-bg);
position: relative;
overflow: hidden;
padding: 120px 0 100px;
}
.error404-bg-num {
position: absolute;
font-family: 'Montserrat', sans-serif;
font-size: clamp(12rem, 30vw, 28rem);
font-weight: 700;
color: var(--color-border);
opacity: 0.35;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none;
user-select: none;
letter-spacing: -0.05em;
white-space: nowrap;
line-height: 1;
}
.error404-inner {
position: relative;
z-index: 1;
text-align: center;
max-width: 740px;
}
.error404-icon {
color: var(--color-shu);
margin-bottom: 28px;
display: flex;
justify-content: center;
}
.error404-en {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
letter-spacing: 0.25em;
color: var(--color-shu);
display: block;
margin-bottom: 20px;
text-transform: uppercase;
}
.error404-title {
font-size: clamp(1.5rem, 3.5vw, 2.2rem);
font-weight: 700;
line-height: 1.55;
margin-bottom: 20px;
color: var(--color-text);
}
.error404-desc {
font-size: 0.93rem;
color: var(--color-text-light);
line-height: 1.9;
margin-bottom: 48px;
}
.error404-actions {
display: flex;
justify-content: center;
gap: 16px;
flex-wrap: wrap;
margin-bottom: 72px;
}
.btn-outline-dark {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 17px 40px;
border: 2px solid var(--color-text);
color: var(--color-text);
font-family: 'Montserrat', sans-serif;
font-size: 0.88rem;
font-weight: 700;
letter-spacing: 0.1em;
border-radius: 4px;
transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}
.btn-outline-dark:hover {
background: var(--color-text);
color: var(--color-white);
transform: translateY(-2px);
} .error404-nav {
padding-top: 48px;
border-top: 1px solid var(--color-border);
}
.error404-nav-title {
font-family: 'Montserrat', sans-serif;
font-size: 0.7rem;
letter-spacing: 0.2em;
color: var(--color-text-light);
text-transform: uppercase;
margin-bottom: 24px;
}
.error404-nav-list {
list-style: none;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
}
.error404-nav-list li a {
display: flex;
flex-direction: column;
align-items: center;
gap: 5px;
padding: 20px 12px;
background: var(--color-white);
border: 1px solid var(--color-border);
border-radius: 4px;
transition: border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
text-decoration: none;
}
.error404-nav-list li a:hover {
border-color: var(--color-shu);
transform: translateY(-3px);
box-shadow: 0 8px 24px rgba(0,0,0,0.07);
}
.error404-nav-en {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.15em;
color: var(--color-shu);
}
.error404-nav-ja {
font-size: 0.85rem;
color: var(--color-text);
font-weight: 500;
}
@media (max-width: 640px) {
.error404-nav-list {
grid-template-columns: repeat(2, 1fr);
}
.error404-actions {
flex-direction: column;
align-items: center;
}
.error404-actions .btn-primary,
.error404-actions .btn-outline-dark {
width: 100%;
max-width: 320px;
}
} .toc {
margin: 40px 0 48px;
border: 1px solid var(--color-border);
border-top: 3px solid var(--color-shu);
border-radius: 0 0 6px 6px;
background: var(--color-bg);
}
.toc-inner {
padding: 28px 36px 32px;
}
.toc-title {
font-family: 'Montserrat', sans-serif;
font-size: 0.75rem;
font-weight: 700;
letter-spacing: 0.15em;
color: var(--color-shu);
text-transform: uppercase;
margin-bottom: 18px;
display: flex;
align-items: center;
gap: 10px;
}
.toc-title::before {
content: '';
display: inline-block;
width: 18px;
height: 2px;
background: var(--color-shu);
flex-shrink: 0;
}
.toc-list {
list-style: none;
counter-reset: toc-counter;
display: flex;
flex-direction: column;
gap: 6px;
}
.toc-item {
counter-increment: toc-counter;
line-height: 1.6;
}
.toc-item a {
display: flex;
align-items: baseline;
gap: 10px;
font-size: 0.92rem;
color: var(--color-text);
padding: 4px 0;
border-bottom: 1px solid transparent;
transition: color var(--transition-fast), border-color var(--transition-fast);
}
.toc-item a::before {
content: counter(toc-counter, decimal-leading-zero);
font-family: 'Montserrat', sans-serif;
font-size: 0.7rem;
font-weight: 700;
color: var(--color-shu);
flex-shrink: 0;
min-width: 2em;
}
.toc-item a:hover {
color: var(--color-shu);
border-bottom-color: var(--color-shu);
} .toc-item--h1 > a {
font-weight: 700;
}
.toc-item--h2 > a {
padding-left: 22px;
font-size: 0.87rem;
color: var(--color-text-light);
}
.toc-item--h2 > a::before {
content: '—';
color: var(--color-border);
font-weight: 400;
} .toc-item a.is-active {
color: var(--color-shu);
font-weight: 700;
}
.toc-item--h2 a.is-active {
color: var(--color-shu);
}
@media (max-width: 768px) {
.toc-inner {
padding: 22px 20px 24px;
}
.toc-item a {
font-size: 0.88rem;
}
}  .woo-shop-hero {
background: var(--color-ink);
color: var(--color-white);
padding: 120px 0 100px;
text-align: center;
position: relative;
overflow: hidden;
}
.woo-shop-hero::before {
content: 'SHOP';
font-family: 'Montserrat', sans-serif;
font-size: clamp(6rem, 14vw, 14rem);
font-weight: 700;
color: rgba(255,255,255,0.03);
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
white-space: nowrap;
pointer-events: none;
letter-spacing: 0.05em;
}
.woo-shop-hero-en {
font-family: 'Montserrat', sans-serif;
font-size: 0.75rem;
letter-spacing: 0.25em;
color: var(--color-shu);
display: block;
margin-bottom: 18px;
text-transform: uppercase;
}
.woo-shop-hero-title {
font-family: 'Montserrat', sans-serif;
font-size: clamp(2rem, 4vw, 3rem);
font-weight: 700;
line-height: 1.25;
margin-bottom: 20px;
color: var(--color-white);
}
.woo-shop-hero-desc {
font-size: 0.95rem;
color: rgba(255,255,255,0.6);
max-width: 600px;
margin: 0 auto;
line-height: 1.9;
} .woocommerce,
.woocommerce-page {
font-family: var(--font-base);
color: var(--color-text);
}
.woocommerce .woocommerce-breadcrumb {
font-size: 0.82rem;
color: var(--color-text-light);
margin-bottom: 40px;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--color-text-light); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--color-shu); } .woocommerce ul.products {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
list-style: none;
margin: 0;
padding: 0;
}
.woocommerce ul.products li.product {
margin: 0;
float: none;
width: auto;
}
.woocommerce ul.products li.product a {
text-decoration: none;
color: var(--color-text);
} .woocommerce ul.products li.product .koko-product-card {
background: var(--color-white);
border: 1px solid var(--color-border);
border-radius: 6px;
overflow: hidden;
transition: transform var(--transition-slow), box-shadow var(--transition-slow);
height: 100%;
display: flex;
flex-direction: column;
}
.woocommerce ul.products li.product:hover .koko-product-card {
transform: translateY(-6px);
box-shadow: 0 20px 48px rgba(0,0,0,0.10);
}
.woocommerce ul.products li.product .woocommerce-loop-product__link {
display: flex;
flex-direction: column;
height: 100%;
text-decoration: none;
} .woocommerce ul.products li.product img {
width: 100%;
height: 220px;
object-fit: cover;
display: block;
transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.woocommerce ul.products li.product:hover img {
transform: scale(1.04);
}
.woocommerce ul.products li.product .product-thumb-wrap {
overflow: hidden;
position: relative;
}
.product-badge {
position: absolute;
top: 14px;
left: 14px;
background: var(--color-shu);
color: var(--color-white);
font-family: 'Montserrat', sans-serif;
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.12em;
padding: 4px 10px;
border-radius: 2px;
text-transform: uppercase;
z-index: 1;
} .woocommerce ul.products li.product .product-info {
padding: 24px 24px 28px;
flex: 1;
display: flex;
flex-direction: column;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
font-size: 1rem;
font-weight: 700;
margin: 0 0 10px;
line-height: 1.5;
color: var(--color-text);
}
.woocommerce ul.products li.product .product-desc {
font-size: 0.84rem;
color: var(--color-text-light);
line-height: 1.8;
margin-bottom: 18px;
flex: 1;
}
.woocommerce ul.products li.product .product-tags {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-bottom: 18px;
}
.woocommerce ul.products li.product .product-tag {
font-size: 0.72rem;
padding: 3px 10px;
border: 1px solid var(--color-border);
border-radius: 2px;
color: var(--color-text-light);
font-family: 'Montserrat', sans-serif;
letter-spacing: 0.06em;
} .woocommerce ul.products li.product .price {
font-family: 'Montserrat', sans-serif;
font-size: 1.3rem;
font-weight: 700;
color: var(--color-shu);
display: block;
margin-top: auto;
}
.woocommerce ul.products li.product .price del {
font-size: 0.85rem;
color: var(--color-text-light);
margin-right: 8px;
font-weight: 400;
}
.woocommerce ul.products li.product .price ins {
text-decoration: none;
color: var(--color-shu);
} .woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button {
display: block;
width: 100%;
padding: 13px;
background: var(--color-ink);
color: var(--color-white);
font-family: 'Montserrat', sans-serif;
font-size: 0.82rem;
font-weight: 700;
letter-spacing: 0.12em;
text-align: center;
border: none;
border-radius: 0;
cursor: pointer;
transition: background var(--transition-fast);
text-transform: uppercase;
margin-top: 18px;
}
.woocommerce ul.products li.product .button:hover {
background: var(--color-shu);
color: var(--color-white);
} .woocommerce div.product {
max-width: 1100px;
margin: 0 auto;
padding: 60px 6%;
}
.woocommerce div.product .woocommerce-product-gallery {
border-radius: 6px;
overflow: hidden;
}
.woocommerce div.product .woocommerce-product-gallery img {
border-radius: 6px;
}
.woocommerce div.product .product_title {
font-size: clamp(1.5rem, 3vw, 2.2rem);
font-weight: 700;
margin-bottom: 16px;
line-height: 1.35;
color: var(--color-text);
}
.woocommerce div.product .price {
font-family: 'Montserrat', sans-serif;
font-size: 2rem;
font-weight: 700;
color: var(--color-shu);
margin-bottom: 28px;
display: block;
}
.woocommerce div.product .woocommerce-product-details__short-description {
font-size: 0.95rem;
line-height: 1.9;
color: var(--color-text-light);
margin-bottom: 32px;
padding-bottom: 32px;
border-bottom: 1px solid var(--color-border);
}
.woocommerce div.product form.cart {
display: flex;
align-items: center;
gap: 16px;
margin-bottom: 28px;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
flex: 1;
padding: 18px 40px;
background: var(--color-shu);
color: var(--color-white);
font-family: 'Montserrat', sans-serif;
font-size: 0.95rem;
font-weight: 700;
letter-spacing: 0.1em;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
text-transform: uppercase;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
background: #c73e1e;
transform: translateY(-2px);
box-shadow: 0 10px 28px rgba(234,85,50,0.30);
} .woocommerce div.product .woocommerce-tabs {
margin-top: 60px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
display: flex;
border-bottom: 2px solid var(--color-border);
gap: 0;
padding: 0;
list-style: none;
margin: 0 0 40px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
margin: 0;
border: none;
border-radius: 0;
background: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
display: block;
padding: 14px 28px;
font-size: 0.88rem;
font-weight: 700;
color: var(--color-text-light);
letter-spacing: 0.06em;
border-bottom: 2px solid transparent;
margin-bottom: -2px;
transition: color var(--transition-fast), border-color var(--transition-fast);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
color: var(--color-shu);
border-bottom-color: var(--color-shu);
} .woocommerce-cart .woocommerce {
padding: 60px 6%;
max-width: 1100px;
margin: 0 auto;
}
.woocommerce table.cart {
width: 100%;
border-collapse: collapse;
}
.woocommerce table.cart th,
.woocommerce table.cart td {
padding: 18px 16px;
border-bottom: 1px solid var(--color-border);
vertical-align: middle;
font-size: 0.93rem;
}
.woocommerce table.cart th {
font-family: 'Montserrat', sans-serif;
font-size: 0.72rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--color-text-light);
background: var(--color-bg);
}
.woocommerce .cart_totals {
background: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: 6px;
padding: 36px;
}
.woocommerce .cart_totals h2 {
font-size: 1rem;
font-weight: 700;
margin-bottom: 24px;
color: var(--color-text);
}
.woocommerce .checkout-button {
display: block;
width: 100%;
padding: 18px;
background: var(--color-shu);
color: var(--color-white) !important;
font-family: 'Montserrat', sans-serif;
font-size: 0.95rem;
font-weight: 700;
letter-spacing: 0.1em;
text-align: center;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background var(--transition-fast), box-shadow var(--transition-fast);
text-transform: uppercase;
}
.woocommerce .checkout-button:hover {
background: #c73e1e;
box-shadow: 0 10px 28px rgba(234,85,50,0.28);
color: var(--color-white) !important;
} .woocommerce-order-received .woocommerce {
max-width: 700px;
margin: 80px auto;
padding: 60px 6%;
text-align: center;
}
.woocommerce .woocommerce-thankyou-order-received {
font-size: 1.3rem;
font-weight: 700;
color: var(--color-text);
margin-bottom: 20px;
} .woocommerce form .form-row label {
font-size: 0.85rem;
font-weight: 700;
color: var(--color-text);
margin-bottom: 6px;
display: block;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
width: 100%;
padding: 13px 16px;
border: 1px solid var(--color-border);
border-radius: 4px;
font-size: 0.93rem;
font-family: var(--font-base);
color: var(--color-text);
background: var(--color-white);
transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
border-color: var(--color-shu);
box-shadow: 0 0 0 3px rgba(234,85,50,0.12);
outline: none;
}
.woocommerce #place_order,
.woocommerce button[type="submit"] {
background: var(--color-shu);
color: var(--color-white);
border: none;
padding: 18px 48px;
font-family: 'Montserrat', sans-serif;
font-size: 0.95rem;
font-weight: 700;
letter-spacing: 0.1em;
border-radius: 4px;
cursor: pointer;
transition: background var(--transition-fast), box-shadow var(--transition-fast);
text-transform: uppercase;
}
.woocommerce #place_order:hover,
.woocommerce button[type="submit"]:hover {
background: #c73e1e;
box-shadow: 0 10px 28px rgba(234,85,50,0.28);
} .woocommerce .woocommerce-ordering select {
padding: 9px 14px;
border: 1px solid var(--color-border);
border-radius: 4px;
font-size: 0.88rem;
font-family: var(--font-base);
color: var(--color-text);
background: var(--color-white);
cursor: pointer;
}
.woocommerce p.woocommerce-result-count {
font-size: 0.82rem;
color: var(--color-text-light);
font-family: 'Montserrat', sans-serif;
} .woo-feature-list {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 12px;
margin: 24px 0 32px;
}
.woo-feature-item {
display: flex;
align-items: flex-start;
gap: 10px;
font-size: 0.88rem;
line-height: 1.6;
}
.woo-feature-item::before {
content: '✓';
color: var(--color-shu);
font-weight: 700;
font-size: 0.9rem;
flex-shrink: 0;
margin-top: 2px;
} .woo-cta-banner {
background: linear-gradient(135deg, var(--color-ink) 0%, #2a2a2a 100%);
color: var(--color-white);
padding: 80px 6%;
text-align: center;
position: relative;
overflow: hidden;
}
.woo-cta-banner::before {
content: '';
position: absolute;
top: -60px;
right: -60px;
width: 300px;
height: 300px;
border-radius: 50%;
background: rgba(234,85,50,0.08);
pointer-events: none;
}
.woo-cta-banner-title {
font-size: clamp(1.4rem, 2.5vw, 2rem);
font-weight: 700;
line-height: 1.5;
margin-bottom: 16px;
}
.woo-cta-banner-desc {
font-size: 0.92rem;
color: rgba(255,255,255,0.65);
margin-bottom: 36px;
line-height: 1.9;
} @media (max-width: 1024px) {
.woocommerce ul.products {
grid-template-columns: repeat(2, 1fr);
gap: 24px;
}
}
@media (max-width: 640px) {
.woocommerce ul.products {
grid-template-columns: 1fr;
gap: 20px;
}
.woocommerce div.product {
padding: 40px 5%;
}
.woo-feature-list {
grid-template-columns: 1fr;
}
.woocommerce div.product form.cart {
flex-direction: column;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
padding: 12px 16px;
font-size: var(--fs-xs); }
}  @media (max-width: 768px) {
:root { --fs-base:    0.9375rem; --lh-body:    1.85; --lh-relaxed: 1.9;
} .section-title {
font-size: clamp(1.75rem, 5.5vw, 2.5rem);
margin-bottom: 60px;
}
.section-title span {
font-size: var(--fs-xs); } .single-content {
font-size: var(--fs-base);
line-height: var(--lh-relaxed);
} .page-hero-en {
font-size: clamp(2.5rem, 10vw, 4.5rem);
}
} @media (max-width: 480px) {
:root {
--fs-base:    1rem; --lh-body:    1.9;
--lh-relaxed: 2.0;
} h1 { font-size: max(1.5rem, var(--fs-h1)); }
h2 { font-size: max(1.25rem, var(--fs-h2)); }
h3 { font-size: max(1.1rem,  var(--fs-h3)); } .footer-grid {
grid-template-columns: 1fr !important;
gap: 36px;
} .drawer-nav a {
font-size: 1.4rem; }
}  @media (max-width: 768px) {
.profile-photo {
width: 100%;
max-width: 260px;
margin: 0 auto 30px;
}
.profile-photo::before { display: none; }
.profile-photo img {
width: 100%;
height: 320px;
}
.profile-lead {
font-size: 1.35rem;
padding-left: 20px;
margin-bottom: 36px;
}
}
@media (max-width: 480px) {
.profile-photo { max-width: 220px; }
.profile-photo img { height: 270px; }
} .triple-item-icon {
display: flex;
align-items: center;
justify-content: center;
width: 64px;
height: 64px;
margin: 0 auto 22px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.12);
transition: background var(--transition-fast), border-color var(--transition-fast);
}
.triple-item:hover .triple-item-icon {
background: rgba(230, 180, 34, 0.12);
border-color: rgba(230, 180, 34, 0.35);
}
.triple-item-icon svg {
display: block;
flex-shrink: 0;
} .section-title::after {
height: 2px;
width: 48px;
background: linear-gradient(90deg, var(--color-shu) 0%, var(--color-kogane) 100%);
} .service-icon {
transition: transform var(--transition-fast), color var(--transition-fast);
}
.service-card:hover .service-icon { transform: translateY(-4px); }
.service-card:hover .service-icon svg {
stroke: var(--color-shu);
} .company-table a {
color: var(--color-shu);
text-decoration: none;
border-bottom: 1px solid transparent;
transition: border-color var(--transition-fast);
}
.company-table a:hover { border-bottom-color: var(--color-shu); } .stat-card {
transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
.stat-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.09);
} .profile-body p:last-child { margin-bottom: 0; } .page-hero {
position: relative;
}
.page-hero::before {
content: '';
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
background-size: 200px 200px;
pointer-events: none;
z-index: 1;
mix-blend-mode: overlay;
}
.page-hero > * { position: relative; z-index: 2; } .triple-conclusion {
background: linear-gradient(112deg, #c73a1a 0%, var(--color-shu) 45%, #d44a28 100%);
} .footer-tagline {
font-style: italic;
letter-spacing: 0.04em;
opacity: 0.9;
}  .nb-nav-links {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-bottom: 28px;
}
.nb-nav-btn {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 9px 18px;
background: var(--color-shu);
color: var(--color-white);
font-size: var(--fs-xs);
font-weight: 700;
letter-spacing: var(--ls-label);
border-radius: 2px;
text-decoration: none;
transition: opacity var(--transition-fast);
}
.nb-nav-btn:hover { opacity: 0.82; }
.nb-nav-btn--outline {
background: transparent;
border: 1px solid var(--color-border);
color: var(--color-text-light);
}
.nb-nav-btn--outline:hover { border-color: var(--color-text); color: var(--color-text); opacity: 1; } .nb-body {
padding: 28px 26px 32px;
gap: 14px;
}
.nb-title {
line-height: 1.8;
letter-spacing: 0.03em;
}
.nb-excerpt {
line-height: var(--lh-relaxed); letter-spacing: var(--ls-body);
} .single-content {
line-height: var(--lh-loose); letter-spacing: 0.055em;
}
.single-content p {
margin-bottom: 1.8em;
}
.single-content h2,
.single-content h3,
.single-content h4 {
margin-top: 2.8em;
margin-bottom: 1em;
}
.single-header {
margin-bottom: 68px;
}
.single-thumbnail {
margin-bottom: 40px;
} .blog-summary {
margin: 0 0 52px;
padding: 28px 32px;
background: #F7F9FC;
border-left: 4px solid var(--color-kachi);
border-radius: 0 6px 6px 0;
box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.blog-summary-label {
display: flex;
align-items: center;
gap: 8px;
font-family: var(--font-en);
font-size: var(--fs-xs);
font-weight: 700;
letter-spacing: var(--ls-label);
color: var(--color-kachi);
margin-bottom: 18px;
text-transform: uppercase;
}
.blog-summary-label svg {
flex-shrink: 0;
}
.blog-summary-list {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: 14px;
counter-reset: summary-counter;
}
.blog-summary-list li {
display: flex;
align-items: flex-start;
gap: 14px;
font-size: var(--fs-sm);
line-height: 1.75;
letter-spacing: var(--ls-body);
color: var(--color-text);
counter-increment: summary-counter;
margin: 0;
}
.blog-summary-list li::before {
content: counter(summary-counter);
flex-shrink: 0;
width: 24px;
height: 24px;
background: var(--color-kachi);
color: var(--color-white);
font-family: var(--font-en);
font-size: 0.75rem;
font-weight: 700;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin-top: 1px;
}
@media (max-width: 768px) {
.blog-summary {
padding: 22px 20px;
}
.blog-summary-list li {
gap: 10px;
}
}