.wpcf7 .screen-reader-response {
position: absolute;
overflow: hidden;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
width: 1px;
margin: -1px;
padding: 0;
border: 0;
word-wrap: normal !important;
word-break: normal !important;
}
.wpcf7 .hidden-fields-container {
display: none;
}
.wpcf7 form .wpcf7-response-output {
margin: 2em 0.5em 1em;
padding: 0.2em 1em;
border: 2px solid #00a0d2; }
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
display: none;
}
.wpcf7 form.sent .wpcf7-response-output {
border-color: #46b450; }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
border-color: #dc3232; }
.wpcf7 form.spam .wpcf7-response-output {
border-color: #f56e28; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
border-color: #ffb900; }
.wpcf7-form-control-wrap {
position: relative;
}
.wpcf7-not-valid-tip {
color: #dc3232; font-size: 1em;
font-weight: normal;
display: block;
}
.use-floating-validation-tip .wpcf7-not-valid-tip {
position: relative;
top: -2ex;
left: 1em;
z-index: 100;
border: 1px solid #dc3232;
background: #fff;
padding: .2em .8em;
width: 24em;
}
.wpcf7-list-item {
display: inline-block;
margin: 0 0 0 1em;
}
.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
content: " ";
}
.wpcf7-spinner {
visibility: hidden;
display: inline-block;
background-color: #23282d; opacity: 0.75;
width: 24px;
height: 24px;
border: none;
border-radius: 100%;
padding: 0;
margin: 0 24px;
position: relative;
}
form.submitting .wpcf7-spinner {
visibility: visible;
}
.wpcf7-spinner::before {
content: '';
position: absolute;
background-color: #fbfbfc; top: 4px;
left: 4px;
width: 6px;
height: 6px;
border: none;
border-radius: 100%;
transform-origin: 8px 8px;
animation-name: spin;
animation-duration: 1000ms;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) {
.wpcf7-spinner::before {
animation-name: blink;
animation-duration: 2000ms;
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes blink {
from {
opacity: 0;
}
50% {
opacity: 1;
}
to {
opacity: 0;
}
}
.wpcf7 [inert] {
opacity: 0.5;
}
.wpcf7 input[type="file"] {
cursor: pointer;
}
.wpcf7 input[type="file"]:disabled {
cursor: default;
}
.wpcf7 .wpcf7-submit:disabled {
cursor: not-allowed;
}
.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
direction: ltr;
}
.wpcf7-reflection > output {
display: list-item;
list-style: none;
}
.wpcf7-reflection > output[hidden] {
display: none;
}:root {
--c-forest: #2F4A35;
--c-forest-deep: #1F2F23;
--c-earth: #8A6A43;
--c-gold: #D8A24A;
--c-cream: #F5F1E8;
--c-paper: #FBF8F1;
--c-ink: #1A1F1B;
--c-ash: #6B6961;
--c-line: rgba(26, 31, 27, 0.12);
--c-line-strong: rgba(26, 31, 27, 0.24);
--f-display: "Shippori Mincho B1", "Noto Serif JP", serif;
--f-sans: "Noto Sans JP", system-ui, -apple-system, sans-serif;
--f-latin: "Cormorant Garamond", "Times New Roman", serif;
--f-mono: "JetBrains Mono", ui-monospace, monospace;
--container: 1440px;
--gutter: clamp(20px, 5vw, 80px);
--section-y: clamp(80px, 12vw, 160px);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
font-family: var(--f-sans);
font-weight: 400;
font-feature-settings: "palt";
color: var(--c-ink);
background: var(--c-cream);
line-height: 1.7;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
button { font-family: inherit; cursor: pointer; border: 0; background: transparent; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--c-forest); color: var(--c-cream); }
.container {
max-width: var(--container);
margin: 0 auto;
padding: 0 var(--gutter);
} .nav {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
padding: 22px var(--gutter);
display: flex;
align-items: center;
justify-content: space-between;
mix-blend-mode: normal;
transition: background 0.4s ease, padding 0.4s ease, border-color 0.4s ease;
border-bottom: 1px solid transparent;
}
.nav.is-scrolled {
background: rgba(245, 241, 232, 0.92);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
padding: 14px var(--gutter);
border-bottom-color: var(--c-line);
}
.nav.on-hero { color: var(--c-cream); }
.nav.on-hero.is-scrolled { color: var(--c-ink); }
.brand {
display: flex;
align-items: center;
gap: 14px;
font-family: var(--f-display);
font-weight: 500;
}
.brand-mark-img {
width: 46px;
height: 46px;
object-fit: contain;
flex-shrink: 0;
}
.brand-text { display: flex; flex-direction: column; line-height: 1; gap: 6px; }
.brand-text .ja { font-size: 19px; letter-spacing: 0.12em; font-weight: 500; }
.brand-text .kana {
font-size: 9px;
letter-spacing: 0.5em;
opacity: 0.7;
font-family: var(--f-sans);
font-weight: 400;
}
.nav-menu { display: flex; align-items: center; gap: 36px; }
.nav-menu a {
font-size: 13px;
letter-spacing: 0.18em;
font-weight: 500;
position: relative;
padding: 6px 0;
white-space: nowrap;
}
.nav-menu a::after {
content: "";
position: absolute;
left: 0; right: 0; bottom: 0;
height: 1px;
background: currentColor;
transform: scaleX(0);
transform-origin: left;
transition: transform 0.4s ease;
}
.nav-menu a:hover::after { transform: scaleX(1); }
.nav-menu .num {
font-family: var(--f-latin);
font-size: 10px;
opacity: 0.55;
margin-right: 8px;
letter-spacing: 0.1em;
font-weight: 400;
}
.nav-cta {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 12px 22px;
background: var(--c-gold);
color: var(--c-ink);
font-size: 12px;
letter-spacing: 0.18em;
font-weight: 600;
border-radius: 999px;
transition: transform 0.3s ease, background 0.3s ease;
}
.nav-cta:hover { background: var(--c-ink); color: var(--c-cream); transform: translateY(-1px); }
@media (max-width: 900px) {
.nav-menu { display: none; }
} .hero {
position: relative;
height: 100vh;
min-height: 720px;
overflow: hidden;
color: var(--c-cream);
background: linear-gradient(160deg, #3a5c40 0%, #1F2F23 100%);
}
.hero-media {
position: absolute; inset: 0;
background-position: center;
background-size: cover;
animation: heroKenburns 18s ease-out forwards;
}
@keyframes heroKenburns {
from { transform: scale(1.08); }
to   { transform: scale(1); }
}
.hero-veil {
position: absolute; inset: 0;
background:
linear-gradient(180deg, rgba(15,22,16,0.45) 0%, rgba(15,22,16,0.05) 35%, rgba(15,22,16,0.15) 65%, rgba(15,22,16,0.72) 100%),
linear-gradient(90deg, rgba(15,22,16,0.35) 0%, rgba(15,22,16,0) 60%);
}
.hero-inner {
position: relative;
height: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding-bottom: clamp(80px, 12vh, 140px);
}
.hero-tag {
font-family: var(--f-sans);
font-size: 12px;
letter-spacing: 0.3em;
font-weight: 500;
opacity: 0.9;
margin-bottom: 28px;
display: flex;
align-items: center;
gap: 14px;
}
.hero-tag::before {
content: "";
width: 38px; height: 1px; background: currentColor;
}
.hero-title {
font-family: var(--f-display);
font-weight: 500;
font-size: clamp(40px, 7.4vw, 104px);
line-height: 1.15;
letter-spacing: 0.02em;
margin-bottom: 28px;
text-wrap: balance;
}
.hero-sub {
font-size: clamp(14px, 1.2vw, 17px);
letter-spacing: 0.16em;
font-weight: 400;
max-width: 520px;
line-height: 2;
}
.hero-side {
position: absolute;
right: 80px;
bottom: clamp(80px, 12vh, 140px);
text-align: right;
font-family: var(--f-sans);
font-size: 11px;
letter-spacing: 0.2em;
opacity: 0.8;
line-height: 1.9;
font-weight: 400;
}
.hero-side strong {
display: block;
font-family: var(--f-latin);
font-size: 13px;
font-weight: 400;
margin-bottom: 4px;
}
@media (max-width: 1100px) { .hero-side { display: none; } }
.hero-logo-mark {
position: absolute;
right: -8%;
top: 50%;
transform: translateY(-50%);
width: clamp(420px, 55vh, 720px);
height: auto;
opacity: 0.08;
pointer-events: none;
mix-blend-mode: screen;
}
@media (max-width: 900px) {
.hero-logo-mark { right: -25%; opacity: 0.06; }
}
.hero-scroll {
position: absolute;
left: var(--gutter);
bottom: 28px;
font-family: var(--f-sans);
font-size: 10px;
letter-spacing: 0.4em;
display: flex;
align-items: center;
gap: 12px;
opacity: 0.7;
writing-mode: vertical-rl;
font-weight: 500;
}
.hero-scroll::after {
content: "";
width: 1px; height: 48px;
background: currentColor;
animation: scrollLine 2.2s ease-in-out infinite;
transform-origin: top;
}
@keyframes scrollLine {
0%, 100% { transform: scaleY(0.2); opacity: 0.4; }
50% { transform: scaleY(1); opacity: 1; }
} section { position: relative; }
.section-label {
display: flex;
align-items: center;
gap: 18px;
margin-bottom: 56px;
font-size: 13px;
letter-spacing: 0.3em;
font-weight: 500;
color: var(--c-earth);
}
.section-label .num {
font-family: var(--f-latin);
font-weight: 400;
font-size: 15px;
letter-spacing: 0.15em;
color: var(--c-earth);
}
.section-label .line {
flex: 0 0 60px;
height: 1px;
background: var(--c-line-strong);
}
.section-title {
font-family: var(--f-display);
font-weight: 500;
font-size: clamp(32px, 4.8vw, 60px);
line-height: 1.35;
letter-spacing: 0.04em;
margin-bottom: 32px;
}
.lead {
font-size: 16px;
line-height: 2.2;
letter-spacing: 0.06em;
max-width: 60ch;
color: var(--c-ink);
} .intro {
padding: var(--section-y) 0 calc(var(--section-y) * 0.6);
background: var(--c-cream);
position: relative;
}
.intro-inner {
display: grid;
grid-template-columns: 1fr 1fr;
gap: clamp(40px, 6vw, 100px);
align-items: start;
}
.intro-headline {
font-family: var(--f-display);
font-weight: 500;
font-size: clamp(28px, 3.4vw, 46px);
line-height: 1.7;
letter-spacing: 0.04em;
text-wrap: pretty;
}
.intro-headline .accent { color: var(--c-forest); }
.intro-body { padding-top: 20px; }
.intro-body p + p { margin-top: 24px; }
.intro-meta {
margin-top: 56px;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 24px;
padding-top: 32px;
border-top: 1px solid var(--c-line);
}
.intro-meta dt {
font-size: 12px;
letter-spacing: 0.25em;
color: var(--c-earth);
margin-bottom: 12px;
font-weight: 500;
}
.intro-meta dd {
font-size: 14px;
letter-spacing: 0.1em;
line-height: 1.6;
}
.intro-meta dd strong {
display: block;
font-family: var(--f-display);
font-size: 26px;
font-weight: 500;
letter-spacing: 0.05em;
margin-bottom: 4px;
color: var(--c-forest);
}
@media (max-width: 900px) {
.intro-inner { grid-template-columns: 1fr; }
.intro-meta { grid-template-columns: 1fr; }
} .business {
padding: var(--section-y) 0;
background: var(--c-paper);
}
.business-head {
display: grid;
grid-template-columns: 1.05fr 1fr;
gap: 64px;
align-items: center;
margin-bottom: 80px;
}
.business-head .lead { padding-bottom: 0; margin-top: 28px; }
.business-figure {
position: relative;
aspect-ratio: 3 / 4;
overflow: hidden;
background: var(--c-forest-deep);
}
.business-figure img {
width: 100%; height: 100%;
object-fit: cover;
transition: transform 1.2s ease;
}
.business-figure:hover img { transform: scale(1.04); }
.business-figure figcaption {
position: absolute;
left: 24px;
bottom: 24px;
background: var(--c-cream);
color: var(--c-ink);
padding: 8px 16px 7px;
font-size: 12px;
letter-spacing: 0.15em;
font-weight: 500;
}
.business-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1px;
background: var(--c-line);
border: 1px solid var(--c-line);
}
.biz-card {
background: var(--c-paper);
padding: 44px 32px 36px;
display: flex;
flex-direction: column;
min-height: 380px;
transition: background 0.4s ease, color 0.4s ease;
position: relative;
overflow: hidden;
}
.biz-card .ico {
width: 56px; height: 56px;
margin-bottom: 32px;
color: var(--c-forest);
transition: color 0.4s ease;
}
.biz-card .num {
position: absolute;
top: 24px; right: 28px;
font-family: var(--f-latin);
font-size: 12px;
letter-spacing: 0.2em;
color: var(--c-earth);
opacity: 0.6;
}
.biz-card h3 {
font-family: var(--f-display);
font-weight: 500;
font-size: 24px;
line-height: 1.5;
letter-spacing: 0.06em;
margin-bottom: 6px;
}
.biz-card .biz-sub {
font-size: 12px;
letter-spacing: 0.18em;
color: var(--c-earth);
margin-bottom: 22px;
font-weight: 500;
}
.biz-card p {
font-size: 14px;
line-height: 2;
color: var(--c-ash);
flex: 1;
}
.biz-card .more {
margin-top: 24px;
font-size: 12px;
letter-spacing: 0.2em;
font-weight: 500;
display: inline-flex;
align-items: center;
gap: 10px;
}
.biz-card .more::after {
content: "→";
transition: transform 0.3s ease;
}
.biz-card:hover { background: var(--c-forest); color: var(--c-cream); }
.biz-card:hover .ico,
.biz-card:hover .biz-sub,
.biz-card:hover .num,
.biz-card:hover p { color: rgba(245, 241, 232, 0.85); }
.biz-card:hover .more::after { transform: translateX(6px); }
@media (max-width: 1100px) {
.business-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
.business-head { grid-template-columns: 1fr; }
} .products {
padding: var(--section-y) 0;
background: var(--c-cream);
position: relative;
}
.products-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 40px;
align-items: stretch;
}
.product {
display: flex;
flex-direction: column;
}
.product .pic {
position: relative;
overflow: hidden;
margin-bottom: 24px;
background: var(--c-forest-deep);
aspect-ratio: 4 / 3;
}
.product .pic img {
width: 100%; height: 100%;
object-fit: cover;
transition: transform 0.9s cubic-bezier(0.2, 0.6, 0.2, 1);
}
.product:hover .pic img { transform: scale(1.05); }
.product .pic::after {
content: attr(data-tag);
position: absolute;
top: 20px; left: 20px;
background: var(--c-cream);
color: var(--c-ink);
padding: 7px 14px 6px;
font-size: 12px;
letter-spacing: 0.15em;
font-weight: 500;
}
.product .num {
font-size: 12px;
letter-spacing: 0.25em;
color: var(--c-earth);
margin-bottom: 12px;
font-weight: 500;
}
.product h3 {
font-family: var(--f-display);
font-weight: 500;
font-size: 26px;
letter-spacing: 0.06em;
margin-bottom: 10px;
line-height: 1.4;
}
.product p {
font-size: 14px;
line-height: 2;
color: var(--c-ash);
max-width: 42ch;
}
@media (max-width: 1000px) {
.products-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
.products-grid { grid-template-columns: 1fr; }
}
.btn-rakuten {
background: #BF0000 !important;
color: #fff !important;
font-size: 13px;
padding: 14px 28px;
margin-top: 24px;
align-self: flex-start;
}
.btn-rakuten:hover { background: #8a0000 !important; }
.btn-rakuten .arr { background: #fff !important; color: #BF0000 !important; }
.btn-rakuten-prep {
display: inline-block;
background: #e0dbd2 !important;
color: #999 !important;
font-size: 12px;
letter-spacing: 0.12em;
padding: 12px 24px;
border-radius: 999px;
cursor: default;
pointer-events: none;
} .product > div {
display: flex;
flex-direction: column;
flex: 1;
}
.product > div .btn-rakuten {
margin-top: auto;
padding-top: 20px;
} .works {
padding: var(--section-y) 0;
background: var(--c-forest-deep);
color: var(--c-cream);
overflow: hidden;
}
.works .section-label,
.works .section-title { color: var(--c-cream); }
.works .section-label { color: rgba(216, 162, 74, 0.9); }
.works .section-label .num { color: var(--c-gold); }
.works .section-label .line { background: rgba(245, 241, 232, 0.25); }
.works .lead { color: rgba(245, 241, 232, 0.78); }
.works-head {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: end;
margin-bottom: 72px;
}
.works-grid {
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: 32px;
}
.work {
position: relative;
overflow: hidden;
background: rgba(245, 241, 232, 0.04);
}
.work img {
width: 100%; height: 100%;
object-fit: cover;
transition: transform 0.9s ease, filter 0.9s ease;
filter: brightness(0.85) saturate(0.9);
}
.work:hover img { transform: scale(1.04); filter: brightness(1) saturate(1); }
.work-meta {
position: absolute;
left: 0; right: 0; bottom: 0;
padding: 24px;
background: linear-gradient(180deg, transparent, rgba(15, 22, 16, 0.88));
color: var(--c-cream);
}
.work-meta .cat {
font-size: 11px;
letter-spacing: 0.25em;
color: var(--c-gold);
margin-bottom: 10px;
display: block;
font-weight: 500;
}
.work-meta h4 {
font-family: var(--f-display);
font-size: 20px;
font-weight: 500;
letter-spacing: 0.06em;
margin-bottom: 6px;
}
.work-meta time {
font-size: 11px;
letter-spacing: 0.2em;
opacity: 0.7;
}
.w-a { grid-column: span 7; aspect-ratio: 16 / 10; }
.w-b { grid-column: span 5; aspect-ratio: 4 / 5; }
.w-c { grid-column: span 4; aspect-ratio: 1 / 1; }
.w-d { grid-column: span 4; aspect-ratio: 1 / 1; }
.w-e { grid-column: span 4; aspect-ratio: 1 / 1; }
.works-foot {
margin-top: 64px;
display: flex;
justify-content: flex-end;
}
@media (max-width: 900px) {
.works-head { grid-template-columns: 1fr; }
.works-grid { grid-template-columns: repeat(2, 1fr); }
.w-a, .w-b, .w-c, .w-d, .w-e { grid-column: span 1; aspect-ratio: 4 / 3; }
} .career {
padding: var(--section-y) 0;
background: var(--c-cream);
position: relative;
}
.career-inner {
display: grid;
grid-template-columns: 1.05fr 1fr;
gap: clamp(40px, 6vw, 96px);
align-items: center;
}
.career-image {
position: relative;
aspect-ratio: 4 / 5;
overflow: hidden;
background: var(--c-forest-deep);
}
.career-image img {
width: 100%; height: 100%;
object-fit: cover;
transition: transform 1.2s ease;
}
.career-image:hover img { transform: scale(1.04); }
.career-image .badge {
position: absolute;
top: 24px; left: 24px;
background: var(--c-gold);
color: var(--c-ink);
padding: 8px 16px;
font-size: 11px;
letter-spacing: 0.3em;
font-weight: 600;
}
.career-bullets {
list-style: none;
margin: 40px 0;
padding: 32px 0;
border-top: 1px solid var(--c-line);
border-bottom: 1px solid var(--c-line);
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px 32px;
}
.career-bullets li {
display: flex;
align-items: flex-start;
gap: 14px;
font-size: 14px;
letter-spacing: 0.08em;
line-height: 1.6;
}
.career-bullets li::before {
content: "";
width: 6px; height: 6px;
border-radius: 50%;
background: var(--c-gold);
margin-top: 9px;
flex-shrink: 0;
}
@media (max-width: 900px) {
.career-inner { grid-template-columns: 1fr; }
.career-bullets { grid-template-columns: 1fr; }
} .contact {
padding: var(--section-y) 0;
background: var(--c-forest);
color: var(--c-cream);
position: relative;
overflow: hidden;
}
.contact::before {
content: "";
position: absolute;
top: -200px; right: -200px;
width: 600px; height: 600px;
border-radius: 50%;
background: radial-gradient(circle, rgba(216, 162, 74, 0.15), transparent 70%);
pointer-events: none;
}
.contact-inner {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 80px;
align-items: center;
position: relative;
}
.contact .section-label { color: rgba(245, 241, 232, 0.85); }
.contact .section-label .num { color: var(--c-gold); }
.contact .section-label .line { background: rgba(245, 241, 232, 0.3); }
.contact h2 {
font-family: var(--f-display);
font-weight: 500;
font-size: clamp(36px, 5vw, 64px);
line-height: 1.4;
letter-spacing: 0.04em;
margin-bottom: 24px;
}
.contact-logo-mark {
position: absolute;
left: -4%;
bottom: -10%;
width: clamp(360px, 38vw, 560px);
opacity: 0.06;
pointer-events: none;
}
.contact p { font-size: 15px; line-height: 2.1; opacity: 0.85; max-width: 44ch; }
.contact-actions {
display: flex;
flex-direction: column;
gap: 24px;
}
.contact-card {
background: rgba(245, 241, 232, 0.06);
border: 1px solid rgba(245, 241, 232, 0.18);
padding: 28px 32px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 32px;
transition: background 0.3s ease, transform 0.3s ease;
}
.contact-card:hover { background: rgba(245, 241, 232, 0.12); transform: translateX(4px); }
.contact-card .lbl {
font-size: 12px;
letter-spacing: 0.2em;
color: var(--c-gold);
margin-bottom: 10px;
font-weight: 500;
}
.contact-card .val {
font-family: var(--f-display);
font-size: 24px;
font-weight: 500;
letter-spacing: 0.04em;
}
.contact-card .arrow { font-size: 22px; opacity: 0.7; } .contact-form {
width: 100%;
display: flex;
flex-direction: column;
gap: 18px;
}
.form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 18px;
}
.form-group {
width: 100%;
display: block;
}
.form-group label {
display: flex;
align-items: center;
gap: 8px;
width: 100%;
font-size: 12px;
letter-spacing: 0.18em;
color: rgba(245, 241, 232, 0.72);
font-weight: 500;
margin-bottom: 8px;
}
.req {
background: var(--c-gold);
color: var(--c-ink);
font-size: 10px;
padding: 2px 7px;
letter-spacing: 0.08em;
font-weight: 600;
border-radius: 2px;
flex-shrink: 0;
}
.form-group input,
.form-group select,
.form-group textarea {
display: block;
width: 100%;
box-sizing: border-box;
background: rgba(245, 241, 232, 0.08);
border: 1px solid rgba(245, 241, 232, 0.25);
color: var(--c-cream);
padding: 13px 16px;
font-family: var(--f-sans);
font-size: 14px;
letter-spacing: 0.06em;
line-height: 1.5;
border-radius: 3px;
transition: border-color 0.3s ease, background 0.3s ease;
outline: none;
-webkit-appearance: none;
appearance: none;
}
.form-group input::placeholder,
.form-group textarea::placeholder { color: rgba(245, 241, 232, 0.3); }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
border-color: var(--c-gold);
background: rgba(245, 241, 232, 0.12);
}
.form-group select {
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='%23D8A24A' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 16px center;
padding-right: 40px;
cursor: pointer;
}
.form-group select option { background: var(--c-forest-deep); color: var(--c-cream); }
.form-group textarea { resize: vertical; min-height: 130px; }
.form-submit { align-self: flex-start; margin-top: 8px; }
.form-result {
font-size: 13px;
letter-spacing: 0.08em;
min-height: 20px;
color: var(--c-gold);
line-height: 1.7;
}
@media (max-width: 680px) {
.form-row { grid-template-columns: 1fr; }
}
.btn-primary {
display: inline-flex;
align-items: center;
gap: 16px;
padding: 18px 32px;
background: var(--c-gold);
color: var(--c-ink);
font-size: 13px;
letter-spacing: 0.2em;
font-weight: 600;
border-radius: 999px;
transition: transform 0.3s ease, background 0.3s ease, color 0.3s ease;
align-self: flex-start;
}
.btn-primary:hover { background: var(--c-cream); transform: translateY(-2px); }
.btn-primary .arr {
width: 28px; height: 28px;
border-radius: 50%;
background: var(--c-ink);
color: var(--c-gold);
display: grid;
place-items: center;
font-size: 14px;
transition: transform 0.3s ease;
}
.btn-primary:hover .arr { transform: rotate(-45deg); background: var(--c-forest); color: var(--c-cream); }
@media (max-width: 900px) {
.contact-inner { grid-template-columns: 1fr; gap: 40px; }
} .footer {
background: var(--c-forest-deep);
color: rgba(245, 241, 232, 0.7);
padding: 80px var(--gutter) 36px;
}
.footer-inner {
max-width: var(--container);
margin: 0 auto;
display: grid;
grid-template-columns: 1.4fr 1fr 1fr 1fr;
gap: 60px;
padding-bottom: 60px;
border-bottom: 1px solid rgba(245, 241, 232, 0.12);
}
.footer .brand { color: var(--c-cream); margin-bottom: 24px; }
.footer-about p { font-size: 13px; line-height: 2; max-width: 32ch; }
.footer-col h5 {
font-size: 12px;
letter-spacing: 0.25em;
color: var(--c-gold);
margin-bottom: 20px;
font-weight: 500;
}
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.footer-col a { font-size: 13px; letter-spacing: 0.08em; transition: color 0.3s ease; }
.footer-col a:hover { color: var(--c-cream); }
.footer-bottom {
max-width: var(--container);
margin: 0 auto;
padding-top: 28px;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 11px;
letter-spacing: 0.2em;
}
@media (max-width: 900px) {
.footer-inner { grid-template-columns: 1fr 1fr; gap: 40px; }
} .reveal { transition: opacity 0.9s ease, transform 0.9s ease; }
.js-ready .reveal:not(.is-in) {
opacity: 0;
transform: translateY(28px);
}
.reveal[data-delay="1"] { transition-delay: 0.08s; }
.reveal[data-delay="2"] { transition-delay: 0.16s; }
.reveal[data-delay="3"] { transition-delay: 0.24s; }
.reveal[data-delay="4"] { transition-delay: 0.32s; } .side-rail {
position: fixed;
right: 24px;
top: 50%;
transform: translateY(-50%);
z-index: 50;
display: flex;
flex-direction: column;
gap: 16px;
font-size: 11px;
letter-spacing: 0.15em;
color: var(--c-ink);
pointer-events: none;
font-weight: 500;
}
.side-rail a {
display: flex;
align-items: center;
gap: 12px;
opacity: 0.45;
transition: opacity 0.3s ease;
pointer-events: auto;
white-space: nowrap;
}
.side-rail a .rn {
font-family: var(--f-latin);
font-size: 10px;
letter-spacing: 0.1em;
font-weight: 400;
}
.side-rail a::before {
content: "";
width: 18px;
height: 1px;
background: currentColor;
transition: width 0.3s ease;
}
.side-rail a:hover, .side-rail a.is-active { opacity: 1; }
.side-rail a.is-active::before { width: 38px; }
.side-rail.on-dark { color: var(--c-cream); } .news-section {
padding: var(--section-y) 0;
background: var(--c-paper);
}
.news-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 28px;
margin-top: 56px;
}
.news-card {
display: flex;
flex-direction: column;
background: #fff;
border-radius: 2px;
overflow: hidden;
transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.news-card:hover {
transform: translateY(-5px);
box-shadow: 0 16px 48px rgba(0,0,0,0.10);
}
.news-thumb {
position: relative;
aspect-ratio: 4 / 3;
overflow: hidden;
background: var(--c-forest-deep);
}
.news-thumb img {
width: 100%; height: 100%;
object-fit: cover;
transition: transform 0.9s ease;
}
.news-card:hover .news-thumb img { transform: scale(1.05); }
.news-cat {
position: absolute;
top: 14px; left: 14px;
background: var(--c-gold);
color: var(--c-ink);
font-size: 10px;
letter-spacing: 0.2em;
font-weight: 700;
padding: 5px 12px;
z-index: 1;
} .news-thumb-double {
display: grid;
grid-template-columns: 1fr 1fr;
aspect-ratio: auto;
gap: 2px;
}
.news-thumb-double .news-img-main,
.news-thumb-double .news-img-sub {
width: 100%;
aspect-ratio: 1 / 1;
object-fit: cover;
position: static;
height: auto;
}
.news-body {
padding: 22px 22px 28px;
display: flex;
flex-direction: column;
flex: 1;
}
.news-date {
display: block;
font-size: 11px;
letter-spacing: 0.22em;
color: var(--c-earth);
font-weight: 500;
margin-bottom: 10px;
font-family: var(--f-latin);
}
.news-title {
font-family: var(--f-display);
font-size: 16px;
font-weight: 500;
line-height: 1.65;
letter-spacing: 0.04em;
margin-bottom: 12px;
color: var(--c-ink);
flex: 1;
}
.news-excerpt {
font-size: 13px;
line-height: 1.9;
color: var(--c-ash);
margin-top: 8px;
}
@media (max-width: 1100px) {
.news-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
.news-grid { grid-template-columns: 1fr; }
} .contact-staff {
font-size: 12px;
letter-spacing: 0.15em;
color: rgba(245, 241, 232, 0.6);
margin-bottom: 4px;
font-weight: 400;
}
.contact-fax {
font-size: 12px;
letter-spacing: 0.12em;
color: rgba(245, 241, 232, 0.5);
margin-top: 6px;
font-weight: 400;
}
.sns-links {
display: flex;
gap: 16px;
flex-wrap: wrap;
}
.btn-sns {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 16px 28px;
border-radius: 999px;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.12em;
text-decoration: none;
transition: transform 0.3s ease, opacity 0.3s ease;
flex: 1;
min-width: 160px;
justify-content: center;
}
.btn-sns svg { width: 20px; height: 20px; flex-shrink: 0; }
.btn-sns:hover { transform: translateY(-2px); opacity: 0.9; }
.btn-line {
background: #06C755;
color: #fff;
}
.btn-instagram {
background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
color: #fff;
}
@media (max-width: 680px) {
.sns-links { flex-direction: column; }
.btn-sns { min-width: unset; }
}
@media (max-width: 900px) { .side-rail { display: none; } }
.btn-sns svg {
width: 20px;
height: 20px;
flex-shrink: 0;
}
.single-page {
background: #f5f1e8;
padding: 160px 0 120px;
min-height: 100vh;
}
.single-article {
max-width: 900px;
margin: 0 auto;
}
.single-thumb img {
width: 100%;
height: auto;
display: block;
margin-bottom: 48px;
}
.single-date {
display: block;
color: #a67c3d;
letter-spacing: 0.15em;
margin-bottom: 24px;
}
.single-title {
font-size: clamp(32px, 5vw, 56px);
line-height: 1.5;
margin-bottom: 40px;
}
.single-content {
font-size: 18px;
line-height: 2;
}
.single-back {
margin-top: 64px;
}
.single-back a {
color: inherit;
text-decoration: none;
border-bottom: 1px solid currentColor;
}
.single-page {
background: #f5f1e8;
color: #1f2a24;
}
.single-hero {
padding: 180px 0 80px;
background: #f5f1e8;
}
.single-main-title {
font-family: var(--f-display);
font-size: clamp(36px, 5vw, 72px);
line-height: 1.35;
letter-spacing: 0.04em;
margin-top: 48px;
max-width: 960px;
}
.single-meta {
display: flex;
gap: 16px;
align-items: center;
margin-top: 32px;
color: #8a6a43;
letter-spacing: 0.12em;
}
.single-category {
display: inline-block;
padding: 6px 14px;
background: #d8a24a;
color: #1f2a24;
font-size: 13px;
letter-spacing: 0.08em;
}
.single-content-section {
padding: 0 0 120px;
}
.single-article {
max-width: 980px;
margin: 0 auto;
}
.single-thumb {
margin-bottom: 56px;
}
.single-thumb img {
width: 100%;
height: auto;
display: block;
}
.single-content {
max-width: 760px;
margin: 0 auto;
font-size: 18px;
line-height: 2.1;
}
.single-content p {
margin-bottom: 1.8em;
}
.single-back {
max-width: 760px;
margin: 72px auto 0;
}
.single-back a {
display: inline-flex;
align-items: center;
color: inherit;
text-decoration: none;
border-bottom: 1px solid currentColor;
padding-bottom: 6px;
}
@media (max-width: 768px) {
.single-hero {
padding: 120px 0 56px;
}
.single-main-title {
font-size: 32px;
}
.single-content {
font-size: 16px;
}
}
.contact .wpcf7 {
margin-top: 0;
}
.contact .wpcf7 form {
display: block;
}
.contact .wpcf7 p {
margin: 0 0 20px;
max-width: none;
opacity: 1;
line-height: 1.6;
}
.contact .wpcf7 label {
display: block;
font-size: 13px;
letter-spacing: 0.08em;
color: rgba(245, 241, 232, 0.85);
margin-bottom: 8px;
}
.contact .wpcf7 input,
.contact .wpcf7 textarea,
.contact .wpcf7 select {
width: 100%;
box-sizing: border-box;
background: rgba(245, 241, 232, 0.06);
border: 1px solid rgba(245, 241, 232, 0.22);
color: #f5f1e8;
padding: 16px;
font-size: 15px;
}
.contact .wpcf7 textarea {
min-height: 160px;
resize: vertical;
}
.contact .wpcf7-submit {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 180px;
border-radius: 999px;
background: #d8a24a !important;
color: #1f2a24 !important;
border: none !important;
padding: 16px 32px !important;
font-weight: 700;
cursor: pointer;
}
.contact .wpcf7-not-valid-tip {
color: #ffd6d6;
font-size: 13px;
margin-top: 6px;
}
.contact .wpcf7-response-output {
color: #f5f1e8;
border-color: rgba(245, 241, 232, 0.35) !important;
margin: 24px 0 0 !important;
}
.contact-form-wrap {
margin-top: 28px;
}
.contact-form-wrap .wpcf7 {
width: 100%;
}
.contact-form-wrap .wpcf7 p {
margin: 0 0 18px;
}
.contact-form-wrap label {
color: rgba(245, 241, 232, 0.85);
font-size: 13px;
letter-spacing: 0.08em;
}
.contact-form-wrap input,
.contact-form-wrap textarea,
.contact-form-wrap select {
width: 100%;
box-sizing: border-box;
background: rgba(245, 241, 232, 0.06);
border: 1px solid rgba(245, 241, 232, 0.22);
color: #f5f1e8;
padding: 14px 16px;
}
.contact-form-wrap textarea {
min-height: 140px;
}
.contact-form-wrap input[type="submit"] {
width: auto;
min-width: 160px;
border-radius: 999px;
background: #d8a24a;
color: #1f2a24;
border: none;
font-weight: 700;
cursor: pointer;
} .works-grid-wp {
display: grid !important;
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
gap: 32px !important;
margin-top: 72px !important;
}
.work-card-wp {
position: relative !important;
display: block !important;
width: 100% !important;
height: 360px !important;
overflow: hidden !important;
background: #102018 !important;
color: #f5f1e8 !important;
text-decoration: none !important;
}
.work-card-thumb {
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
display: block !important;
}
.work-card-overlay {
position: absolute !important;
left: 0 !important;
right: 0 !important;
bottom: 0 !important;
z-index: 10 !important;
padding: 80px 24px 24px !important;
background: linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,0)) !important;
color: #f5f1e8 !important;
writing-mode: horizontal-tb !important;
}
.work-card-overlay .cat {
display: block !important;
color: #d8a24a !important;
font-size: 12px !important;
letter-spacing: .2em !important;
margin-bottom: 8px !important;
}
.work-card-overlay h4 {
color: #f5f1e8 !important;
font-size: 20px !important;
line-height: 1.5 !important;
margin: 0 0 8px !important;
font-family: var(--f-display) !important;
}
.work-card-overlay time {
display: block !important;
color: rgba(245,241,232,.8) !important;
font-size: 12px !important;
letter-spacing: .16em !important;
} @media (max-width: 900px) {
.works-grid-wp {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
gap: 24px !important;
margin-top: 40px !important;
}
.work-card-wp {
height: 220px !important;
}
.work-card-overlay {
padding: 60px 14px 14px !important;
}
.work-card-overlay h4 {
font-size: 15px !important;
line-height: 1.45 !important;
}
.work-card-overlay time {
font-size: 11px !important;
}
.work-card-overlay .cat {
font-size: 11px !important;
}
}
@media (max-width: 768px){
.footer .brand-text .ja{
white-space: nowrap;
font-size: 22px;
letter-spacing: 0.06em;
}
} @media (max-width: 768px) {
.footer .brand {
display: flex !important;
align-items: center !important;
gap: 14px !important;
flex-wrap: nowrap !important;
}
.footer .brand-mark-img {
width: 46px !important;
height: 46px !important;
flex: 0 0 46px !important;
}
.footer .brand-text {
display: flex !important;
flex-direction: column !important;
width: max-content !important;
min-width: max-content !important;
flex-shrink: 0 !important;
}
.footer .brand-text .ja {
display: block !important;
white-space: nowrap !important;
word-break: keep-all !important;
overflow-wrap: normal !important;
font-size: 22px !important;
letter-spacing: 0.04em !important;
line-height: 1 !important;
}
.footer .brand-text .kana {
display: block !important;
white-space: nowrap !important;
}
}