@charset "UTF-8";
/*
 * ======================================
 * 結ホールディングス（株式会社雅）— サイト固有CSS（site.css）
 * ======================================
 * 配色・フォントは scss/main.scss で @use "vars" with(...) により上書きし、
 * main.css にコンパイル済み（base=#7DB93B / sub=#5E8C20 / accent=#EF9A3D）。
 * 本ファイルは claude-design-output の固有レイアウト・余白・装飾を
 * yui- プレフィックスで再現する（共通コンポーネントで再現できない差分のみ）。
 *
 * --------------------------------------
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * --------------------------------------
 * 共通トークン/部品
 *   :root                 - デザイン固有カラートークン
 *   .yui-wrap(--1240/1080/960/820/720) - design準拠の中央幅ラッパー
 *   .yui-section(--cream/--paleg/--flush-top) - セクション上下余白 clamp(60,8vw,100)
 *   .yui-eyebrow / .yui-h2 / .yui-sec-head(--center) - 英日セクション見出し
 * ヘッダー/フッター/CTA
 *   .yui-header(__logo/__nav/__tel/__cta/__mobile/__burger/__menu) - 固定ヘッダー＋SPドロップダウン
 *   .yui-cta              - 写真背景のお問い合わせCTA帯（TEL白箱＋オレンジメールボタン）
 *   .yui-footer / .yui-pagetop - ダークフッター・ページトップ
 * ページ固有（各ページセクション末尾に追記）
 *   TOP     : .yui-hero / .yui-philo / .yui-group / .yui-news / .yui-recruit-bnr / .yui-member-link
 *   会社    : .yui-phero / .yui-svc / .yui-credo / .yui-action / .yui-overview
 *   recruit : .yui-rec-intro / .yui-perks / .yui-flow / .yui-entry
 *   member  : .yui-mhero / .yui-notice / .yui-library
 *
 * --------------------------------------
 * 共通SCSSに不足していたもの（5分類）
 * --------------------------------------
 * 装飾パターン不足：ヒーロー写真のグラデ2枚重ね、右下コーナー三角＋矢印、
 *   PHILOSOPHYのSVGライン描画、巨大ナンバーあしらい（行動理念）は共通に無く yui- で追加。
 * 構造不足：ロゴ2段（和文＋英字サブ）、写真＋暗幕のCTA帯レイアウトは固有実装。
 */

/* ======================================
 * デザイントークン
 * ====================================== */
:root {
  --yui-green:      #ACCE35;   /* メイン 黄緑 */
  --yui-green-dark: #6F9018;   /* 濃い黄緑（白背景の文字・電話等） */
  --yui-green-hi:   #C3DD6E;   /* 暗背景上のアクセント */
  --yui-green-lite: #DCEC9A;   /* 写真上の英字eyebrow */
  --yui-paleg:      #F3F8E0;   /* 淡い黄緑の背景 */
  --yui-paleg2:     #F5F9E4;
  --yui-orange:     #ffb665;   /* サブ オレンジ */
  --yui-orange-hv:  #F5A64D;   /* オレンジ hover */
  --yui-orange-dark:#B7742A;   /* 薄オレンジ上に乗せる濃色文字用 */
  --yui-cream:      #FAF7EE;   /* ほぼ白の中間背景 */
  --yui-dark:       #2E332A;   /* フッター等ダーク（ニュートラル） */
  --yui-dark2:      #3C4436;
  --yui-blue:       #1f3a5c;   /* フッター背景（青系） */
  --yui-text:       #2C312A;
  --yui-text-sub:   #5B615A;
  --yui-text-mute:  #8A9187;
  --yui-border:     #E6E5DC;
  --yui-border2:    #EAE7DB;
  --yui-body:       #ffffff;   /* ベース 白 */
  --yui-teal:       #2f7f9a;
}

/* ======================================
 * 幅ラッパー / セクション / 見出し
 * ====================================== */
.yui-wrap { max-width: 1160px; margin: 0 auto; padding-left: clamp(20px, 4vw, 32px); padding-right: clamp(20px, 4vw, 32px); }
.yui-wrap--1240 { max-width: 1240px; }
.yui-wrap--1080 { max-width: 1080px; }
.yui-wrap--960  { max-width: 960px; }
.yui-wrap--820  { max-width: 820px; }
.yui-wrap--720  { max-width: 720px; }

.yui-section { padding-top: clamp(60px, 8vw, 100px); padding-bottom: clamp(60px, 8vw, 100px); }
.yui-section--cream { background: var(--yui-cream); }
.yui-section--paleg { background: var(--yui-paleg); }
.yui-section--base { background: var(--yui-green); }
.yui-section--base .yui-eyebrow { color: #fff; }
.yui-section--base .yui-h2 { color: #fff; }
.yui-section--flush-top { padding-top: 0; }

.yui-eyebrow {
  display: block;
  font-family: "Jost", sans-serif;
  letter-spacing: .3em;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--yui-green);
  line-height: 1;
}
.yui-h2 {
  margin-top: 1rem;
  font-size: clamp(2.4rem, 3.4vw, 3.6rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .02em;
}
.yui-sec-head { margin-bottom: clamp(32px, 5vw, 52px); }
.yui-sec-head--center { text-align: center; }
.yui-sec-note { margin-top: 1rem; font-size: 1.45rem; color: var(--yui-text-sub); }

/* リード段落・補助テキスト（本文サブ色） */
.yui-lead { font-size: clamp(1.5rem, 1.7vw, 1.7rem); color: var(--yui-text-sub); line-height: 2.1; }

/* ======================================
 * ヘッダー
 * ====================================== */
.yui-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  background: rgba(255, 255, 255, .95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--yui-border);
  transition: box-shadow .3s ease;
}
.yui-header.is-scrolled { box-shadow: 0 4px 18px rgba(60, 70, 40, .08); }
.yui-header__inner {
  max-width: 1240px; margin: 0 auto; height: 82px;
  padding: 0 clamp(16px, 3vw, 32px);
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.yui-header__logo { display: flex; flex-direction: column; align-items: center; text-align: center; line-height: 1.25; flex-shrink: 0; }
.yui-header__logo:hover { opacity: 1; }
.yui-header__logo-ja { font-size: 2rem; font-weight: 700; letter-spacing: .08em; color: var(--yui-text); }
.yui-header__logo-en { font-family: "Open Sans", sans-serif; font-style: italic; font-size: 1.5rem; letter-spacing: .3em; color: var(--yui-green); font-weight: 500; margin-top: 2px; text-indent: .3em; }

.yui-header__desktop { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 34px); }
.yui-header__nav { display: flex; gap: clamp(14px, 1.8vw, 26px); align-items: center; }
.yui-header__nav-item {
  position: relative; font-size: 1.5rem; font-weight: 500; padding: 8px 2px;
  white-space: nowrap; color: var(--yui-text);
}
.yui-header__nav-item:hover { opacity: 1; color: var(--yui-green-dark); }
.yui-header__nav-item.is-current::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 3px; background: var(--yui-green);
}
.yui-header__actions { display: flex; align-items: center; gap: 14px; }
.yui-header__tel { display: flex; align-items: center; gap: 8px; flex-shrink: 0; white-space: nowrap; }
.yui-header__tel:hover { opacity: 1; }
.yui-header__tel-icon { width: auto; height: auto; background: none; color: var(--yui-green-dark); display: flex; align-items: center; justify-content: center; }
.yui-header__tel-icon i { font-size: 24px; }
.yui-header__tel-body { display: flex; flex-direction: column; line-height: 1.1; }
.yui-header__tel-label { font-family: "Jost", sans-serif; font-size: .95rem; letter-spacing: .14em; color: var(--yui-text-mute); }
.yui-header__tel-num { font-size: 1.9rem; font-weight: 700; font-family: "Jost", sans-serif; letter-spacing: .01em; color: var(--yui-text); }
.yui-header__cta {
  display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; flex-shrink: 0;
  background: var(--yui-orange); color: #fff; font-weight: 700; font-size: 1.4rem; padding: 12px 20px;
  box-shadow: 0 4px 12px rgba(239, 154, 61, .32); transition: background .2s ease;
}
.yui-header__cta:hover { background: var(--yui-orange-hv); opacity: 1; }
.yui-header__cta i { font-size: 15px; }

.yui-header__mobile { display: none; align-items: center; gap: 12px; }
.yui-header__mobile-tel { width: 44px; height: 44px; background: var(--yui-paleg); color: var(--yui-green-dark); display: flex; align-items: center; justify-content: center; }
.yui-header__mobile-tel i { font-size: 19px; }
.yui-header__mobile-tel:hover { opacity: 1; }
.yui-header__burger { width: 44px; height: 44px; border: none; background: var(--yui-green); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.yui-header__burger i { font-size: 22px; line-height: 1; }
.yui-header__burger .fa-xmark { display: none; }
.yui-header__burger.is-active .fa-bars { display: none; }
.yui-header__burger.is-active .fa-xmark { display: inline-block; }

.yui-header__menu { display: none; border-top: 1px solid var(--yui-border); background: #fff; padding: 14px clamp(16px, 4vw, 32px) 24px; }
.yui-header__menu.is-open { display: block; }
.yui-header__menu-nav { display: flex; flex-direction: column; }
.yui-header__menu-item { display: flex; align-items: center; justify-content: space-between; padding: 15px 4px; font-size: 1.6rem; font-weight: 500; border-bottom: 1px solid #EFEEE6; color: var(--yui-text); }
.yui-header__menu-item:hover { opacity: 1; }
.yui-header__menu-en { color: var(--yui-green); font-family: "Jost", sans-serif; font-size: 1.1rem; letter-spacing: .1em; }
.yui-header__menu-cta { margin-top: 18px; display: flex; align-items: center; justify-content: center; gap: 8px; background: var(--yui-orange); color: #fff; font-weight: 700; font-size: 1.5rem; padding: 15px; }
.yui-header__menu-cta:hover { opacity: 1; background: var(--yui-orange-hv); }
.yui-header__menu-tel { margin-top: 14px; text-align: center; font-family: "Jost", sans-serif; font-size: 2rem; font-weight: 600; color: var(--yui-text); }
.yui-header__menu-hours { text-align: center; font-size: 1.2rem; color: var(--yui-text-mute); }

@media (max-width: 1023px) {
  .yui-header__desktop { display: none; }
  .yui-header__mobile { display: flex; }
}

/* ヘッダー高さ分のスペーサー（各ページ <body> 直下ではなく main の余白で確保） */
.yui-header-spacer { height: 83px; }

/* ======================================
 * お問い合わせCTA帯
 * ====================================== */
.yui-cta { position: relative; background-image: url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28323/contact-bg.jpg'); background-size: cover; background-position: center; overflow: hidden; }
.yui-cta__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 20, 22, .3), rgba(10, 14, 16, .6)); }
.yui-cta__inner { position: relative; max-width: 1080px; margin: 0 auto; padding: clamp(48px, 7vw, 80px) clamp(20px, 4vw, 32px); text-align: center; color: #fff; }
.yui-cta__en { font-family: "Jost", sans-serif; letter-spacing: .32em; font-size: 1.3rem; font-weight: 600; color: var(--yui-green-hi); }
.yui-cta__title { font-size: clamp(2.2rem, 4vw, 4rem); font-weight: 700; margin-top: 12px; letter-spacing: .02em; }
.yui-cta__desc { margin-top: 16px; font-size: clamp(1.5rem, 1.6vw, 1.7rem); opacity: .94; line-height: 1.9; }
.yui-cta__actions { margin-top: 36px; display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; align-items: stretch; }
.yui-cta__tel-box { display: flex; flex-direction: column; justify-content: center; align-items: center; background: #fff; padding: 22px 34px; min-width: 260px; text-align: center; }
.yui-cta__tel { display: flex; align-items: center; justify-content: center; gap: 12px; font-family: "Jost", sans-serif; font-size: 3.4rem; font-weight: 600; color: var(--yui-green-dark); line-height: 1.2; }
.yui-cta__tel:hover { opacity: .85; }
.yui-cta__tel i { font-size: 30px; flex-shrink: 0; }
.yui-cta__tel-note { font-size: 1.3rem; color: #616860; margin-top: 8px; }
.yui-cta__mail { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; background: var(--yui-orange); color: #fff; padding: 22px 40px; min-width: 220px; box-shadow: 0 8px 20px rgba(0, 0, 0, .12); transition: background .2s ease; }
.yui-cta__mail:hover { background: var(--yui-orange-hv); opacity: 1; }
.yui-cta__mail-main { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 1.8rem; font-weight: 700; }
.yui-cta__mail-main i { font-size: 20px; }
.yui-cta__mail-sub { font-size: 1.2rem; opacity: .9; margin-top: 4px; font-family: "Jost", sans-serif; letter-spacing: .08em; }

/* ======================================
 * フッター
 * ====================================== */
.yui-footer { background: var(--yui-blue); color: #D8DCD2; padding: clamp(44px, 5vw, 64px) clamp(20px, 4vw, 32px) 0; }
.yui-footer__inner { max-width: 1160px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 36px; }
.yui-footer__company { min-width: 240px; }
.yui-footer__logo { display: inline-flex; flex-direction: column; align-items: center; text-align: center; line-height: 1.25; }
.yui-footer__logo-ja { font-size: 2rem; font-weight: 700; letter-spacing: .08em; color: #fff; }
.yui-footer__logo-en { font-family: "Open Sans", sans-serif; font-style: italic; font-size: 1.5rem; letter-spacing: .3em; color: var(--yui-green-hi); margin-top: 2px; text-indent: .3em; }
.yui-footer__addr { margin-top: 18px; font-size: 1.35rem; line-height: 1.9; color: #AAB6C6; }
.yui-footer__logos { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 12px; }
.yui-footer__logo-link { display: inline-flex; align-items: center; justify-content: center; background: #fff; border-radius: 6px; padding: 8px 14px; }
.yui-footer__logo-link:hover { opacity: .85; }
.yui-footer__logo-link img { height: 34px; width: auto; display: block; }
.yui-footer__col-label { font-family: "Jost", sans-serif; font-size: 1.1rem; letter-spacing: .2em; color: var(--yui-green-hi); font-weight: 600; }
.yui-footer__sitemap { margin-top: 16px; display: flex; flex-direction: column; gap: 12px; font-size: 1.4rem; }
.yui-footer__link { color: #D8DCD2; }
.yui-footer__link:hover { color: #fff; opacity: 1; }
.yui-footer__tel { display: block; font-family: "Jost", sans-serif; font-size: 2.6rem; font-weight: 600; color: #fff; margin-top: 14px; }
.yui-footer__tel:hover { opacity: .85; }
.yui-footer__hours { font-size: 1.25rem; color: #AEB4A7; margin-top: 4px; }
.yui-footer__map { width: 100%; height: 150px; border: 0; margin-top: 14px; display: block; border-radius: 2px; }
.yui-footer__cta { margin-top: 18px; display: inline-flex; align-items: center; gap: 8px; background: var(--yui-orange); color: #fff; font-weight: 700; font-size: 1.4rem; padding: 12px 22px; transition: background .2s ease; }
.yui-footer__cta:hover { background: var(--yui-orange-hv); opacity: 1; }
.yui-footer__bottom { max-width: 1160px; margin: 44px auto 0; border-top: 1px solid rgba(255,255,255,.15); padding: 22px 0; display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; align-items: center; text-align: center; }
.yui-footer__group { font-size: 1.2rem; color: #8592A6; }
.yui-footer__copy { font-family: "Jost", sans-serif; font-size: 1.2rem; letter-spacing: .06em; color: #8592A6; }

/* ページトップ */
.yui-pagetop { position: fixed; right: 20px; bottom: 20px; z-index: 150; width: 46px; height: 46px; background: var(--yui-green); color: #fff; border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .3s ease, transform .3s ease, background .2s ease; }
.yui-pagetop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.yui-pagetop:hover { background: var(--yui-green-dark); }
.yui-pagetop i { font-size: 20px; }

/* ======================================
 * TOP（index.php）
 * ====================================== */
/* HERO */
.yui-hero { position: relative; overflow: hidden; background: #2e8ca1; }
/* メインビュー：高さ・画像表示・キャッチはCMS側CSS（#mian_slider / --swiper-wrapper-height）に委ねる。
   こちらは器だけ用意し、CMS内部要素（.slider_wrapper / .swiper* / img / .main_catch 等）は上書きしない。
   高さを変えたい場合は下記のように CMSの変数を上書きする（例：clamp）だけにする。 */
.yui-hero__slider { position: relative; z-index: 0; width: 100%; }
#slideshow #cms-slider-1-1-area { width: 100%; }
/* 高さはCMS側の設定（--swiper-wrapper-height：100vh 等）に委ねる。ここでは上書きしない */
.yui-hero__shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(100deg, rgba(28,44,18,.55) 0%, rgba(28,44,18,.22) 42%, transparent 70%); }
.yui-hero__shade-btm { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; height: 40%; background: linear-gradient(180deg, transparent, rgba(20,32,14,.4)); }
.yui-hero__inner { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; }
.yui-hero__content { max-width: 1240px; width: 100%; margin: 0 auto; padding: 0 clamp(20px, 5vw, 56px); text-align: center; }
.yui-hero__en { display: inline-block; font-family: "Jost", sans-serif; letter-spacing: .34em; font-size: clamp(1.1rem, 1.4vw, 1.4rem); font-weight: 600; color: var(--yui-green-lite); text-shadow: 0 1px 6px rgba(0,0,0,.3); }
.yui-hero__title { margin-top: 18px; color: #fff; font-weight: 700; font-size: clamp(3.4rem, 6.4vw, 7.4rem); line-height: 1.22; letter-spacing: .02em; text-shadow: 0 3px 20px rgba(0,0,0,.32); }
.yui-hero__sub { margin-top: 22px; color: #F3F7EC; font-size: clamp(1.5rem, 1.9vw, 2rem); font-weight: 600; line-height: 2; max-width: 540px; margin-left: auto; margin-right: auto; text-shadow: 0 1px 10px rgba(0,0,0,.32); }
/* メインビュー：文字が流れるように現れる（行ごとに時差） */
@keyframes yuiHeroIn { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  .yui-hero__en { animation: yuiHeroIn .9s cubic-bezier(.2, .7, .2, 1) both; }
  .yui-hero__title { animation: yuiHeroIn 1s cubic-bezier(.2, .7, .2, 1) .2s both; }
  .yui-hero__sub { animation: yuiHeroIn 1s cubic-bezier(.2, .7, .2, 1) .4s both; }
}
.yui-hero__dots { position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%); display: flex; gap: 12px; z-index: 5; }
.yui-hero__dot { width: 10px; height: 6px; border: none; cursor: pointer; background: rgba(255,255,255,.6); transition: all .4s ease; padding: 0; }
.yui-hero__dot.is-active { width: 30px; background: var(--yui-orange); }

/* PHILOSOPHY */
.yui-philo { position: relative; overflow: hidden; }
.yui-philo__deco { position: absolute; inset: 0; pointer-events: none; opacity: .16; }
.yui-philo__deco svg { width: 100%; height: 100%; display: block; }
.yui-philo [data-yui-line] { stroke-dasharray: 1; stroke-dashoffset: 1; }
.yui-philo [data-yui-line].is-drawn { animation: yuiDrawLine 2.8s cubic-bezier(.65, 0, .35, 1) forwards; }
@keyframes yuiDrawLine { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.yui-philo__inner { position: relative; max-width: 1080px; margin: 0 auto; padding: clamp(64px, 9vw, 110px) clamp(20px, 4vw, 32px); text-align: center; }
.yui-philo__statement { margin-top: 22px; font-size: clamp(2.2rem, 3.4vw, 3.6rem); font-weight: 700; line-height: 1.7; letter-spacing: .02em; }
.yui-philo__text { margin-top: 26px; font-size: clamp(1.5rem, 1.7vw, 1.7rem); color: var(--yui-text-sub); line-height: 2.1; max-width: 920px; margin-left: auto; margin-right: auto; }

/* GROUP COMPANIES */
.yui-group { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(20px, 3vw, 32px); }
.yui-group__card { position: relative; display: block; background: #fff; overflow: hidden; box-shadow: 0 10px 30px rgba(60,70,40,.07); border: 1px solid var(--yui-border2); transition: transform .38s ease, box-shadow .38s ease; }
.yui-group__card:hover { box-shadow: 0 18px 44px rgba(60,70,40,.16); transform: scale(1.025); opacity: 1; }
.yui-group__thumb { position: relative; height: 260px; background-size: cover; background-position: center 72%; }
.yui-group__thumb::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(30,45,15,.55)); }
.yui-group__card--hojo .yui-group__thumb::before { background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(15,35,45,.55)); }
.yui-group__thumb-en { position: absolute; bottom: 16px; left: 20px; z-index: 1; color: #fff; font-family: "Jost", sans-serif; font-weight: 600; letter-spacing: .14em; font-size: 1.3rem; opacity: .95; text-shadow: 0 1px 6px rgba(0,0,0,.4); }
.yui-group__thumb-logo { position: absolute; bottom: 16px; right: 20px; z-index: 1; box-sizing: content-box; height: 60px; width: auto; max-width: 150px; object-fit: contain; background: #fff; padding: 6px 9px; border-radius: 6px; } /* 依頼681320③：フィルターなし（本来の色）＋白下地でサムネ背景と分離 */
.yui-group__body { padding: 26px 28px 30px; }
.yui-group__head { display: flex; align-items: center; gap: 16px; }
.yui-group__name { font-size: 2.2rem; font-weight: 700; line-height: 1.2; color: var(--yui-text); }
.yui-group__tag { font-size: 1.3rem; color: var(--yui-green); font-weight: 600; margin-top: 3px; }
.yui-group__card--hojo .yui-group__tag { color: var(--yui-orange); }
.yui-group__desc { display: none; margin-top: 16px; font-size: 1.45rem; color: var(--yui-text-sub); line-height: 1.9; }
.yui-group__corner { position: absolute; bottom: 0; right: 0; width: 64px; height: 64px; background: linear-gradient(135deg, transparent 50%, var(--yui-green) 50%); }
.yui-group__card--hojo .yui-group__corner { background: linear-gradient(135deg, transparent 50%, var(--yui-orange) 50%); }
.yui-group__arrow { position: absolute; bottom: 11px; right: 11px; z-index: 1; color: #fff; display: block; }
.yui-group__arrow i { font-size: 15px; }

/* NEWS */
.yui-news { list-style: none; border-top: 1px solid var(--yui-border); max-width: 840px; margin: 0 auto; max-height: 207px; overflow-y: auto; }
.yui-news__item { border-bottom: 1px solid var(--yui-border); display: flex; flex-wrap: wrap; align-items: center; gap: 18px; padding: 20px 8px 20px 4px; }
.yui-news__date { font-family: "Jost", sans-serif; font-size: 1.25rem; font-weight: 700; letter-spacing: .06em; color: var(--yui-green-dark); background: var(--yui-paleg); padding: 6px 14px; min-width: 104px; text-align: center; }
.yui-news__text { flex: 1; min-width: 220px; font-size: 1.5rem; line-height: 1.7; }

/* RECRUIT BANNER */
.yui-recruit-sec { padding: 0 clamp(20px, 4vw, 32px) clamp(60px, 8vw, 96px); }
.yui-recruit-bnr { display: block; max-width: 1160px; margin: 0 auto; position: relative; overflow: hidden; background-size: cover; background-position: center 30%; transition: transform .3s ease, box-shadow .3s ease; }
.yui-recruit-bnr:hover { transform: translateY(-3px); box-shadow: 0 20px 44px rgba(95,143,46,.28); opacity: 1; }
.yui-recruit-bnr__overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(58,90,27,.92) 0%, rgba(75,120,40,.78) 38%, rgba(95,143,46,.28) 62%, rgba(95,143,46,.05) 100%); }
.yui-recruit-bnr__inner { position: relative; padding: clamp(40px, 6vw, 64px) clamp(28px, 5vw, 64px); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; color: #fff; }
.yui-recruit-bnr__en { font-family: "Jost", sans-serif; letter-spacing: .3em; font-size: 1.2rem; font-weight: 600; opacity: .9; }
.yui-recruit-bnr__title { margin-top: 12px; font-size: clamp(2.6rem, 4vw, 4.2rem); font-weight: 700; line-height: 1.35; }
.yui-recruit-bnr__text { margin-top: 14px; font-size: 1.5rem; opacity: .95; line-height: 1.9; }
.yui-recruit-bnr__btn { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: #3E5A1B; font-weight: 700; font-size: 1.6rem; padding: 17px 32px; flex-shrink: 0; }
.yui-recruit-bnr__btn i { font-size: 16px; }

/* MEMBER LINK */
.yui-member-sec { padding: 0 clamp(20px, 4vw, 32px) clamp(64px, 9vw, 110px); }
.yui-member-link { max-width: 1160px; margin: 0 auto; background: var(--yui-dark); padding: clamp(28px, 4vw, 40px) clamp(28px, 5vw, 48px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.yui-member-link__lead { display: flex; align-items: center; gap: 18px; }
.yui-member-link__icon { width: 52px; height: 52px; background: var(--yui-dark2); color: var(--yui-green-hi); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.yui-member-link__icon i { font-size: 24px; }
.yui-member-link__title { color: #fff; font-weight: 700; font-size: 1.8rem; }
.yui-member-link__sub { font-size: 1.3rem; color: #AEB4A7; letter-spacing: 0; }
.yui-member-link__btn { display: inline-flex; align-items: center; gap: 9px; background: var(--yui-green); color: #fff; font-weight: 700; font-size: 1.5rem; padding: 14px 26px; transition: background .2s ease; flex-shrink: 0; }
.yui-member-link__btn:hover { background: #6BA52C; opacity: 1; }

/* ======================================
 * 会社ページ共通（miyabi.php / hojo.php）
 * ====================================== */
/* PAGE HERO */
.yui-phero { position: relative; overflow: hidden; background-size: cover; background-position: center 90%; }
.yui-phero:not(.yui-phero--dark) { background-position: center 60%; } /* 依頼681320④：雅ヒーローは海・水平線が見えるよう上寄りに表示 */
.yui-phero__overlay { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(12,16,18,.55) 0%, rgba(14,18,20,.35) 44%, rgba(16,20,22,.08) 100%); }
.yui-phero--dark .yui-phero__overlay { background: linear-gradient(100deg, rgba(12,16,18,.7) 0%, rgba(14,18,20,.5) 44%, rgba(16,20,22,.15) 100%); }
.yui-phero__inner { position: relative; max-width: 1160px; margin: 0 auto; padding: clamp(48px, 8vw, 96px) clamp(20px, 4vw, 32px); color: #fff; }
.yui-phero__head { display: flex; align-items: center; gap: clamp(14px, 2vw, 22px); margin-bottom: 30px; }
/* 依頼681320②③：ヒーローロゴはフィルターなしでロゴ本来の色を表示。背景に溶けないよう白の下地（余白＋白背景）を敷く */
.yui-phero__logo { display: block; box-sizing: content-box; height: clamp(38px, 5.4vw, 60px); width: auto; flex-shrink: 0; background: #fff; padding: 8px 12px; border-radius: 6px; }
/* 依頼681320②：株式会社雅ページのヒーローロゴを拡大し、社名見出しと大きさを揃える */
.yui-phero:not(.yui-phero--dark) .yui-phero__logo { height: clamp(50px, 6.5vw, 65px); position: relative; top: 2px; } /* 依頼681320②：雅ロゴを微調整（2px下げ） */
.yui-phero__title { font-size: clamp(3rem, 5.4vw, 5.6rem); font-weight: 700; letter-spacing: .03em; line-height: 1; }
.yui-phero__text { margin-top: 16px; font-size: clamp(1.3rem, 1.9vw, 1.9rem); opacity: .96; line-height: 1.9; max-width: 620px; }

/* 事業内容 SERVICE カード */
.yui-svc { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: clamp(16px, 2.4vw, 24px); }
.yui-svc__item { background: #fff; border: 1px solid var(--yui-border2); overflow: hidden; box-shadow: 0 8px 24px rgba(60,70,40,.05); }
.yui-svc__img { aspect-ratio: 16 / 9; background-size: cover; background-position: center; border-bottom: 1px solid var(--yui-border2); }
.yui-svc__body { padding: 20px 23px 23px; }
.yui-svc__head { display: flex; align-items: center; gap: 14px; }
.yui-svc__no { font-family: "Jost", sans-serif; font-size: 1.5rem; font-weight: 600; color: #fff; background: var(--yui-green); width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.yui-svc__title { font-size: 1.9rem; font-weight: 700; }
.yui-svc__text { margin-top: 16px; font-size: 1.4rem; color: var(--yui-text-sub); line-height: 1.95; }
.yui-svc--hojo { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.yui-svc--hojo .yui-svc__item { border-color: #E4E8E9; box-shadow: 0 8px 24px rgba(40,60,70,.05); }
.yui-svc--hojo .yui-svc__img { border-bottom-color: #E4E8E9; }
.yui-svc--hojo .yui-svc__no { background: var(--yui-orange); }

/* 資格者一覧 LICENSE */
.yui-qual { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.yui-qual__item { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #fff; border: 1px solid var(--yui-border2); border-left: 4px solid var(--yui-green); padding: 18px 24px; }
.yui-qual__name { font-size: 1.6rem; font-weight: 600; line-height: 1.6; }
.yui-qual__count { flex-shrink: 0; display: flex; align-items: baseline; gap: 4px; font-size: 1.3rem; color: var(--yui-text-sub); }
.yui-qual__num { font-family: "Jost", sans-serif; font-size: 2.6rem; font-weight: 600; color: var(--yui-green-dark); line-height: 1; }

/* 社訓 CREDO */
.yui-credo { position: relative; overflow: hidden; background-size: cover; background-position: center 60%; padding: clamp(60px, 8vw, 100px) 0; }
.yui-credo__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,20,24,.7), rgba(12,18,22,.66)); }
.yui-credo__inner { position: relative; }
.yui-credo__head { text-align: center; margin-bottom: clamp(14px, 2vw, 20px); }
.yui-credo__title { color: #fff; }
.yui-credo__note { margin-top: 10px; font-size: 1.45rem; color: #E4E8DE; }
.yui-credo__grid { margin-top: 36px; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.yui-credo__card { background: #fff; padding: 32px 26px; text-align: center; box-shadow: 0 8px 22px rgba(60,70,40,.06); }
.yui-credo__icon { width: 56px; height: 56px; margin: 0 auto; border-radius: 50%; background: var(--yui-paleg); color: var(--yui-green-dark); display: flex; align-items: center; justify-content: center; }
.yui-credo__icon i { font-size: 25px; }
.yui-credo__text { margin-top: 18px; font-size: 1.6rem; font-weight: 500; line-height: 1.85; }

/* 行動理念 ACTION */
.yui-action { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.yui-action__item { position: relative; overflow: hidden; display: flex; align-items: center; gap: 20px; padding: 26px 26px 26px 24px; background: #fff; border: 1px solid var(--yui-border2); border-left: 4px solid var(--yui-green); }
.yui-action__num { position: absolute; right: -6px; bottom: -18px; font-family: "Jost", sans-serif; font-size: 8.2rem; font-weight: 600; color: var(--yui-paleg2); line-height: 1; pointer-events: none; }
.yui-action__text { position: relative; font-size: 1.7rem; font-weight: 600; line-height: 1.6; }

/* 会社概要 OVERVIEW */
.yui-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(24px, 4vw, 44px); align-items: stretch; }
.yui-overview__table { background: #fff; overflow: hidden; border: 1px solid var(--yui-border2); }
.yui-overview__table dl { margin: 0; }
.yui-overview__row { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 18px 24px; border-bottom: 1px solid #EFEEE6; }
.yui-overview__row dt { font-size: 1.35rem; color: var(--yui-text-mute); font-weight: 600; }
.yui-overview__row dd { font-size: 1.5rem; line-height: 1.7; }
.yui-overview__logo { height: 26px; width: 26px; object-fit: contain; flex-shrink: 0; }
.yui-overview__side { display: flex; flex-direction: column; }
.yui-overview__map { position: relative; flex: 1; min-height: 240px; overflow: hidden; background: linear-gradient(135deg, #DDE7CE, #EFF6E3); border: 1px solid #D5DEC4; display: flex; align-items: center; justify-content: center; }
.yui-overview__gmap { width: 100%; height: 100%; min-height: 240px; border: 0; display: block; }
.yui-overview__map-grid { position: absolute; inset: 0; background-image: linear-gradient(#CBD8B6 1px, transparent 1px), linear-gradient(90deg, #CBD8B6 1px, transparent 1px); background-size: 34px 34px; opacity: .5; }
.yui-overview__map-note { position: relative; text-align: center; color: var(--yui-green-dark); }
.yui-overview__map-note i { font-size: 34px; }
.yui-overview__map-note div { margin-top: 6px; font-size: 1.25rem; font-weight: 600; }
.yui-overview__office { font-size: 1.4rem; font-weight: 700; margin-top: 16px; }
.yui-overview__office-addr { font-size: 1.4rem; color: var(--yui-text-sub); line-height: 1.8; margin-top: 4px; }
/* hojo バリエーション */
.yui-overview-sec--hojo { background: var(--yui-cream); }
.yui-overview--hojo .yui-overview__table { border-color: #DCE6E9; }
.yui-overview--hojo .yui-overview__row { border-bottom-color: #EEF1F2; }
.yui-overview--hojo .yui-overview__row dd { display: block; }
.yui-overview--hojo .yui-overview__map { background: linear-gradient(135deg, #CFE3EA, #EAF3F6); border-color: #C6DBE2; }
.yui-overview--hojo .yui-overview__map-grid { background-image: linear-gradient(#B9D3DC 1px, transparent 1px), linear-gradient(90deg, #B9D3DC 1px, transparent 1px); }
.yui-overview--hojo .yui-overview__map-note { color: var(--yui-orange-dark); }
/* 依頼678282③：北条 会社概要マップ＝本社・那覇営業所を1カラム縦並び。
   左の表の高さに合わせて2枚を均等配分し、左右の列の高さバランスを揃える（stretch で表と同じ高さに収める） */
.yui-overview__maps { display: flex; flex-direction: column; gap: 16px; flex: 1; }
.yui-overview__map-block { flex: 1 1 0; display: flex; flex-direction: column; min-height: 0; }
.yui-overview__map-block .yui-overview__map { flex: 1; min-height: 100px; }
.yui-overview__map-block .yui-overview__gmap { min-height: 0; }
.yui-overview__map-label { font-size: 1.35rem; font-weight: 700; color: var(--yui-text); margin-bottom: 6px; }
@media (max-width: 639px) { .yui-overview__map-block .yui-overview__map { min-height: 180px; } }

/* ======================================
 * 採用情報（recruit.php）
 * ====================================== */
.yui-phero--recruit { background-position: center 45%; }
.yui-phero__en { display: block; font-family: "Jost", sans-serif; letter-spacing: .34em; font-size: 1.4rem; font-weight: 600; color: #EDFACB; }
.yui-phero--recruit .yui-phero__title { margin-top: 12px; }

/* INTRO */
.yui-rec-intro { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(28px, 5vw, 56px); align-items: center; }
.yui-rec-intro__img { aspect-ratio: 4 / 3; background-size: cover; background-position: center; }
.yui-rec-intro__title { margin-top: 14px; font-size: clamp(2.6rem, 3.6vw, 4rem); font-weight: 700; line-height: 1.5; }
.yui-rec-intro__lead { margin-top: 20px; }
.yui-rec-intro__box { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--yui-border); }
.yui-rec-intro__box-label { font-size: clamp(1.5rem, 1.7vw, 1.7rem); font-weight: 700; color: #3E4539; letter-spacing: .04em; }
.yui-rec-intro__checks { margin-top: 16px; display: flex; flex-direction: column; gap: 14px; }
.yui-rec-intro__check { display: flex; align-items: center; gap: 14px; font-size: clamp(1.5rem, 1.7vw, 1.7rem); font-weight: 600; }
.yui-rec-intro__check-mark { flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--yui-green); color: #fff; display: flex; align-items: center; justify-content: center; }
.yui-rec-intro__check-mark i { font-size: 14px; }

/* 働く魅力 PERKS */
.yui-perks { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 2.4vw, 24px); }
.yui-perks__item { background: #fff; border: 1px solid var(--yui-border2); padding: 30px 28px; box-shadow: 0 8px 22px rgba(60,70,40,.05); text-align: center; }
.yui-perks__icon { width: 48px; height: 48px; margin: 0 auto; display: flex; align-items: center; justify-content: center; }
.yui-perks__icon--orange,
.yui-perks__icon--green { background: #FBE9D4; color: var(--yui-orange-dark); }
.yui-perks__icon i { font-size: 22px; }
.yui-perks__title { margin-top: 16px; font-size: 1.8rem; font-weight: 700; }
.yui-perks__text { margin-top: 10px; font-size: 1.45rem; color: var(--yui-text-sub); line-height: 1.9; text-align: left; }
@media (max-width: 1023px) { .yui-perks { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .yui-perks { grid-template-columns: 1fr; } }

/* 入社までの流れ FLOW */
.yui-recflow { max-width: 850px; margin: 0 auto; }
.yui-recflow__step { display: flex; gap: clamp(18px, 3vw, 32px); align-items: stretch; }
.yui-recflow__marker { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; }
.yui-recflow__num { width: 60px; height: 60px; background: var(--yui-green); color: #fff; display: flex; align-items: center; justify-content: center; font-family: "Jost", sans-serif; font-size: 2.6rem; font-weight: 600; }
.yui-recflow__line { flex: 1; width: 2px; background: #D8E4C2; margin: 6px 0; min-height: 28px; }
.yui-recflow__body { flex: 1; background: #F5F5F2; padding: 20px 24px; margin-bottom: 16px; border-left: 3px solid var(--yui-green); }
.yui-recflow__body.is-last { margin-bottom: 0; }
.yui-recflow__title { font-size: clamp(1.9rem, 2.2vw, 2.3rem); font-weight: 700; }
.yui-recflow__text { margin-top: 8px; font-size: 1.45rem; color: var(--yui-text-sub); line-height: 1.9; }

/* エントリー ENTRY */
.yui-entry__tel { margin-top: 18px; display: inline-flex; align-items: center; gap: 10px; font-family: "Jost", sans-serif; font-size: 2.6rem; font-weight: 600; color: var(--yui-green-dark); }
.yui-entry__tel i { font-size: 22px; }
.yui-entry__tel:hover { opacity: .85; }
.yui-entry__form { background: #fff; border: 1px solid var(--yui-border2); padding: clamp(28px, 4vw, 44px); box-shadow: 0 10px 30px rgba(60,70,40,.06); }
.yui-entry__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 22px; }
.yui-entry__label { display: flex; flex-direction: column; gap: 8px; font-size: 1.35rem; font-weight: 700; color: #3E4539; }
.yui-entry__label--full { margin-top: 22px; }
.yui-entry__req { color: var(--yui-orange-hv); font-size: 1.1rem; }
.yui-entry__input { padding: 13px 15px; border: 1px solid #D9D7CC; background: var(--yui-body); font-size: 1.5rem; color: var(--yui-text); font-family: inherit; }
.yui-entry__input:focus { outline: 2px solid var(--yui-green); outline-offset: 1px; }
.yui-entry__textarea { resize: vertical; }
.yui-entry__submit-wrap { margin-top: 28px; text-align: center; }
.yui-entry__submit { display: inline-flex; align-items: center; gap: 10px; background: var(--yui-orange); color: #fff; font-weight: 700; font-size: 1.6rem; padding: 16px 48px; border: none; cursor: pointer; box-shadow: 0 8px 20px rgba(239,154,61,.32); transition: background .2s ease; }
.yui-entry__submit:hover { background: var(--yui-orange-hv); }
.yui-entry__submit i { font-size: 16px; }
.yui-entry__note { margin-top: 14px; font-size: 1.2rem; color: var(--yui-text-mute); }

/* ======================================
 * 社員専用ページ（member.php）
 * ====================================== */
.yui-mhero { position: relative; overflow: hidden; background-image: linear-gradient(120deg, rgba(30,34,26,.82) 0%, rgba(46,51,42,.70) 100%), url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28323/member_bk.jpg'); background-size: cover; background-position: center; }
.yui-mhero__glow { position: absolute; inset: 0; background: radial-gradient(circle at 86% 24%, rgba(159,201,106,.18), transparent 42%); }
.yui-mhero__inner { position: relative; padding-top: clamp(44px, 7vw, 84px); padding-bottom: clamp(44px, 7vw, 84px); color: #fff; }
.yui-mhero__head { display: flex; align-items: center; gap: 16px; }
.yui-mhero__icon { width: 54px; height: 54px; background: var(--yui-dark2); color: var(--yui-green-hi); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.yui-mhero__icon i { font-size: 24px; }
.yui-mhero__en { display: block; font-family: "Jost", sans-serif; letter-spacing: .34em; font-size: 1.3rem; font-weight: 600; color: var(--yui-green-lite); }
.yui-mhero__title { margin-top: 6px; font-size: clamp(2.6rem, 4.4vw, 4.4rem); font-weight: 700; letter-spacing: .03em; }
.yui-mhero__note { margin-top: 16px; font-size: 1.45rem; color: #C9CEC1; line-height: 1.9; }

/* ログイン画面（鍵付き） */
.yui-login { position: relative; background: linear-gradient(120deg, #2E332A 0%, #3C4436 100%); padding: clamp(60px, 10vw, 120px) clamp(20px, 4vw, 32px); display: flex; justify-content: center; }
.yui-login__card { width: 100%; max-width: 420px; background: #fff; padding: clamp(32px, 5vw, 48px) clamp(24px, 4vw, 40px); box-shadow: 0 20px 50px rgba(0,0,0,.28); text-align: center; }
.yui-login__icon { width: 60px; height: 60px; margin: 0 auto; border-radius: 50%; background: var(--yui-paleg); color: var(--yui-green-dark); display: flex; align-items: center; justify-content: center; }
.yui-login__icon i { font-size: 26px; }
.yui-login__title { margin-top: 18px; font-size: 2.2rem; font-weight: 700; }
.yui-login__note { margin-top: 10px; font-size: 1.4rem; color: var(--yui-text-sub); line-height: 1.8; }
.yui-login__error { margin-top: 16px; font-size: 1.35rem; font-weight: 700; color: #D0574A; background: #FBEAE6; padding: 10px 14px; }
.yui-login__form { margin-top: 22px; display: flex; flex-direction: column; gap: 14px; }
.yui-login__input { padding: 14px 16px; border: 1px solid #D9D7CC; background: var(--yui-body); font-size: 1.6rem; text-align: center; letter-spacing: .1em; font-family: inherit; color: var(--yui-text); }
.yui-login__input:focus { outline: 2px solid var(--yui-green); outline-offset: 1px; }
.yui-login__btn { padding: 14px; border: none; cursor: pointer; background: var(--yui-green); color: #fff; font-weight: 700; font-size: 1.6rem; transition: background .2s ease; }
.yui-login__btn:hover { background: #6BA52C; }
.yui-mlogout-wrap { max-width: 1160px; margin: 0 auto; padding: 16px clamp(20px, 4vw, 32px) 0; display: flex; justify-content: flex-end; }
.yui-mlogout { display: inline-flex; align-items: center; gap: 6px; font-size: 1.3rem; font-weight: 600; color: var(--yui-green-dark); border: 1px solid var(--yui-border2); background: #fff; padding: 8px 16px; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.yui-mlogout:hover { background: var(--yui-green); color: #fff; border-color: var(--yui-green); opacity: 1; }

/* お知らせ NOTICE */
.yui-notice-sec { padding-top: clamp(60px, 8vw, 100px); padding-bottom: clamp(60px, 8vw, 100px); }
.yui-notice-head { margin-bottom: 24px; text-align: center; }
.yui-notice { display: flex; flex-direction: column; gap: 14px; }
.yui-notice__item { position: relative; background: #fff; border: 1px solid var(--yui-border2); border-left: 4px solid var(--yui-green); padding: 22px 28px; box-shadow: 0 6px 18px rgba(60,70,40,.05); display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.yui-notice__item--orange { border-left-color: var(--yui-orange); }
.yui-notice__item--green { border-left-color: var(--yui-green); }
.yui-notice__date { font-family: "Jost", sans-serif; font-size: 1.3rem; color: var(--yui-text-mute); letter-spacing: .04em; flex-shrink: 0; }
.yui-notice__text { flex: 1; min-width: 220px; font-size: 1.6rem; font-weight: 700; line-height: 1.7; }

/* ライブラリ LIBRARY */
.yui-library-sec { padding-top: clamp(60px, 8vw, 100px); padding-bottom: clamp(60px, 8vw, 100px); background: var(--yui-cream); }
.yui-library-head { margin-bottom: 24px; text-align: center; }
.yui-library__links { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.yui-library__link { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 15px 12px; font-size: 1.4rem; font-weight: 600; color: var(--yui-text); background: #fff; border: 1px solid var(--yui-border2); box-shadow: 0 4px 14px rgba(60,70,40,.04); transition: border-color .2s ease, color .2s ease, background .2s ease, box-shadow .2s ease; }
.yui-library__link:hover { opacity: 1; color: var(--yui-green-dark); background: var(--yui-paleg); border-color: var(--yui-green); box-shadow: 0 8px 20px rgba(60,70,40,.08); }
.yui-library__link-icon { color: #D0574A; display: flex; flex-shrink: 0; }
.yui-library__link-icon i { font-size: 18px; }
.yui-library__note { margin-top: 20px; font-size: 1.2rem; color: var(--yui-text-mute); }

/* ======================================
 * レスポンシブ微調整
 * ====================================== */
/* ハンバーガーが出る幅ではフッターのサイトマップを非表示（メニューと重複のため） */
@media (max-width: 1023px) {
  .yui-footer__col--sitemap { display: none; }
  .yui-library__links { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .yui-overview__row { grid-template-columns: 96px 1fr; gap: 10px; padding: 16px 18px; }
  .yui-cta__actions { flex-direction: column; align-items: stretch; }
  .yui-cta__tel-box, .yui-cta__mail { min-width: 0; }
  .yui-cta__tel { font-size: 2.6rem; }
  .yui-cta__tel-box { padding: 20px 20px; }
  .yui-footer__tel { font-size: 2.3rem; }
  .yui-entry__tel { font-size: 2.2rem; }
  /* 入社までの流れ：スマホで番号を小さく、間隔を詰めて見やすく */
  .yui-recflow__step { gap: 14px; }
  .yui-recflow__num { width: 44px; height: 44px; font-size: 1.9rem; }
  .yui-recflow__title { font-size: 1.8rem; }
  .yui-recflow__text { font-size: 1.35rem; }
  .yui-recflow__body { padding: 15px 16px; }
  .yui-recflow__line { min-height: 20px; }
  .yui-group__thumb { height: 210px; }
  .yui-group__thumb-logo { height: 60px; }
  /* ライブラリ：スマホは2カラム */
  .yui-library__links { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  .yui-header__inner { height: 70px; }
  .yui-header-spacer { height: 71px; }
  .yui-header__logo-ja { font-size: 1.7rem; }
  .yui-header__logo-en { font-size: 1.2rem; letter-spacing: .24em; }
  .yui-header__mobile-tel, .yui-header__burger { width: 40px; height: 40px; }
  .yui-cta__mail-main { font-size: 1.6rem; }
  .yui-library__link { padding: 12px 18px; font-size: 1.4rem; }
  /* PHILOSOPHY 本文はスマホで中央揃え＋自然な折り返し（brは無効化） */
  .yui-philo__text { text-align: center; text-wrap: balance; word-break: auto-phrase; }
  .yui-philo__text br { display: none; }
  /* メインビュー：スマホでキャッチが不自然に折り返さないよう縮小 */
  .yui-hero__title { font-size: clamp(2rem, 6.8vw, 3.2rem); }
  .yui-hero__sub { font-size: 1.35rem; }
  .yui-hero__sub .yui-br-sp { display: inline; }
  /* メインビュー：スマホは高さ60vh（CMSの100vh変数を上書き） */
  #slideshow #cms-slider-1-1-area .slider_wrapper { --swiper-wrapper-height: 60vh; }
  /* PHILOSOPHY 背景ラインの丸をスマホで中央へ（ループ中心x≈1090→viewBox中央768へ左シフト） */
  .yui-philo [data-yui-line] { transform: translate(-322px, 80px); }
  /* 社員専用リンク：スマホは縦積みで中央・バランス調整 */
  .yui-member-link { flex-direction: column; text-align: center; gap: 18px; padding: 30px 22px; }
  .yui-member-link__lead { flex-direction: column; align-items: center; gap: 12px; }
  .yui-member-link__btn { width: 100%; max-width: 280px; justify-content: center; font-size: 1.5rem; padding: 14px 24px; }
  /* 行動理念テキスト */
  .yui-action__text { font-size: 1.4rem; }
  /* 資格者一覧：資格名が長いためスマホは縮小して2行に収める */
  .yui-qual__item { padding: 16px 18px; }
  .yui-qual__name { font-size: 1.4rem; }
  .yui-qual__num { font-size: 2.2rem; }
}

/* ======================================
 * スクロールアニメーション（common.js が .yui-reveal を付与 → is-visible で表示）
 * ※ JSが付与するため、JS無効時は常時表示（opacity:0で固定されない）
 * ====================================== */
/* ハンバーガーメニュー展開中はフッターを隠す */
body.nav-open .yui-footer { display: none; }

/* スマホ限定の改行（PCでは無効） */
.yui-br-sp { display: none; }

.yui-reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.2, .6, .2, 1), transform .8s cubic-bezier(.2, .6, .2, 1); }
.yui-reveal.is-visible { opacity: 1; transform: none; }

/* ======================================
 * ラフ配色（黄緑#ACCE35 / 薄オレンジ#F7C996 / 白）対応の可読性補正
 * 明るい地のボタン・バッジは文字/アイコンを濃色にする
 * ====================================== */
.yui-header__cta,
.yui-header__menu-cta,
.yui-cta__mail,
.yui-footer__cta,
.yui-entry__submit,
.yui-member-link__btn,
.yui-login__btn,
.yui-recflow__num,
.yui-svc__no,
.yui-rec-intro__check-mark,
.yui-header__burger { color: var(--yui-text); }
.yui-svc--hojo .yui-svc__no { color: var(--yui-text); }   /* 北条=薄オレンジ地は濃色文字 */
.yui-member-link__btn:hover,
.yui-login__btn:hover { background: #9BBF2E; }

/* お問い合わせ系ボタン：背景をベースカラー（白）に。明るい背景でも見えるよう枠線を付与 */
.yui-header__cta,
.yui-header__menu-cta,
.yui-footer__cta,
.yui-cta__mail { background: #fff; border: 1px solid #E0DED3; box-shadow: none; }
.yui-header__cta:hover,
.yui-header__menu-cta:hover,
.yui-footer__cta:hover,
.yui-cta__mail:hover { background: #F2F1EA; }

/* 依頼678282②：英語の見出し・ラベルを Open Sans＋斜体に統一（電話番号・日付・連番などの数字系は読みやすさ優先で除外） */
.yui-eyebrow,
.yui-hero__en,
.yui-phero__en,
.yui-mhero__en,
.yui-cta__en,
.yui-group__thumb-en,
.yui-recruit-bnr__en,
.yui-footer__col-label,
.yui-header__menu-en {
  font-family: "Open Sans", sans-serif;
  font-style: italic;
}
