@charset "UTF-8";

/* ========================================
   Scroll Animations
======================================== */
[data-scroll] { opacity: 0; will-change: opacity, transform; transition: opacity 0.85s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 1.1s cubic-bezier(0.33, 1, 0.68, 1); }
[data-scroll="fade-up"] { transform: translateY(18px); }
[data-scroll="fade-left"] { transform: translateX(-24px); }
[data-scroll="fade-right"] { transform: translateX(24px); }
[data-scroll].is-inview { opacity: 1; transform: none; }
[data-scroll-delay="1"] { transition-delay: 0.14s; }
[data-scroll-delay="2"] { transition-delay: 0.29s; }
[data-scroll-delay="3"] { transition-delay: 0.43s; }
@media (prefers-reduced-motion: reduce) { [data-scroll] { opacity: 1 !important; transform: none !important; transition: none !important; } }

/* ========================================
   共通
======================================== */
.sec-inner { max-width: 1200px; margin: 0 auto; padding: 0 30px; }

/* セクションタイトル */
.sec-title { margin-bottom: 52px; }
.sec-title__en { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 2px; padding-bottom: 6px; border-bottom: 2px solid currentColor; margin-bottom: 10px; }
.sec-title__ja { font-size: clamp(20px, 2.4vw, 28px); font-weight: 700; color: #333; letter-spacing: 2px; }

/* ========================================
   ページタイトル
======================================== */
/* パンくず */
.breadcrumb__list { display: flex; align-items: center; list-style: none; margin-bottom: 36px; }
.breadcrumb__item { font-size: 12px; color: #bbb; letter-spacing: 0.5px; }
.breadcrumb__item + .breadcrumb__item::before { content: '›'; margin: 0 8px; color: #ddd; }
.breadcrumb__item a { color: #bbb; transition: color 0.25s ease; }
.breadcrumb__item a:hover { opacity: 1; color: #5a3e28; }

/* ページタイトル（全ページ共通・統一） */
#page-hero { background: #f7f4ed; position: relative; overflow: hidden; min-height: 380px; display: flex; align-items: center; }
#page-hero .page-hero__inner { position: relative; max-width: 1056px; width: 100%; margin: 0 auto; padding: 80px 30px; z-index: 2; }
#page-hero .page-hero__title-wrap { position: relative; }
#page-hero .page-hero__deco { display: block; font-size: clamp(32px, 5vw, 64px); font-weight: 700; color: rgba(90,62,40,0.6); letter-spacing: 0.06em; line-height: 1; margin-bottom: 0.25em; user-select: none; pointer-events: none; }
#page-hero .page-hero__sub { display: inline-flex; align-items: center; gap: 16px; font-size: clamp(12px, 1.1vw, 14px); font-weight: 600; color: #877266; letter-spacing: 4px; margin: 0; }
#page-hero .page-hero__sub::before { content: ''; display: block; width: 44px; height: 1px; background: #b8a898; }

/* キービジュアル付き（画像あり・薄めオーバーレイ）: company */
#page-hero.page-hero--keyvisual { background-size: cover; background-position: center; background-repeat: no-repeat; }
#page-hero.page-hero--keyvisual .page-hero__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(247,244,237,1.00) 0%, rgba(247,244,237,0.30) 35%, rgba(247,244,237,0.30) 100%); z-index: 1; }

/* ステートメント型（画像あり・濃いめオーバーレイ）: recruit */
#page-hero.page-hero--statement { background-size: cover; background-position: center; background-repeat: no-repeat; }
#page-hero.page-hero--statement .page-hero__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(247,244,237,1.00) 0%, rgba(247,244,237,0.48) 100%); z-index: 1; }

/* コンパクト（画像あり・濃いめオーバーレイ・高さ低め）: service詳細4ページ */
#page-hero.page-hero--compact { background-size: cover; background-position: center; background-repeat: no-repeat; min-height: 340px; }
#page-hero.page-hero--compact .page-hero__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(247,244,237,1.00) 0%, rgba(247,244,237,0.48) 100%); z-index: 1; }

/* ========================================
   ご挨拶
======================================== */
#greeting { background: #f7f4ed; padding: 50px 0 90px; }
#greeting .sec-inner { max-width: 900px; }
#greeting .sec-title__en { color: #e08830; }
#greeting .sec-inner { max-width: 900px; }
#greeting .greeting__body p { font-size: 16px; color: #333; line-height: 1.8; letter-spacing: 0.8px; margin-bottom: 30px;font-weight: 500; }
#greeting .greeting__body p:last-child { margin-bottom: 0; }
#greeting .greeting__sign { display: flex; align-items: flex-end; justify-content: space-between; }
#greeting .greeting__sign-img { width: 406px; border-radius: 4px; }
#greeting .greeting__sign-name { font-size: 15px; font-weight: 500; color: #333; letter-spacing: 1.5px; }

/* ========================================5
   強み・特徴
======================================== */
#strength { background: #fff; padding: 90px 0; box-shadow: inset 0 10px 28px rgba(90,62,40,0.04); }
#strength .sec-title__en { color: #5bb35a; }
#strength .strength__item { display: flex; gap: 40px; align-items: flex-start; padding: 52px 0; border-bottom: 1px solid rgba(90,62,40,0.08); }
#strength .strength__item:first-child { border-top: 1px solid rgba(90,62,40,0.08); }
#strength .strength__num { flex-shrink: 0; width: 72px; height: auto; padding-top: 2px; }
#strength .strength__title { font-size: 19px; font-weight: 700; color: #333; letter-spacing: 1px; margin-bottom: 18px; line-height: 1.6; }
#strength .strength__content p { font-size: 15px; color: #555; line-height: 2.1; letter-spacing: 0.5px; }

/* ========================================
   会社概要
======================================== */
#company-profile { background: #f7f4ed; padding: 90px 0; }
#company-profile .sec-title { text-align: center; }
#company-profile .sec-title__en { color: #e08830; }
#company-profile .profile__table { max-width: 900px; margin: 0 auto; }
#company-profile .profile__row { display: flex; border-bottom: 1px solid rgba(90,62,40,0.1); }
#company-profile .profile__row:first-child { border-top: 1px solid rgba(90,62,40,0.1); }
#company-profile .profile__label { flex: 0 0 172px; padding: 20px 0; font-size: 13px; font-weight: 600; color: #999; letter-spacing: 0.8px; }
#company-profile .profile__value { flex: 1; padding: 20px 0 20px 16px; font-size: 15px; color: #333; letter-spacing: 0.5px; line-height: 1.8; }
#company-profile .profile__value a { color: #333; transition: color 0.25s ease; }
#company-profile .profile__value a:hover { color: #5bb35a; opacity: 1; }

/* ========================================
   沿革
======================================== */
#history { background: #fff; padding: 90px 0; box-shadow: inset 0 10px 28px rgba(90,62,40,0.04); }
#history .sec-title { text-align: center; }
#history .sec-title__en { color: #5bb35a; }
#history .history__timeline { max-width: 900px; margin: 0 auto; position: relative; }
#history .history__timeline::before { content: ""; position: absolute; left: 160px; top: 0; bottom: 0; width: 2px; background: linear-gradient(to bottom, transparent, rgba(135,114,102,0.3) 5%, rgba(135,114,102,0.3) 95%, transparent); }
#history .history__row { display: flex; align-items: flex-start; position: relative; padding: 0 0 0 0; }
#history .history__row::before { content: ""; position: absolute; left: 154px; top: 28px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2.5px solid #877266; z-index: 1; box-shadow: 0 0 0 4px rgba(135,114,102,0.12); }
#history .history__date { flex: 0 0 140px; padding: 24px 0; text-align: right; font-size: 18px; font-weight: 700; color: #877266; letter-spacing: 1px; }
#history .history__detail { flex: 1; padding: 24px 0 24px 52px; font-size: 15px; color: #333; letter-spacing: 0.5px; line-height: 1.8; }

/* ========================================
   アクセス
======================================== */
#access { background: #f7f4ed; padding: 90px 0; }
#access .sec-title__en { color: #5bb35a; }
#access .access__map { width: 100%; height: 420px; border-radius: 4px; overflow: hidden; margin-bottom: 56px; }
#access .access__map iframe { width: 100%; height: 100%; border: none; display: block; }
#access .access__map-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: #e4e0d8; }
#access .access__map-placeholder span { font-size: 13px; color: #aaa; letter-spacing: 1px; }
#access .access__body { display: flex; gap: 56px; align-items: flex-start; }
#access .access__photo { flex: 0 0 38.2%; border-radius: 4px; overflow: hidden; aspect-ratio: 8/5; background: #cec5b8; }
#access .access__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
#access .access__table { flex: 1; }
#access .access__row { display: flex; border-bottom: 1px solid rgba(90,62,40,0.1); }
#access .access__row:first-child { border-top: 1px solid rgba(90,62,40,0.1); }
#access .access__label { flex: 0 0 100px; padding: 18px 0; font-size: 13px; font-weight: 600; color: #999; letter-spacing: 0.8px; }
#access .access__value { flex: 1; padding: 18px 0 18px 16px; font-size: 15px; color: #333; letter-spacing: 0.5px; line-height: 1.8; }
#access .access__value a { color: #333; transition: color 0.25s ease; }
#access .access__value a:hover { color: #5bb35a; opacity: 1; }
#access .access__block + .access__block { margin-top: 80px; }
#access .access__block-title { margin-bottom: 24px; }
#access .access__block-title__en { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 2px; color: #5bb35a; margin-bottom: 6px; }
#access .access__block-title__ja { font-size: 18px; font-weight: 700; color: #877266; letter-spacing: 1.5px; }

/* ========================================
   ≤1024px
======================================== */
@media screen and (max-width: 1024px) {
.sec-inner { padding: 0 50px; }
#page-hero { min-height: 300px; }
#page-hero .page-hero__inner { padding: 60px 20px; }
#page-hero.page-hero--compact { min-height: 270px; }
#greeting { padding: 60px 0; }
#greeting .greeting__sign-img { width: 320px; }
#strength { padding: 60px 0; }
#company-profile { padding: 60px 0; }
#history { padding: 60px 0; }
#access { padding: 60px 0; }
#access .access__body { gap: 36px; }
#access .access__block + .access__block { margin-top: 60px; }
}

/* ========================================
   SP ≤767px
======================================== */
@media screen and (max-width: 767px) {
.sec-inner { padding: 0 30px; }
#page-hero { min-height: 220px; }
#page-hero .page-hero__inner { padding: 50px 16px; }
#page-hero .page-hero__sub { font-size: 11px; letter-spacing: 3px; gap: 12px; }
#page-hero .page-hero__sub::before { width: 32px; }
#page-hero.page-hero--compact { min-height: 200px; }
#greeting { padding: 50px 0; }
#greeting .greeting__body p { font-size: 15px; line-height: 2.1; }
#greeting .greeting__sign { flex-direction: column; align-items: center; gap: 20px; }
#greeting .greeting__sign-img { width: 80%; }
#strength { padding: 50px 0; }
#strength .strength__item { flex-direction: column; gap: 10px; padding: 40px 0; }
#strength .strength__num { width: 56px; }
#strength .strength__title { font-size: 17px; }
#company-profile { padding: 50px 0; }
#company-profile .profile__row { flex-direction: column; }
#history { padding: 50px 0; }
#history .history__timeline::before { left: 8px; }
#history .history__row::before { left: 2px; top: 20px; width: 12px; height: 12px; }
#history .history__row { flex-direction: column; padding-left: 36px; }
#history .history__date { flex: none; padding: 14px 0 0; text-align: left; font-size: 15px; }
#history .history__detail { padding: 4px 0 18px 0; font-size: 14px; }
#company-profile .profile__label { flex: none; padding: 18px 0 0; }
#company-profile .profile__value { padding: 8px 0 18px 0; }
#access { padding: 50px 0; }
#access .access__map { height: 260px; margin-bottom: 36px; }
#access .access__body { flex-direction: column; gap: 32px; }
#access .access__table { width: 100%; }
#access .access__photo { flex: none; width: 100%; aspect-ratio: 16/9; }
#access .access__row { flex-direction: column; }
#access .access__label { flex: none; padding: 16px 0 0; }
#access .access__value { padding: 6px 0 16px 0; }
#access .access__block + .access__block { margin-top: 50px; }
#access .access__block-title__ja { font-size: 16px; }
}

/* ========================================
   事業内容一覧（service/index.html）
======================================== */
#service-intro { background: #f7f4ed; padding: 50px 0 80px; }
#service-intro .sec-title__en { color: #e08830; }
#service-intro .sec-title__ja { font-size: clamp(17px, 2.1vw, 24px); }
#service-intro .sv-intro__lead { font-size: 15px; color: #555; line-height: 2.2; letter-spacing: 0.6px; margin-top: -10px; }

#service-list .sv-item { padding: 90px 0; }
#service-list .sv-item--odd { background: #fff; }
#service-list .sv-item--even { background: #f7f4ed; }
#service-list .sv-item__inner { max-width: 1200px; margin: 0 auto; padding: 0 30px; display: flex; align-items: center; gap: 80px; }
#service-list .sv-item--even .sv-item__inner { flex-direction: row-reverse; }
#service-list .sv-item__img { flex: 0 0 46%; margin: 0; border-radius: 4px; overflow: hidden; aspect-ratio: 4 / 3; background: #cec5b8; }
#service-list .sv-item__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
#service-list .sv-item:hover .sv-item__img img { transform: scale(1.04); }
#service-list .sv-item__body { flex: 1; }
#service-list .sv-item__num { display: block; font-size: 16px; font-weight: 700; letter-spacing: 3px; color: #e08830; margin-bottom: 16px; padding-bottom: 0px; border-bottom: 2px solid #e08830; width: 25px; }
#service-list .sv-item__title { font-size: clamp(17px, 1.8vw, 22px); font-weight: 700; color: #3a2e24; letter-spacing: 2px; line-height: 1.5; margin-bottom: 28px; }
#service-list .sv-item__text { font-size: 15px; color: #555; line-height: 2.2; letter-spacing: 0.5px; margin-bottom: 44px; }
#service-list .sv-item__link { display: inline-flex; align-items: center; gap: 15px; padding: 9px 45px; border: 1px solid #999; border-radius: 50px; font-size: 14px; font-weight: 500; color: #333; background-color: #fff; position: relative; letter-spacing: 1px; overflow: hidden; z-index: 1; transition: color 0.4s ease, transform 0.4s cubic-bezier(0.33,1,0.68,1), box-shadow 0.4s ease; }
#service-list .sv-item__link::after { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: #333; border-radius: 50px; z-index: -1; transition: left 0.4s ease; }
#service-list .sv-item__link:hover { opacity: 1; color: #fff; border-color: #333; transform: translateY(-3px); box-shadow: 0 8px 24px rgba(60,40,20,0.16); }
#service-list .sv-item__link:hover::after { left: 0; }
#service-list .sv-item__link .arrow { position: absolute; right: 15px; width: 14px; height: 14px; display: flex; align-items: center; justify-content: center; transition: transform 0.5s cubic-bezier(0.34,1.56,0.64,1); }
#service-list .sv-item__link .arrow::before { content: ""; width: 7px; height: 7px; border-top: 1.5px solid #777; border-right: 1.5px solid #777; transform: rotate(45deg); transition: border-color 0.4s ease; }
#service-list .sv-item__link:hover .arrow { transform: translateX(5px); }
#service-list .sv-item__link:hover .arrow::before { border-color: #fff; }

@media screen and (max-width: 1024px) {
#service-intro { padding: 40px 0 60px; }
#service-list .sv-item { padding: 60px 0; }
#service-list .sv-item__inner { gap: 48px; padding: 0 40px; }
#service-list .sv-item__img { flex: 0 0 44%; }
#service-list .sv-item__title { font-size: clamp(16px, 1.7vw, 20px); }
#service-list .sv-item__text { margin-bottom: 36px; }
}

@media screen and (max-width: 767px) {
#service-intro { padding: 36px 0 50px; }
#service-intro .sv-intro__lead { font-size: 14px; line-height: 2; }
#service-intro .sv-intro__lead br.pc-only { display: none; }
#service-list .sv-item { padding: 50px 0; }
#service-list .sv-item__inner { flex-direction: column !important; gap: 28px; padding: 0 20px; }
#service-list .sv-item__img { flex: none; width: 100%; aspect-ratio: 16 / 9; }
#service-list .sv-item__num { margin-bottom: 12px; padding-bottom: 12px; }
#service-list .sv-item__title { font-size: clamp(20px, 5.5vw, 26px); margin-bottom: 18px; }
#service-list .sv-item__text { font-size: 14px; line-height: 2.1; margin-bottom: 28px; }
#service-list .sv-item__link { font-size: 13px; padding: 13px 30px; }
}

/* ========================================
   施工事例・施工実績（works/index.html）
======================================== */
#works { background: #f7f4ed; padding: 50px 0 100px; }
#works .works__layout { display: flex; gap: 72px; align-items: flex-start; }
#works .works__sidebar { flex: 0 0 150px; position: sticky; top: 100px; }
#works .works__sidebar-label { font-size: 10px; font-weight: 700; letter-spacing: 3px; color: #c5bab3; margin-bottom: 20px; }
#works .works__nav { display: flex; flex-direction: column; gap: 0; border-left: 1px solid rgba(135,114,102,0.15); }
#works .works__nav-btn { display: flex; align-items: center; gap: 10px; width: 100%; padding: 13px 0 13px 20px; font-size: 13px; font-weight: 700; letter-spacing: 0.5px; color: #b5a49a; background: none; border: none; border-left: 2px solid transparent; margin-left: -1px; cursor: pointer; text-align: left; transition: color 0.2s ease, border-color 0.2s ease; }
#works .works__nav-btn-dot { display: block; width: 5px; height: 5px; border-radius: 50%; background: rgba(135,114,102,0.2); flex-shrink: 0; transition: background 0.2s ease; }
#works .works__nav-btn.is-active { color: #3a2e24; border-left-color: #5bb35a; }
#works .works__nav-btn.is-active .works__nav-btn-dot { background: #5bb35a; }
#works .works__nav-btn:not(.is-active):hover { color: #877266; }
#works .works__content { flex: 1; min-width: 0; }
#works .works__panel { display: none; }
#works .works__panel.is-active { display: block; }
#works .works__panel-head { margin-bottom: 40px; }
#works .works__panel-head .sec-title { margin-bottom: 0; }
#works .works__panel-head .sec-title__en { color: #5bb35a; }
#works .works__cases-grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: 300px 220px 220px; gap: 4px; list-style: none; }
#works .works__case-item { overflow: hidden; }
#works .works__case-item:first-child { grid-column: span 2; }
#works .works__case-img { position: relative; width: 100%; height: 100%; overflow: hidden; background: #cec5b8; }
#works .works__case-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.0s cubic-bezier(0.23, 1, 0.32, 1); }
#works .works__case-item:hover .works__case-img img { transform: scale(1.06); }
#works .works__case-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(18,10,4,0.78) 0%, rgba(18,10,4,0.2) 42%, transparent 70%); pointer-events: none; z-index: 1; transition: opacity 0.4s ease; }
#works .works__case-item:hover .works__case-img::after { opacity: 0.8; }
#works .works__case-info { position: absolute; bottom: 0; left: 0; right: 0; padding: 18px 20px; z-index: 2; }
#works .works__case-item:first-child .works__case-info { padding: 24px 26px; }
#works .works__case-category { display: block; font-size: 10px; font-weight: 700; letter-spacing: 2.5px; color: rgba(255,255,255,0.55); margin-bottom: 6px; }
#works .works__case-title { font-size: 14px; font-weight: 700; color: #fff; line-height: 1.45; letter-spacing: 0.5px; }
#works .works__case-item:first-child .works__case-title { font-size: 17px; }
#works .works__case-meta { font-size: 11px; color: rgba(255,255,255,0.45); letter-spacing: 1px; margin-top: 5px; }
#works .works__case-item--link a { display: block; width: 100%; height: 100%; }
#works .works__case-btn { position: absolute; bottom: 14px; right: 14px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,0.9); display: flex; align-items: center; justify-content: center; font-size: 18px; line-height: 1; color: #3a2e24; z-index: 3; transition: background 0.25s ease, transform 0.25s ease; }
#works .works__case-item--link:hover .works__case-btn { background: #fff; transform: scale(1.1); }
#works .works__records-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; list-style: none; border: 1px solid rgba(135,114,102,0.12); border-radius: 6px; overflow: hidden; }
#works .works__pdf-item { background: #fff; padding: 36px 28px 30px; display: flex; flex-direction: column; border-right: 1px solid rgba(135,114,102,0.12); position: relative; overflow: hidden; transition: background 0.25s ease; }
#works .works__pdf-item:last-child { border-right: none; }
#works .works__pdf-item:hover { background: #faf8f4; }
#works .works__pdf-deco { display: none; }
#works .works__pdf-heading { font-size: 14px; font-weight: 700; color: #3a2e24; letter-spacing: 0.8px; line-height: 1.8; margin-bottom: auto; padding-bottom: 24px; }
#works .works__pdf-download { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 1px; color: #877266; border-bottom: 1px solid rgba(135,114,102,0.3); padding-bottom: 2px; transition: color 0.2s ease, border-color 0.2s ease; align-self: flex-start; }
#works .works__pdf-download:hover { color: #5bb35a; border-color: #5bb35a; }

@media screen and (max-width: 1024px) {
#works { padding: 50px 0 70px; }
#works .works__layout { gap: 36px; }
#works .works__sidebar { flex: 0 0 120px; }
#works .works__cases-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: 220px 180px 180px 180px; }
#works .works__records-grid { grid-template-columns: repeat(2, 1fr); }
#works .works__pdf-item:nth-child(2) { border-right: none; }
#works .works__pdf-item { padding: 26px 20px 22px; }
}

@media screen and (max-width: 767px) {
#works { padding: 50px 0 60px; }
#works .works__layout { flex-direction: column; gap: 24px; align-items: stretch; }
#works .works__sidebar { flex: none; width: 100%; position: static; }
#works .works__sidebar-label { display: none; }
#works .works__nav { flex-direction: row; border-left: none; border-bottom: 1px solid rgba(135,114,102,0.15); }
#works .works__nav-btn { padding: 11px 16px 11px 0; border-left: none; border-bottom: 2px solid transparent; margin-left: 0; margin-bottom: -1px; font-size: 13px; }
#works .works__nav-btn.is-active { border-left-color: transparent; border-bottom-color: #5bb35a; }
#works .works__cases-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: 160px 140px 140px 140px; }
#works .works__case-item:first-child .works__case-info { padding: 14px 16px; }
#works .works__case-item:first-child .works__case-title { font-size: 14px; }
#works .works__case-info { padding: 10px 12px; }
#works .works__case-title { font-size: 12px; }
#works .works__case-category { font-size: 9px; letter-spacing: 1.5px; margin-bottom: 4px; }
#works .works__case-meta { font-size: 10px; }
#works .works__records-grid { grid-template-columns: 1fr; width: 100%; }
#works .works__pdf-item { border-right: none; border-bottom: 1px solid rgba(135,114,102,0.12); padding: 24px 22px 22px; }
#works .works__pdf-item:last-child { border-bottom: none; }
#works .works__pdf-heading { font-size: 13px; padding-bottom: 16px; }
#works .works__pdf-download { margin-top: 14px; width: 100%; justify-content: center; border-bottom: none; border: 1px solid rgba(135,114,102,0.3); border-radius: 3px; padding: 10px; }
}

/* ========================================
   よくある質問（faq.html）
======================================== */
#faq { background: #f7f4ed; padding: 50px 0 180px; }
#faq .sec-inner { max-width: 860px; }
#faq .sec-title__en { color: #e08830; }

#faq .faq__list { list-style: none; display: flex; flex-direction: column; gap: 40px; }

#faq .faq__item { border-bottom: 1px solid rgba(90,62,40,0.1); padding-bottom: 40px; }
#faq .faq__item:last-child { border-bottom: none; padding-bottom: 0; }

/* Q 吹き出し */
#faq .faq__q { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
#faq .faq__q-label { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #f09230; border-radius: 0 19px 19px 19px; font-size: 18px; font-weight: 700; color: #fff; letter-spacing: 1px; line-height: 1; }
#faq .faq__q-text { font-size: 17px; font-weight: 700; color: #877266; line-height: 1.6; letter-spacing: 0.5px; padding-top: 8px; }

/* A 回答 */
#faq .faq__a { padding: 0 0 0 54px; }
#faq .faq__a-text { font-size: 14px; color: #555; line-height: 2.1; letter-spacing: 0.5px; }

/* 関連リンクボタン */
#faq .faq__a-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 13px; font-weight: 600; color: #5a3e28; letter-spacing: 0.5px; padding-bottom: 2px; position: relative; transition: color 0.25s ease; }
#faq .faq__a-link::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1px; background: #e08830; transition: width 0.4s ease; }
#faq .faq__a-link:hover { opacity: 1; color: #e08830; }
#faq .faq__a-link:hover::after { width: 100%; }
#faq .faq__a-arrow { display: inline-block; width: 8px; height: 8px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg); flex-shrink: 0; }

/* 下部お問い合わせ */
#faq .faq__contact { margin-top: 72px; background: linear-gradient(135deg, #f7b055 0%, #e06b10 100%); border-radius: 0 70px 70px 70px; padding: 56px 48px; text-align: center; position: relative; overflow: hidden; box-shadow: 0 8px 32px rgba(240,146,48,0.28); }
#faq .faq__contact::after { content: ''; position: absolute; inset: 0; filter: url(#noise); opacity: 0.18; pointer-events: none; }
#faq .faq__contact-title { font-size: clamp(16px, 1.8vw, 22px); font-weight: 700; color: #fff; letter-spacing: 1.5px; margin-bottom: 12px; line-height: 1.7; }
#faq .faq__contact-lead { font-size: 14px; color: rgba(255,255,255,0.8); letter-spacing: 0.5px; line-height: 1.8; margin-bottom: 36px; }
#faq .faq__contact-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 48px; background: #fff; color: #e08830; border-radius: 50px; border: 2px solid #fff; font-size: 15px; font-weight: 700; letter-spacing: 1px; transition: background 0.35s ease, color 0.35s ease; }
#faq .faq__contact-btn .faq__a-arrow { transition: transform 0.45s cubic-bezier(0.34,1.56,0.64,1); }
#faq .faq__contact-btn:hover { opacity: 1; background: transparent; color: #fff; }
#faq .faq__contact-btn:hover .faq__a-arrow { transform: translateX(5px) rotate(45deg); }

/* ≤1024px */
@media screen and (max-width: 1024px) {
#faq { padding: 50px 0 120px; }
#faq .faq__q-text { font-size: 16px; }
#faq .faq__contact { padding: 48px 36px; }
}

/* SP ≤767px */
@media screen and (max-width: 767px) {
#faq { padding: 50px 0 80px; }
#faq .faq__list { gap: 32px; }
#faq .faq__item { padding-bottom: 32px; }
#faq .faq__q-label { width: 36px; height: 36px; font-size: 16px; }
#faq .faq__q-text { font-size: 15px; padding-top: 5px; }
#faq .faq__a { padding-left: 50px; }
#faq .faq__a-text { font-size: 13px; line-height: 2; }
#faq .faq__contact { margin-top: 52px; padding: 40px 24px; }
#faq .faq__contact-btn { padding: 14px 32px; font-size: 14px; }
}

/* ========================================
   お問い合わせ（contact.html）
======================================== */
#contact-lead { background: #fff; padding: 50px 0 90px; }
#contact-lead .sec-title__en { color: #5bb35a; }
#contact-lead .contact__lead-text { font-size: 15px; color: #555; line-height: 2.2; letter-spacing: 0.5px; margin-bottom: 60px; }

/* 2カラム方法 */
#contact-lead .contact__methods { display: flex; list-style: none; }
#contact-lead .contact__method-item { flex: 1; border-top: 3px solid; padding-top: 36px; }
#contact-lead .contact__method-item--tel { border-top-color: #5bb35a; }
#contact-lead .contact__method-item--fax { border-top-color: #e08830; }
#contact-lead .contact__method-item:first-child { padding-right: 60px; border-right: 1px solid rgba(90,62,40,0.1); }
#contact-lead .contact__method-item:last-child { padding-left: 60px; }
#contact-lead .contact__method-icon { width: 28px; height: 28px; margin-bottom: 18px; }
#contact-lead .contact__method-icon svg { width: 100%; height: 100%; display: block; }
#contact-lead .contact__method-item--tel .contact__method-icon { color: #5bb35a; }
#contact-lead .contact__method-item--fax .contact__method-icon { color: #e08830; }
#contact-lead .contact__method-label { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 2px; padding-bottom: 5px; border-bottom: 2px solid currentColor; margin-bottom: 10px; }
#contact-lead .contact__method-item--tel .contact__method-label { color: #5bb35a; }
#contact-lead .contact__method-item--fax .contact__method-label { color: #e08830; }
#contact-lead .contact__method-title { font-size: 12px; font-weight: 500; color: #c5bab3; letter-spacing: 1px; margin-bottom: 24px; }
#contact-lead .contact__method-tel { display: block; font-size: clamp(28px, 3vw, 40px); font-weight: 700; color: #5bb35a; letter-spacing: 3px; margin-bottom: 20px; line-height: 1; }
#contact-lead .contact__method-tel:hover { opacity: 1; color: #49934a; }
#contact-lead .contact__method-fax-num { display: block; font-size: clamp(26px, 2.8vw, 37px); font-weight: 700; color: #e08830; letter-spacing: 3px; margin-bottom: 20px; line-height: 1; }
#contact-lead .contact__method-info { display: flex; flex-direction: column; gap: 6px; }
#contact-lead .contact__method-info-row { font-size: 13px; line-height: 1; letter-spacing: 0.3px; }
#contact-lead .contact__method-info-row dt { display: inline; font-size: 11px; font-weight: 700; color: #c5bab3; letter-spacing: 1px; margin-right: 8px; }
#contact-lead .contact__method-info-row dd { display: inline; color: #666; }
#contact-lead .contact__method-note { font-size: 11px; color: #c5bab3; letter-spacing: 0.5px; margin-top: 10px; line-height: 1.8; }

/* フォームセクション */
#contact-form { background: #f7f4ed; padding: 90px 0; }
#contact-form .sec-inner { max-width: 860px; }
#contact-form .sec-title__en { color: #e08830; }
#contact-form .contact__required { display: inline-block; font-size: 10px; font-weight: 700; color: #fff; background: #e08830; border-radius: 2px; padding: 2px 6px; letter-spacing: 0.5px; vertical-align: 1px; margin-left: 8px; }
#contact-form .contact__form { display: flex; flex-direction: column; }
#contact-form .contact__form-row { display: flex; align-items: flex-start; padding: 24px 0; }
#contact-form .contact__form-label { flex: 0 0 190px; font-size: 14px; font-weight: 600; color: #3a2e24; letter-spacing: 0.5px; padding-top: 10px; line-height: 1.6; }
#contact-form .contact__form-field { flex: 1; }
#contact-form .contact__form-field input { width: 100%; border: 1px solid rgba(90,62,40,0.15); border-radius: 4px; padding: 10px 14px; font-size: 15px; font-family: inherit; color: #333; background: #fff; transition: border-color 0.25s ease; outline: none; appearance: none; }
#contact-form .contact__form-field select { width: 100%; border: 1px solid rgba(90,62,40,0.15); border-radius: 4px; padding: 10px 36px 10px 14px; font-size: 15px; font-family: inherit; color: #333; background: #fff 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='%23877266' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center; transition: border-color 0.25s ease; outline: none; appearance: none; cursor: pointer; }
#contact-form .contact__form-field textarea { width: 100%; border: 1px solid rgba(90,62,40,0.15); border-radius: 4px; padding: 10px 14px; font-size: 15px; font-family: inherit; color: #333; background: #fff; transition: border-color 0.25s ease; outline: none; appearance: none; resize: vertical; min-height: 160px; line-height: 1.8; }
#contact-form .contact__form-field input:focus { border-color: #e08830; }
#contact-form .contact__form-field select:focus { border-color: #e08830; }
#contact-form .contact__form-field textarea:focus { border-color: #e08830; }
#contact-form .contact__agree { display: flex; align-items: center; gap: 10px; justify-content: center; margin-bottom: 36px; }
#contact-form .contact__agree input[type="checkbox"] { width: 18px; height: 18px; accent-color: #e08830; cursor: pointer; flex-shrink: 0; }
#contact-form .contact__agree label { font-size: 14px; color: #555; cursor: pointer; letter-spacing: 0.3px; }
#contact-form .contact__agree label a { color: #e08830; text-decoration: underline; text-underline-offset: 3px; }
#contact-form .contact__agree label a:hover { opacity: 0.75; }
#contact-form .contact__submit { display: flex; justify-content: center; }
#contact-form .contact__submit-btn { display: inline-flex; align-items: center; gap: 14px; padding: 17px 72px; background: linear-gradient(135deg, #f7b055 0%, #e06b10 100%); color: #fff; border: none; border-radius: 50px; font-size: 16px; font-weight: 700; letter-spacing: 1.5px; cursor: pointer; transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; box-shadow: 0 4px 20px rgba(224,107,16,0.35); font-family: inherit; }
#contact-form .contact__submit-btn:hover { opacity: 0.9; transform: translateY(-2px); box-shadow: 0 8px 28px rgba(224,107,16,0.45); }
#contact-form .contact__arrow { display: inline-block; width: 9px; height: 9px; border-top: 2px solid #fff; border-right: 2px solid #fff; transform: rotate(45deg); }

/* CF7 対応
   WP移植後はCF7管理画面のフォームテンプレートに
   .contact__form-row / .contact__form-label / .contact__form-field の
   ラッパーHTMLを追加し、静的版と同じ構造を再現してください
======================================== */
#contact-form .wpcf7 { width: 100%; }
#contact-form .wpcf7 form { border: none !important; margin: 0; padding: 0; }
#contact-form .wpcf7 form::before,
#contact-form .wpcf7 form::after { display: none !important; }
#contact-form .wpcf7-form-control-wrap { display: block; width: 100%; }
#contact-form .contact__form-field input[type="text"],
#contact-form .contact__form-field input[type="email"],
#contact-form .contact__form-field input[type="tel"] { width: 100% !important; border-top: 1px solid rgba(90,62,40,0.15) !important; border-right: 1px solid rgba(90,62,40,0.15) !important; border-bottom: 1px solid rgba(90,62,40,0.15) !important; border-left: 1px solid rgba(90,62,40,0.15) !important; border-radius: 4px !important; padding: 10px 14px !important; font-size: 15px !important; font-family: inherit; color: #333 !important; background: #fff !important; transition: border-color 0.25s ease; outline: none !important; appearance: none; -webkit-appearance: none; box-sizing: border-box; box-shadow: none !important; }
#contact-form .contact__form-field select { width: 100% !important; border-top: 1px solid rgba(90,62,40,0.15) !important; border-right: 1px solid rgba(90,62,40,0.15) !important; border-bottom: 1px solid rgba(90,62,40,0.15) !important; border-left: 1px solid rgba(90,62,40,0.15) !important; border-radius: 4px !important; padding: 10px 36px 10px 14px !important; font-size: 15px !important; font-family: inherit; color: #333 !important; background: #fff 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='%23877266' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center !important; transition: border-color 0.25s ease; outline: none !important; appearance: none; -webkit-appearance: none; cursor: pointer; box-sizing: border-box; box-shadow: none !important; }
#contact-form .contact__form-field textarea { width: 100% !important; border-top: 1px solid rgba(90,62,40,0.15) !important; border-right: 1px solid rgba(90,62,40,0.15) !important; border-bottom: 1px solid rgba(90,62,40,0.15) !important; border-left: 1px solid rgba(90,62,40,0.15) !important; border-radius: 4px !important; padding: 10px 14px !important; font-size: 15px !important; font-family: inherit; color: #333 !important; background: #fff !important; transition: border-color 0.25s ease; outline: none !important; appearance: none; -webkit-appearance: none; resize: vertical; min-height: 160px; line-height: 1.8; box-sizing: border-box; box-shadow: none !important; }
#contact-form .contact__form-field input[type="text"]:focus,
#contact-form .contact__form-field input[type="email"]:focus,
#contact-form .contact__form-field input[type="tel"]:focus,
#contact-form .contact__form-field select:focus,
#contact-form .contact__form-field textarea:focus { border-top-color: #e08830 !important; border-right-color: #e08830 !important; border-bottom-color: #e08830 !important; border-left-color: #e08830 !important; }
#contact-form .wpcf7-not-valid { border-color: #c0392b !important; }
#contact-form .wpcf7-not-valid-tip { display: block; font-size: 11px; color: #c0392b; margin-top: 6px; letter-spacing: 0.3px; line-height: 1.6; }
#contact-form .wpcf7-submit { display: block; margin: 0 auto; padding: 17px 72px; background: linear-gradient(135deg, #f7b055 0%, #e06b10 100%) !important; color: #fff !important; border: none !important; border-radius: 50px !important; font-size: 16px; font-weight: 700; letter-spacing: 1.5px; cursor: pointer; transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease; box-shadow: 0 4px 20px rgba(224,107,16,0.35); font-family: inherit; appearance: none; -webkit-appearance: none; }
#contact-form .wpcf7-submit:hover { opacity: 0.9; transform: translateY(-2px); box-shadow: 0 8px 28px rgba(224,107,16,0.45); }
#contact-form .wpcf7-spinner { display: none !important; }
#contact-form .wpcf7-response-output { margin: 28px 0 0 !important; padding: 14px 20px !important; font-size: 13px; text-align: center; border-radius: 4px !important; letter-spacing: 0.5px; line-height: 1.7; border: 1px solid transparent !important; }
#contact-form .wpcf7-form.sent .wpcf7-response-output { background: rgba(91,179,90,0.07) !important; color: #49934a !important; border-color: rgba(91,179,90,0.25) !important; }
#contact-form .wpcf7-form.invalid .wpcf7-response-output { background: rgba(192,57,43,0.05) !important; color: #c0392b !important; border-color: rgba(192,57,43,0.2) !important; }
#contact-form .wpcf7-form.failed .wpcf7-response-output { background: rgba(192,57,43,0.05) !important; color: #c0392b !important; border-color: rgba(192,57,43,0.2) !important; }
#contact-form .wpcf7-form.spam .wpcf7-response-output { background: rgba(192,57,43,0.05) !important; color: #c0392b !important; border-color: rgba(192,57,43,0.2) !important; }
#contact-form .contact__agree .wpcf7-form-control-wrap { display: inline; width: auto; }
#contact-form .contact__agree input[type="checkbox"] { width: 18px !important; height: 18px !important; accent-color: #e08830; cursor: pointer; flex-shrink: 0; padding: 0 !important; }

/* ≤1024px */
@media screen and (max-width: 1024px) {
#contact-lead { padding: 40px 0 60px; }
#contact-lead .contact__method-item:first-child { padding-right: 40px; }
#contact-lead .contact__method-item:last-child { padding-left: 40px; }
#contact-form { padding: 60px 0; }
}

/* SP ≤767px */
@media screen and (max-width: 767px) {
#contact-lead { padding: 36px 0 50px; }
#contact-lead .contact__lead-text { font-size: 14px; margin-bottom: 44px; }
#contact-lead .contact__methods { flex-direction: column; }
#contact-lead .contact__method-item { padding-top: 28px; border-top-width: 2px; }
#contact-lead .contact__method-item:first-child { padding-right: 0; border-right: none; padding-bottom: 36px; }
#contact-lead .contact__method-item:last-child { padding-left: 0; }
#contact-form { padding: 50px 0; }
#contact-form .contact__form-row { flex-direction: column; gap: 10px; }
#contact-form .contact__form-label { flex: none; padding-top: 0; }
#contact-form .contact__form-field { width: 100%; }
#contact-form .contact__submit-btn { width: 100%; justify-content: center; padding: 17px 40px; font-size: 15px; }
}

/* ========================================
   採用情報（recruit.html）
======================================== */

/* イントロ */
#recruit-intro { background: #fff; padding: 50px 0 90px; }
#recruit-intro .recruit-intro__body { display: grid; grid-template-columns: 5fr 6fr; gap: 50px; align-items: center; margin-top: 48px; }
#recruit-intro .recruit-intro__title { font-family: 'Zen Old Mincho', serif; font-size: clamp(22px, 2.5vw, 30px); font-weight: 100; color: #877266; letter-spacing: 2.5px; line-height: 2; }
#recruit-intro .recruit-intro__img { margin: 32px 0 0; width: 85%; aspect-ratio: 40 / 21; overflow: hidden; border-radius: 4px; background: #e4e0d8; }
#recruit-intro .recruit-intro__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
#recruit-intro .recruit-intro__text p { font-size: 15px; color: #555; line-height: 2.2; letter-spacing: 0.5px; margin-bottom: 20px; }
#recruit-intro .recruit-intro__text p:last-child { margin-bottom: 0; }

/* 魅力セクション */
#recruit-appeal { background: #f7f4ed; padding: 90px 0; box-shadow: inset 0 10px 28px rgba(90,62,40,0.04); }
#recruit-appeal .sec-title__en { color: #5bb35a; }
#recruit-appeal .recruit-appeal__list { display: flex; flex-direction: column; gap: 0; margin-top: 80px; }
#recruit-appeal .recruit-appeal__item { display: grid; grid-template-columns: 3fr 7fr; gap: 72px; align-items: center; padding: 72px 0; }
#recruit-appeal .recruit-appeal__item:first-child { padding-top: 0; }
#recruit-appeal .recruit-appeal__item:last-child { padding-bottom: 0; }
#recruit-appeal .recruit-appeal__img { overflow: hidden; position: relative; aspect-ratio: 1.414 / 1; }
#recruit-appeal .recruit-appeal__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
#recruit-appeal .recruit-appeal__item:hover .recruit-appeal__img img { transform: scale(1.04); }
#recruit-appeal .recruit-appeal__num { font-size: 10px; font-weight: 700; color: #5bb35a; letter-spacing: 5px; margin-bottom: 20px; display: inline-flex; align-items: center; gap: 12px; }
#recruit-appeal .recruit-appeal__num::before { content: ""; display: block; width: 28px; height: 1.5px; background: #5bb35a; flex-shrink: 0; }
#recruit-appeal .recruit-appeal__title { font-size: 24px; font-weight: 700; color: #3a2e24; letter-spacing: 1px; margin-bottom: 24px; line-height: 1.9; }
#recruit-appeal .recruit-appeal__content p { font-size: 15px; color: #666; line-height: 2.3; letter-spacing: 0.3px; }

/* 1日の流れ */
#recruit-day { background: #fff; padding: 90px 0; box-shadow: inset 0 10px 28px rgba(90,62,40,0.04); }
#recruit-day .sec-title { text-align: center; }
#recruit-day .sec-title__en { color: #e08830; }
#recruit-day .recruit-day__timeline { max-width: 900px; margin: 0 auto; position: relative; }
#recruit-day .recruit-day__timeline::before { content: ""; position: absolute; left: 147px; top: 0; bottom: 0; width: 2px; background: linear-gradient(to bottom, transparent, rgba(224,136,48,0.3) 5%, rgba(224,136,48,0.3) 95%, transparent); }
#recruit-day .recruit-day__row { display: flex; align-items: flex-start; position: relative; }
#recruit-day .recruit-day__icon { position: absolute; left: 130px; top: 27px; width: 36px; height: 36px; border-radius: 50%; background: #e08830; display: flex; align-items: center; justify-content: center; z-index: 1; box-shadow: 0 0 0 5px rgba(224,136,48,0.12); }
#recruit-day .recruit-day__icon svg { width: 17px; height: 17px; stroke: #fff; }
#recruit-day .recruit-day__row--break .recruit-day__icon { background: #c5bab3; box-shadow: 0 0 0 5px rgba(197,186,179,0.12); }
#recruit-day .recruit-day__row--end .recruit-day__icon { background: #877266; box-shadow: 0 0 0 5px rgba(135,114,102,0.12); }
#recruit-day .recruit-day__time { flex: 0 0 120px; padding: 28px 0; text-align: right; font-size: 20px; font-weight: 900; color: #e08830; letter-spacing: 0.5px; }
#recruit-day .recruit-day__row--break .recruit-day__time { color: #c5bab3; }
#recruit-day .recruit-day__row--end .recruit-day__time { color: #877266; }
#recruit-day .recruit-day__detail { flex: 1; padding: 28px 0 28px 58px; }
#recruit-day .recruit-day__heading { font-size: 16px; font-weight: 700; color: #333; letter-spacing: 0.8px; margin-bottom: 8px; line-height: 1.6; }
#recruit-day .recruit-day__row--break .recruit-day__heading { color: #b0a8a0; font-weight: 500; }
#recruit-day .recruit-day__detail p { font-size: 15px; color: #555; line-height: 1.9; letter-spacing: 0.3px; }
#recruit-day .recruit-day__row--break .recruit-day__detail p { color: #c5bab3; }

/* 福利厚生 */
#recruit-benefit { background: #f7f4ed; padding: 90px 0; box-shadow: inset 0 10px 28px rgba(90,62,40,0.04); }
#recruit-benefit .sec-inner { max-width: 900px; }
#recruit-benefit .sec-title__en { color: #5bb35a; }
#recruit-benefit .recruit-benefit__lead { font-size: 16px; color: #555; line-height: 2; letter-spacing: 0.5px; margin-bottom: 20px; font-weight: 500; }
#recruit-benefit .recruit-benefit__list { list-style: none; max-width: 560px; margin-bottom: 20px; }
#recruit-benefit .recruit-benefit__item { padding: 10px 0; font-size: 15px; color: #333; letter-spacing: 0.5px; line-height: 1.8; font-weight: 500; }
#recruit-benefit .recruit-benefit__item::before { content: "●"; font-size: 8px; color: #5bb35a; margin-right: 10px; vertical-align: 1px; }

/* 職場見学 */
#recruit-tour { background: #fff; padding: 90px 0; }
#recruit-tour .sec-inner { max-width: 900px; }
#recruit-tour .sec-title__en { color: #e08830; }
#recruit-tour .recruit-tour__body p { font-size: 16px; color: #555; line-height: 2.2; letter-spacing: 0.5px; }
#recruit-tour .recruit-tour__body p:last-of-type { margin-bottom: 0; }
#recruit-tour .recruit-tour__cta { margin-top: 52px; text-align: center; }
#recruit-tour .recruit-tour__btn { display: inline-flex; align-items: center; gap: 15px; padding: 9px 45px; border: 1px solid #999; border-radius: 50px; font-size: 14px; font-weight: 500; color: #333; background-color: #fff; position: relative; letter-spacing: 1px; overflow: hidden; z-index: 1; transition: color 0.4s ease, transform 0.4s cubic-bezier(0.33,1,0.68,1), box-shadow 0.4s ease; }
#recruit-tour .recruit-tour__btn::after { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: #333; border-radius: 50px; z-index: -1; transition: left 0.4s ease; }
#recruit-tour .recruit-tour__btn:hover::after { left: 0; }
#recruit-tour .recruit-tour__btn:hover { opacity: 1; color: #fff; border-color: #333; transform: translateY(-3px); box-shadow: 0 8px 24px rgba(60,40,20,0.16); }
#recruit-tour .recruit-tour__btn .arrow { position: absolute; right: 15px; width: 14px; height: 14px; display: flex; align-items: center; justify-content: center; transition: transform 0.5s cubic-bezier(0.34,1.56,0.64,1); }
#recruit-tour .recruit-tour__btn .arrow::before { content: ""; width: 7px; height: 7px; border-top: 1.5px solid #777; border-right: 1.5px solid #777; transform: rotate(45deg); transition: border-color 0.4s ease; }
#recruit-tour .recruit-tour__btn:hover .arrow { transform: translateX(5px); }
#recruit-tour .recruit-tour__btn:hover .arrow::before { border-color: #fff; }

/* 募集要項 */
#recruit-requirements { background: #f7f4ed; padding: 90px 0; }
#recruit-requirements .sec-title { text-align: center; }
#recruit-requirements .sec-title__en { color: #5bb35a; }
#recruit-requirements .requirements__table { max-width: 900px; margin: 0 auto; }
#recruit-requirements .requirements__row { display: flex; border-bottom: 1px solid rgba(90,62,40,0.1); }
#recruit-requirements .requirements__row:last-child { border-bottom: none; }
#recruit-requirements .requirements__label { flex: 0 0 172px; padding: 20px 0; font-size: 13px; font-weight: 600; color: #999; letter-spacing: 0.8px; line-height: 1.8; }
#recruit-requirements .requirements__value { flex: 1; padding: 20px 0 20px 16px; font-size: 15px; color: #333; letter-spacing: 0.5px; line-height: 1.8; }
#recruit-requirements .requirements__value small { font-size: 12px; color: #bbb; display: block; }
#recruit-requirements .requirements__value a { color: #5bb35a; text-decoration: none; }
#recruit-requirements .requirements__value a:hover { text-decoration: underline; }

/* ≤1024px */
@media screen and (max-width: 1024px) {
#recruit-intro { padding: 40px 0 60px; }
#recruit-intro .recruit-intro__body { grid-template-columns: 1fr; gap: 40px; }
#recruit-intro .recruit-intro__img { width: 100%; }
#recruit-appeal { padding: 60px 0; }
#recruit-appeal .recruit-appeal__list { margin-top: 56px; }
#recruit-appeal .recruit-appeal__item { gap: 48px; padding: 56px 0; }
#recruit-appeal .recruit-appeal__title { font-size: 20px; }
#recruit-day { padding: 60px 0; }
#recruit-benefit { padding: 60px 0; }
#recruit-tour { padding: 60px 0; }
#recruit-requirements { padding: 60px 0; }
}

/* SP ≤767px */
@media screen and (max-width: 767px) {
#recruit-intro { padding: 36px 0 50px; }
#recruit-intro .recruit-intro__body { gap: 28px; }
#recruit-intro .recruit-intro__title { font-size: clamp(20px, 5.5vw, 24px); }
#recruit-intro .recruit-intro__img { margin-top: 22px; aspect-ratio: 16 / 7; }
#recruit-intro .recruit-intro__text p { font-size: 14px; line-height: 2.1; }
#recruit-appeal { padding: 50px 0; }
#recruit-appeal .recruit-appeal__list { margin-top: 36px; }
#recruit-appeal .recruit-appeal__item { grid-template-columns: 1fr; gap: 24px; padding: 44px 0; }
#recruit-appeal .recruit-appeal__item:first-child { padding-top: 0; }
#recruit-appeal .recruit-appeal__img { aspect-ratio: 1.414 / 1; }
#recruit-appeal .recruit-appeal__title { font-size: 20px; line-height: 1.7; }
#recruit-appeal .recruit-appeal__num { margin-bottom: 14px; }
#recruit-day { padding: 50px 0; }
#recruit-day .recruit-day__timeline::before { left: 14px; }
#recruit-day .recruit-day__row { flex-direction: column; padding-left: 48px; }
#recruit-day .recruit-day__icon { left: 0px; top: 10px; width: 30px; height: 30px; }
#recruit-day .recruit-day__icon svg { width: 14px; height: 14px; }
#recruit-day .recruit-day__time { flex: none; padding: 10px 0 0; text-align: left; font-size: 16px; }
#recruit-day .recruit-day__detail { padding: 4px 0 18px 0; }
#recruit-day .recruit-day__heading { font-size: 15px; }
#recruit-day .recruit-day__detail p { font-size: 14px; }
#recruit-benefit { padding: 50px 0; }
#recruit-benefit .recruit-benefit__lead { font-size: 15px; margin-bottom: 28px; }
#recruit-benefit .recruit-benefit__item { font-size: 14px; }
#recruit-tour { padding: 50px 0; }
#recruit-tour .recruit-tour__body p { font-size: 14px; line-height: 2.1; }
#recruit-tour .recruit-tour__cta { margin-top: 36px; }
#recruit-tour .recruit-tour__btn { width: 100%; justify-content: center; padding: 12px 45px; }
#recruit-requirements { padding: 50px 0; }
#recruit-requirements .requirements__row { flex-direction: column; }
#recruit-requirements .requirements__label { flex: none; padding: 18px 0 0; }
#recruit-requirements .requirements__value { padding: 8px 0 18px 0; }
}

/* ========================================
   ブログ
======================================== */
#blog { background: #f7f4ed; padding: 50px 0 90px; }
#blog .sec-inner { max-width: 900px; }
#blog .blog__list { display: flex; flex-direction: column; gap: 0; }
#blog .blog__item { padding: 36px 0; border-bottom: 1px solid rgba(90,62,40,0.10); }
#blog .blog__item:first-child { padding-top: 0; }
#blog .blog__item:last-child { border-bottom: none; }
#blog .blog__meta { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
#blog .blog__date { font-size: 14px; color: #999; letter-spacing: 0.5px; }
#blog .blog__category { font-size: 12px; font-weight: 600; color: #fff; background: #5bb35a; border-radius: 30px; padding: 2px 12px; letter-spacing: 0.5px; }
#blog .blog__title { font-size: 18px; font-weight: 700; color: #333; letter-spacing: 1px; line-height: 1.6; margin-bottom: 10px; }
#blog .blog__excerpt { font-size: 15px; color: #555; line-height: 2; letter-spacing: 0.5px; }

/* ≤1024px */
@media screen and (max-width: 1024px) {
#blog { padding: 40px 0 60px; }
#blog .blog__title { font-size: 17px; }
}

/* SP ≤767px */
@media screen and (max-width: 767px) {
#blog { padding: 30px 0 50px; }
#blog .blog__item { padding: 28px 0; }
#blog .blog__title { font-size: 16px; }
#blog .blog__excerpt { font-size: 14px; line-height: 2.1; }
}

/* ========================================
   プライバシーポリシー
======================================== */
#privacy { background: #f7f4ed; padding: 90px 0; }
#privacy .sec-inner { max-width: 900px; }
#privacy .privacy__intro { font-size: 15px; color: #555; line-height: 2.1; letter-spacing: 0.3px; margin-bottom: 64px; padding-bottom: 48px; border-bottom: 1px solid rgba(90,62,40,0.12); }
#privacy .privacy__section { margin-bottom: 52px; }
#privacy .privacy__heading { font-size: 16px; font-weight: 700; color: #3a2e24; letter-spacing: 0.8px; margin-bottom: 16px; padding-left: 14px; border-left: 3px solid #e08830; line-height: 1.6; }
#privacy .privacy__text { font-size: 14px; color: #555; line-height: 2.1; letter-spacing: 0.3px; }
#privacy .privacy__text + .privacy__text { margin-top: 12px; }
#privacy .privacy__list { list-style: none; padding: 0; margin: 8px 0 0; }
#privacy .privacy__list li { font-size: 14px; color: #555; line-height: 2.1; letter-spacing: 0.3px; padding-left: 1.2em; position: relative; }
#privacy .privacy__list li::before { content: "・"; position: absolute; left: 0; color: #c5bab3; }
#privacy .privacy__contact-box { background: #fff; border-radius: 4px; padding: 28px 32px; margin-top: 20px; }
#privacy .privacy__text--mt { margin-top: 16px; }
#privacy .privacy__contact-table { width: 100%; border-collapse: collapse; }
#privacy .privacy__contact-table th { font-size: 12px; font-weight: 700; color: #877266; letter-spacing: 1px; padding: 8px 20px 8px 0; vertical-align: top; white-space: nowrap; width: 6em; text-align: left; }
#privacy .privacy__contact-table td { font-size: 14px; color: #444; line-height: 1.9; padding: 8px 0; }
#privacy .privacy__date { font-size: 12px; color: #bbb; letter-spacing: 0.5px; text-align: right; margin-top: 60px; padding-top: 28px; border-top: 1px solid rgba(90,62,40,0.1); }
@media screen and (max-width: 767px) {
#privacy { padding: 50px 0; }
#privacy .privacy__intro { margin-bottom: 44px; padding-bottom: 36px; }
#privacy .privacy__section { margin-bottom: 40px; }
#privacy .privacy__contact-box { padding: 20px; }
#privacy .privacy__contact-table tr { display: flex; flex-direction: column; margin-bottom: 14px; }
#privacy .privacy__contact-table tr:last-child { margin-bottom: 0; }
#privacy .privacy__contact-table th { padding: 0 0 4px; width: auto; }
#privacy .privacy__contact-table td { padding: 0; }
}

/* ========================================
   ブログ記事詳細
======================================== */
#blog .blog__content { font-size: 15px; line-height: 2; color: #444; margin-top: 28px; padding-top: 28px; border-top: 1px solid rgba(90,62,40,0.1); }
#blog .blog__content p { margin-bottom: 20px; }
#blog .blog__content a { color: #e08830; text-decoration: underline; font-weight: 500; transition: opacity 0.3s ease; }
#blog .blog__content a:hover { opacity: 0.7; }
#blog .blog__back { margin-top: 64px; text-align: center; }
#blog .blog__back a { display: inline-flex; align-items: center; gap: 15px; padding: 9px 45px; border: 1px solid #999; border-radius: 50px; font-size: 14px; font-weight: 500; color: #333; background-color: #fff; position: relative; letter-spacing: 1px; overflow: hidden; z-index: 1; transition: color 0.4s ease, transform 0.4s cubic-bezier(0.33,1,0.68,1), box-shadow 0.4s ease; }
#blog .blog__back a::after { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: #333; border-radius: 50px; z-index: -1; transition: left 0.4s ease; }
#blog .blog__back a:hover::after { left: 0; }
#blog .blog__back a:hover { color: #fff; border-color: #333; transform: translateY(-3px); box-shadow: 0 8px 24px rgba(60,40,20,0.16); }
#blog .blog__back a .arrow { position: absolute; right: 15px; width: 14px; height: 14px; display: flex; align-items: center; justify-content: center; transition: transform 0.5s cubic-bezier(0.34,1.56,0.64,1); }
#blog .blog__back a .arrow::before { content: ""; width: 7px; height: 7px; border-top: 1.5px solid #777; border-right: 1.5px solid #777; transform: rotate(45deg); transition: border-color 0.4s ease; }
#blog .blog__back a:hover .arrow { transform: translateX(5px); }
#blog .blog__back a:hover .arrow::before { border-color: #fff; }
@media screen and (max-width: 767px) {
#blog .blog__back { margin-top: 48px; }
#blog .blog__back a { padding: 9px 30px; font-size: 13px; }
}

/* ========================================
   送信完了（thanks）
======================================== */
#thanks { background: #f7f4ed; padding: 50px 0 90px; }
#thanks .thanks__body { text-align: center; padding-top: 20px; }
#thanks .thanks__icon { width: 64px; height: 64px; margin: 0 auto 28px; color: #5bb35a; }
#thanks .thanks__icon svg { width: 100%; height: 100%; display: block; }
#thanks .thanks__title { font-size: clamp(18px, 2.2vw, 24px); font-weight: 700; color: #3a2e24; letter-spacing: 1.5px; margin-bottom: 32px; line-height: 1.6; }
#thanks .thanks__text { font-size: 15px; color: #555; line-height: 2.2; letter-spacing: 0.5px; margin-bottom: 16px; }
#thanks .thanks__text:last-of-type { margin-bottom: 48px; }
#thanks .thanks__tel { color: #5bb35a; font-weight: 700; }
#thanks .thanks__btn { display: inline-flex; align-items: center; gap: 15px; padding: 14px 56px; border: 1px solid #999; border-radius: 50px; font-size: 15px; font-weight: 500; color: #333; background-color: #fff; position: relative; letter-spacing: 1px; overflow: hidden; z-index: 1; transition: color 0.4s ease, transform 0.4s cubic-bezier(0.33,1,0.68,1), box-shadow 0.4s ease; }
#thanks .thanks__btn::after { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: #333; border-radius: 50px; z-index: -1; transition: left 0.4s ease; }
#thanks .thanks__btn:hover::after { left: 0; }
#thanks .thanks__btn:hover { color: #fff; border-color: #333; opacity: 1; transform: translateY(-3px); box-shadow: 0 8px 24px rgba(60,40,20,0.16); }
#thanks .thanks__arrow { display: inline-block; width: 8px; height: 8px; border-top: 1.5px solid #777; border-right: 1.5px solid #777; transform: rotate(45deg); transition: border-color 0.4s ease, transform 0.5s cubic-bezier(0.34,1.56,0.64,1); }
#thanks .thanks__btn:hover .thanks__arrow { border-color: #fff; transform: translateX(5px) rotate(45deg); }
@media screen and (max-width: 1024px) {
#thanks { padding: 40px 0 60px; }
}
@media screen and (max-width: 767px) {
#thanks { padding: 36px 0 50px; }
#thanks .thanks__icon { width: 52px; height: 52px; margin-bottom: 24px; }
#thanks .thanks__text { font-size: 14px; }
#thanks .thanks__text:last-of-type { margin-bottom: 40px; }
#thanks .thanks__btn { padding: 14px 40px; font-size: 14px; }
#thanks .pc-only { display: none; }
}
