:root{--navy:#0c2740;--blue:#1677b9;--blue-dark:#0f5f95;--sky:#f3f9fd;--line:#d9e7f0;--text:#1a2634;--muted:#5f7080;--shadow:0 18px 44px rgba(12,39,64,.10);--radius:22px}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","YuGothic","Noto Sans JP",sans-serif;line-height:1.9;letter-spacing:.02em;background:linear-gradient(180deg,#fff 0%,#f3f9fd 100%)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1120px,calc(100% - 40px));margin:0 auto}.work-detail-header{background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(10px)}.work-detail-header-inner{display:flex;align-items:center;justify-content:space-between;min-height:82px;gap:18px}.work-detail-logo{font-weight:900;color:var(--navy);font-size:20px}.work-detail-logo span{display:block;color:var(--muted);font-size:11px;letter-spacing:.2em}.header-back{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 18px;border-radius:999px;background:#eef6fb;border:1px solid var(--line);color:var(--blue-dark);font-weight:800;font-size:13px}.work-detail-main{padding:58px 0 90px}.work-detail-card{overflow:hidden;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:var(--shadow)}.work-detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:18px;background:#f7fbfe}.work-detail-gallery img{width:100%;height:340px;object-fit:cover;border-radius:18px;box-shadow:0 10px 24px rgba(12,39,64,.08)}.work-detail-body{padding:38px}.work-category{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:7px 14px;border-radius:999px;background:#eef6fb;border:1px solid var(--line);color:var(--blue-dark);font-size:13px;font-weight:800;margin-bottom:14px}h1{margin:0 0 18px;color:var(--navy);font-size:clamp(30px,4vw,48px);line-height:1.25}p{color:var(--text)}.work-detail-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.work-detail-section h2{margin:0 0 12px;color:var(--navy);font-size:24px}.work-points{margin:0;padding-left:1.4em;color:var(--text);font-weight:700}.work-points li{margin:7px 0}.work-action{margin-top:34px}.work-back-button{display:inline-flex;align-items:center;justify-content:center;min-width:190px;min-height:48px;padding:12px 24px;border-radius:999px;background:linear-gradient(135deg,var(--blue-dark),var(--blue));color:#fff;font-weight:800}@media(max-width:760px){.container{width:min(100% - 28px,680px)}.work-detail-header-inner{min-height:72px}.work-detail-main{padding:32px 0 70px}.work-detail-gallery{grid-template-columns:1fr;gap:12px;padding:12px}.work-detail-gallery img{height:230px;border-radius:14px}.work-detail-body{padding:26px 20px 30px}.work-back-button{width:100%}}

/* v3 fix: construction work button readability + transparent footer logo */
.works-restored .work-detail-button,
.works-restored .work-detail-button:link,
.works-restored .work-detail-button:visited,
.work-detail-button,
.work-detail-button:link,
.work-detail-button:visited {
  color: #ffffff !important;
  background: linear-gradient(135deg, #4f3f34, #2f261f) !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
  font-weight: 900 !important;
}
.works-restored .work-detail-button:hover,
.work-detail-button:hover {
  color: #ffffff !important;
  filter: brightness(1.06);
}
.site-footer .footer-logo {
  background: transparent !important;
  border-radius: 0 !important;
}


/* v6 ABOUT image tone / fit fix */
#about .about-visual img,
.about-visual img {
  object-fit: cover;
  object-position: center center;
  filter: saturate(0.92) contrast(0.96) brightness(0.98);
}


/* =========================================================
   v24 Footer logo visibility fix
   フッターのロゴを白文字・白線で見やすく調整
========================================================= */
.site-footer .footer-logo {
  background: transparent !important;
  border-radius: 0 !important;
  filter: drop-shadow(0 2px 8px rgba(255,255,255,0.16)) !important;
}


/* =========================================================
   v25 Footer logo original color fix
   PDFロゴの黒文字・黒線・赤黄緑リングの色味をそのまま使用
========================================================= */
.site-footer .footer-logo,
.footer-logo {
  background: transparent !important;
  border-radius: 0 !important;
  filter: none !important;
  object-fit: contain !important;
}


/* =========================================================
   v26 Mobile balance / logo / news image / strengths compact
   スマホで窮屈に見えないように全体バランスを調整
========================================================= */

/* TOP/ヘッダーロゴをフッターと同系統の丸切り抜きロゴで表示 */
.brand-logo {
  width: 76px !important;
  height: 76px !important;
  border-radius: 50% !important;
  object-fit: contain !important;
  background: rgba(255,255,255,0.96) !important;
  box-shadow: 0 8px 18px rgba(43,35,28,0.10) !important;
  padding: 3px !important;
}

/* 全体の余白を少し整えて、スマホで詰まりすぎない見え方へ */
@media (max-width: 760px) {
  .container,
  .narrow {
    width: min(100% - 34px, 1160px) !important;
  }

  .section {
    padding: 54px 0 !important;
  }

  .section-intro {
    font-size: 14.5px !important;
    line-height: 1.85 !important;
  }

  .site-header {
    position: sticky !important;
    top: 0 !important;
  }

  .header-inner {
    padding: 9px 0 8px !important;
  }

  .brand {
    gap: 10px !important;
    align-items: center !important;
  }

  .brand-logo {
    width: 58px !important;
    height: 58px !important;
    flex: 0 0 58px !important;
    padding: 2px !important;
  }

  .brand-text strong {
    font-size: 17px !important;
    line-height: 1.22 !important;
  }

  .brand-text small {
    font-size: 9px !important;
    letter-spacing: 0.12em !important;
  }

  .sticky-nav-inner {
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }

  .sticky-nav-wrap .nav,
  .nav {
    gap: 8px !important;
    justify-content: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .sticky-nav-wrap .nav a,
  .sticky-nav-wrap .nav a:visited,
  .sticky-nav-wrap .nav .nav-cta,
  .sticky-nav-wrap .nav a.nav-cta,
  .sticky-nav-wrap .nav .mobile-header-tel,
  .sticky-nav-wrap .nav a.mobile-header-tel {
    min-height: 38px !important;
    padding: 8px 12px !important;
    font-size: 12.5px !important;
    line-height: 1.15 !important;
  }

  .hero {
    min-height: 690px !important;
  }

  .hero-copy {
    padding: 64px 0 16px !important;
  }

  .hero-copy h1 {
    font-size: 30px !important;
    line-height: 1.42 !important;
    margin-bottom: 16px !important;
  }

  .hero-text {
    font-size: 14px !important;
    line-height: 1.85 !important;
  }

  .hero-buttons {
    margin-top: 20px !important;
  }

  .hero-card {
    margin-top: 14px !important;
    margin-bottom: 20px !important;
    padding: 16px !important;
  }
}

/* 新着情報：背景写真が寄りすぎないよう、全体が見えるサイズ感へ */
.news-slide {
  background-size: contain !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  transform: scale(1.0) !important;
  filter: saturate(0.98) contrast(0.98) brightness(0.96) !important;
}

.news-slide.is-visible {
  opacity: 0.46 !important;
}

.news-slideshow {
  background:
    linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
}

.news-slideshow-overlay {
  background:
    linear-gradient(180deg, rgba(251,247,239,0.66) 0%, rgba(249,244,236,0.56) 26%, rgba(244,236,226,0.58) 74%, rgba(242,232,220,0.70) 100%) !important;
}

.news-item {
  background: rgba(255, 250, 242, 0.90) !important;
  backdrop-filter: blur(3px) !important;
  -webkit-backdrop-filter: blur(3px) !important;
}

@media (max-width: 760px) {
  .news-section {
    padding-top: 50px !important;
    padding-bottom: 54px !important;
  }

  .news-slide {
    background-size: 92% auto !important;
    background-position: center 46% !important;
    transform: scale(1.0) !important;
  }

  .news-slide.is-visible {
    opacity: 0.40 !important;
  }

  .news-slideshow-overlay {
    background:
      linear-gradient(180deg, rgba(251,247,239,0.70) 0%, rgba(249,244,236,0.60) 26%, rgba(244,236,226,0.62) 74%, rgba(242,232,220,0.74) 100%) !important;
  }

  .news-head {
    gap: 14px !important;
    margin-bottom: 22px !important;
  }

  .news-list {
    gap: 14px !important;
  }

  .news-item {
    padding: 20px 18px !important;
    border-radius: 22px !important;
  }

  .news-item time {
    font-size: 24px !important;
    margin-bottom: 12px !important;
  }

  .news-item p {
    font-size: 14.5px !important;
    line-height: 1.8 !important;
  }
}

/* 私たちの強み：スマホでは4つが一画面に収まりやすい2×2コンパクト表示 */
@media (max-width: 760px) {
  #strengths {
    padding-top: 48px !important;
    padding-bottom: 50px !important;
  }

  #strengths .strengths-inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  #strengths h2 {
    font-size: 27px !important;
    margin-bottom: 10px !important;
  }

  #strengths .strength-intro {
    font-size: 13px !important;
    line-height: 1.65 !important;
    margin-bottom: 16px !important;
  }

  #strengths .strength-visual-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-top: 16px !important;
  }

  #strengths .strength-visual-card {
    min-height: 150px !important;
    padding: 14px 10px 12px !important;
    border-radius: 18px !important;
    border-width: 1px !important;
    justify-content: center !important;
    align-items: center !important;
  }

  #strengths .strength-visual-card::after {
    inset: 6px !important;
    border-radius: 12px !important;
  }

  #strengths .strength-icon {
    width: 46px !important;
    height: 46px !important;
    margin: 0 auto 8px !important;
  }

  #strengths .strength-icon svg {
    stroke-width: 2.4 !important;
  }

  #strengths .strength-visual-card h3 {
    font-size: 15px !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    letter-spacing: 0.02em !important;
  }

  /* 一画面に4つ収めるため、本文はスマホでは非表示。
     PCでは今まで通り表示されます。 */
  #strengths .strength-visual-card p {
    display: none !important;
  }
}

/* さらに小さいスマホでも崩れにくく */
@media (max-width: 390px) {
  .container,
  .narrow {
    width: min(100% - 28px, 1160px) !important;
  }

  .sticky-nav-wrap .nav a,
  .sticky-nav-wrap .nav a:visited,
  .sticky-nav-wrap .nav .nav-cta,
  .sticky-nav-wrap .nav a.nav-cta,
  .sticky-nav-wrap .nav .mobile-header-tel,
  .sticky-nav-wrap .nav a.mobile-header-tel {
    padding: 7px 10px !important;
    font-size: 12px !important;
  }

  #strengths .strength-visual-card {
    min-height: 140px !important;
    padding: 12px 8px !important;
  }

  #strengths .strength-icon {
    width: 42px !important;
    height: 42px !important;
  }

  #strengths .strength-visual-card h3 {
    font-size: 14px !important;
  }
}

/* PC側のTOPロゴも少し自然に */
@media (min-width: 761px) {
  .brand-logo {
    width: 72px !important;
    height: 72px !important;
  }
}


/* =========================================================
   v27 PC news wide image / mobile nav 2 rows
   PC新着情報写真をワイド表示、スマホナビを2段固定
========================================================= */

/* PC：新着情報の背景写真をワイドに見せる */
@media (min-width: 761px) {
  .news-slide {
    background-size: cover !important;
    background-position: center center !important;
    transform: scale(1.0) !important;
  }

  .news-slide.is-visible {
    opacity: 0.44 !important;
  }

  .news-slideshow-overlay {
    background:
      linear-gradient(180deg, rgba(251,247,239,0.68) 0%, rgba(249,244,236,0.56) 26%, rgba(244,236,226,0.58) 74%, rgba(242,232,220,0.70) 100%) !important;
  }
}

/* スマホ：上部ナビボタンを2段に固定して、3段にならないよう調整 */
@media (max-width: 760px) {
  .sticky-nav-wrap .nav,
  .nav {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 7px !important;
    width: 100% !important;
    align-items: stretch !important;
  }

  .sticky-nav-wrap .nav a,
  .sticky-nav-wrap .nav a:visited,
  .sticky-nav-wrap .nav .nav-cta,
  .sticky-nav-wrap .nav a.nav-cta,
  .sticky-nav-wrap .nav .mobile-header-tel,
  .sticky-nav-wrap .nav a.mobile-header-tel {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 7px 5px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    line-height: 1.12 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .sticky-nav-inner {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }

  .sticky-nav-wrap {
    max-height: none !important;
  }

  /* 長い「お問い合わせ」だけ2行でも収まるように少し小さめ */
  .sticky-nav-wrap .nav a[href*="contact"],
  .sticky-nav-wrap .nav a[href="#contact"],
  .sticky-nav-wrap .nav a[href="contact.html"] {
    font-size: 11.8px !important;
  }
}

/* かなり小さいスマホでも2段を維持 */
@media (max-width: 390px) {
  .sticky-nav-wrap .nav,
  .nav {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  .sticky-nav-wrap .nav a,
  .sticky-nav-wrap .nav a:visited,
  .sticky-nav-wrap .nav .nav-cta,
  .sticky-nav-wrap .nav a.nav-cta,
  .sticky-nav-wrap .nav .mobile-header-tel,
  .sticky-nav-wrap .nav a.mobile-header-tel {
    min-height: 34px !important;
    padding: 6px 4px !important;
    font-size: 10px !important;
  }

  .sticky-nav-wrap .nav a[href*="contact"],
  .sticky-nav-wrap .nav a[href="#contact"],
  .sticky-nav-wrap .nav a[href="contact.html"] {
    font-size: 9.5px !important;
  }
}


/* =========================================================
   v28 SANWA marquee spacing + president message background
   SANWA横流れ文字と新着情報の間に余白追加
   社長あいさつ部分にガッツポーズ写真背景を追加
========================================================= */

/* SANWA横流れ文字と新着情報の間に余白 */
.top-marquee-band {
  margin-bottom: 42px !important;
}

.news-section {
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  .top-marquee-band {
    margin-bottom: 28px !important;
  }
}

/* 社長あいさつ / MESSAGE 背景 */
.message-strip {
  position: relative !important;
  overflow: hidden !important;
  background-image:
    linear-gradient(90deg, rgba(251,247,239,0.90) 0%, rgba(251,247,239,0.72) 42%, rgba(251,247,239,0.54) 100%),
    url("assets/president_fist_message_bg.jpg") !important;
  background-size: cover !important;
  background-position: center 43% !important;
  background-repeat: no-repeat !important;
  padding-top: 118px !important;
  padding-bottom: 118px !important;
  border-top: 1px solid rgba(110,94,78,0.08) !important;
  border-bottom: 1px solid rgba(110,94,78,0.08) !important;
}

.message-strip::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    radial-gradient(circle at 72% 42%, rgba(255,255,255,0.08), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,0.16), rgba(242,232,220,0.16)) !important;
  pointer-events: none !important;
}

.message-strip-inner {
  position: relative !important;
  z-index: 2 !important;
  background: rgba(255, 250, 242, 0.72) !important;
  border: 1px solid rgba(215, 201, 184, 0.78) !important;
  border-radius: 32px !important;
  padding: 42px 34px !important;
  box-shadow: 0 18px 46px rgba(43,35,28,0.10) !important;
  backdrop-filter: blur(3px) !important;
  -webkit-backdrop-filter: blur(3px) !important;
}

.message-strip .section-tag,
.message-strip .message-headline,
.message-strip .lead {
  position: relative !important;
  z-index: 2 !important;
}

.message-strip .message-headline {
  color: #3f3933 !important;
  text-shadow: 0 2px 12px rgba(255,255,255,0.55) !important;
}

.message-strip .lead {
  color: #5d5349 !important;
  text-shadow: 0 1px 8px rgba(255,255,255,0.50) !important;
}

@media (max-width: 760px) {
  .message-strip {
    padding-top: 74px !important;
    padding-bottom: 74px !important;
    background-image:
      linear-gradient(180deg, rgba(251,247,239,0.92) 0%, rgba(251,247,239,0.74) 48%, rgba(251,247,239,0.62) 100%),
      url("assets/president_fist_message_bg.jpg") !important;
    background-size: cover !important;
    background-position: 57% center !important;
  }

  .message-strip-inner {
    width: min(100% - 34px, 760px) !important;
    padding: 28px 20px !important;
    border-radius: 24px !important;
  }

  .message-strip .message-headline {
    font-size: 25px !important;
    line-height: 1.48 !important;
  }

  .message-strip .lead {
    font-size: 14.5px !important;
    line-height: 1.9 !important;
  }
}


/* =========================================================
   v29 Greeting background + message order adjustment
   代表挨拶背景を見える濃さに調整
   横スクロールSANWA → MESSAGE → 新着情報 の順番へ
========================================================= */

/* さっき追加した余白は削除 */
.top-marquee-band {
  margin-bottom: 0 !important;
}

.news-section {
  margin-top: 0 !important;
}

/* MESSAGEは横スクロールと新着情報の間に自然に入るよう調整 */
.message-strip {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  position: relative !important;
  overflow: hidden !important;
  background-image:
    linear-gradient(90deg, rgba(251,247,239,0.66) 0%, rgba(251,247,239,0.54) 45%, rgba(251,247,239,0.46) 100%),
    url("assets/president_fist_message_bg.jpg") !important;
  background-size: cover !important;
  background-position: center 43% !important;
  background-repeat: no-repeat !important;
  padding-top: 92px !important;
  padding-bottom: 92px !important;
}

.message-strip-inner {
  background: rgba(255, 250, 242, 0.78) !important;
  border: 1px solid rgba(215, 201, 184, 0.78) !important;
  border-radius: 30px !important;
  padding: 40px 34px !important;
  box-shadow: 0 18px 46px rgba(43,35,28,0.10) !important;
  backdrop-filter: blur(3px) !important;
  -webkit-backdrop-filter: blur(3px) !important;
}

/* 代表挨拶の背景を、新着情報くらいの濃さで反映 */
.greeting {
  position: relative !important;
  overflow: hidden !important;
  background-image:
    linear-gradient(90deg, rgba(251,247,239,0.66) 0%, rgba(251,247,239,0.54) 44%, rgba(251,247,239,0.46) 100%),
    url("assets/president_fist_message_bg.jpg") !important;
  background-size: cover !important;
  background-position: center 43% !important;
  background-repeat: no-repeat !important;
  border-top: 1px solid rgba(110,94,78,0.08) !important;
  border-bottom: 1px solid rgba(110,94,78,0.08) !important;
}

.greeting::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background:
    radial-gradient(circle at 72% 42%, rgba(255,255,255,0.06), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(242,232,220,0.10)) !important;
}

.greeting > .container {
  position: relative !important;
  z-index: 2 !important;
}

.greeting-box {
  background: rgba(255, 250, 242, 0.84) !important;
  border: 1px solid rgba(215, 201, 184, 0.80) !important;
  border-radius: 28px !important;
  padding: 34px 32px !important;
  box-shadow: 0 18px 42px rgba(43,35,28,0.11) !important;
  backdrop-filter: blur(3px) !important;
  -webkit-backdrop-filter: blur(3px) !important;
}

.greeting .section-tag,
.greeting h2,
.greeting .mobile-greeting-summary,
.greeting-box p {
  text-shadow: 0 1px 8px rgba(255,255,255,0.58) !important;
}

/* スマホ調整 */
@media (max-width: 760px) {
  .top-marquee-band {
    margin-bottom: 0 !important;
  }

  .message-strip {
    padding-top: 58px !important;
    padding-bottom: 58px !important;
    background-image:
      linear-gradient(180deg, rgba(251,247,239,0.70) 0%, rgba(251,247,239,0.58) 48%, rgba(251,247,239,0.50) 100%),
      url("assets/president_fist_message_bg.jpg") !important;
    background-size: cover !important;
    background-position: 57% center !important;
  }

  .message-strip-inner {
    width: min(100% - 34px, 760px) !important;
    padding: 28px 20px !important;
    border-radius: 24px !important;
  }

  .message-strip .message-headline {
    font-size: 25px !important;
    line-height: 1.48 !important;
  }

  .message-strip .lead {
    font-size: 14.5px !important;
    line-height: 1.9 !important;
  }

  .greeting {
    background-image:
      linear-gradient(180deg, rgba(251,247,239,0.72) 0%, rgba(251,247,239,0.60) 48%, rgba(251,247,239,0.52) 100%),
      url("assets/president_fist_message_bg.jpg") !important;
    background-size: cover !important;
    background-position: 57% center !important;
  }

  .greeting-box {
    padding: 24px 20px !important;
    border-radius: 22px !important;
    background: rgba(255, 250, 242, 0.88) !important;
  }
}


/* =========================================================
   v30 Marquee smaller / president background only on greeting
   SANWA横スクロール文字を小さく
   ガッツポーズ写真は代表挨拶背景だけに適用
========================================================= */

/* 横に流れるSANWA文字を少し小さく */
.top-marquee-band,
.marquee-band,
.sanwa-marquee,
.marquee {
  --marquee-font-size: clamp(42px, 7vw, 92px) !important;
}

.top-marquee-band .marquee-track,
.top-marquee-band .marquee-content,
.top-marquee-band span,
.marquee-band .marquee-track,
.marquee-band .marquee-content,
.marquee-band span,
.sanwa-marquee .marquee-track,
.sanwa-marquee .marquee-content,
.sanwa-marquee span {
  font-size: clamp(42px, 7vw, 92px) !important;
  line-height: 1 !important;
}

/* MESSAGE側にはガッツポーズ写真を入れない */
.message-strip {
  background-image:
    radial-gradient(circle at 18% 12%, rgba(255,246,220,0.18), transparent 30%),
    linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  background-size: auto !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

.message-strip::before {
  background:
    radial-gradient(circle at 78% 18%, rgba(217,172,102,0.10), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,0.12), rgba(242,232,220,0.10)) !important;
}

/* 代表挨拶側だけにガッツポーズ背景 */
.greeting,
.president-greeting-bg-only,
#representative,
#president-message,
#message-greeting,
.representative-message,
.president-message,
.ceo-message {
  position: relative !important;
  overflow: hidden !important;
  background-image:
    linear-gradient(90deg, rgba(251,247,239,0.66) 0%, rgba(251,247,239,0.54) 44%, rgba(251,247,239,0.46) 100%),
    url("assets/president_fist_message_bg.jpg") !important;
  background-size: cover !important;
  background-position: center 43% !important;
  background-repeat: no-repeat !important;
  border-top: 1px solid rgba(110,94,78,0.08) !important;
  border-bottom: 1px solid rgba(110,94,78,0.08) !important;
}

.greeting::before,
.president-greeting-bg-only::before,
#representative::before,
#president-message::before,
#message-greeting::before,
.representative-message::before,
.president-message::before,
.ceo-message::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background:
    radial-gradient(circle at 72% 42%, rgba(255,255,255,0.06), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,0.08), rgba(242,232,220,0.10)) !important;
}

.greeting > .container,
.president-greeting-bg-only > .container,
#representative > .container,
#president-message > .container,
#message-greeting > .container,
.representative-message > .container,
.president-message > .container,
.ceo-message > .container {
  position: relative !important;
  z-index: 2 !important;
}

.greeting-box,
.president-greeting-bg-only .greeting-box,
.president-message .greeting-box,
.representative-message .greeting-box,
.ceo-message .greeting-box {
  background: rgba(255, 250, 242, 0.84) !important;
  border: 1px solid rgba(215, 201, 184, 0.80) !important;
  border-radius: 28px !important;
  padding: 34px 32px !important;
  box-shadow: 0 18px 42px rgba(43,35,28,0.11) !important;
  backdrop-filter: blur(3px) !important;
  -webkit-backdrop-filter: blur(3px) !important;
}

/* スマホ調整 */
@media (max-width: 760px) {
  .top-marquee-band,
  .marquee-band,
  .sanwa-marquee,
  .marquee {
    --marquee-font-size: clamp(32px, 12vw, 56px) !important;
  }

  .top-marquee-band .marquee-track,
  .top-marquee-band .marquee-content,
  .top-marquee-band span,
  .marquee-band .marquee-track,
  .marquee-band .marquee-content,
  .marquee-band span,
  .sanwa-marquee .marquee-track,
  .sanwa-marquee .marquee-content,
  .sanwa-marquee span {
    font-size: clamp(32px, 12vw, 56px) !important;
    line-height: 1 !important;
  }

  .message-strip {
    background-image:
      radial-gradient(circle at 18% 12%, rgba(255,246,220,0.16), transparent 30%),
      linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  }

  .greeting,
  .president-greeting-bg-only,
  #representative,
  #president-message,
  #message-greeting,
  .representative-message,
  .president-message,
  .ceo-message {
    background-image:
      linear-gradient(180deg, rgba(251,247,239,0.72) 0%, rgba(251,247,239,0.60) 48%, rgba(251,247,239,0.52) 100%),
      url("assets/president_fist_message_bg.jpg") !important;
    background-size: cover !important;
    background-position: 57% center !important;
  }

  .greeting-box,
  .president-greeting-bg-only .greeting-box,
  .president-message .greeting-box,
  .representative-message .greeting-box,
  .ceo-message .greeting-box {
    padding: 24px 20px !important;
    border-radius: 22px !important;
    background: rgba(255, 250, 242, 0.88) !important;
  }
}


/* =========================================================
   v31 MESSAGE no frame / greeting full photo background
   MESSAGEの文字は残し、枠を削除
   代表挨拶背景は薄めず写真を強く表示
========================================================= */

/* MESSAGE：文字は残して、囲い枠・カード感を消す */
.message-strip {
  background-image:
    radial-gradient(circle at 18% 12%, rgba(255,246,220,0.14), transparent 30%),
    linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  padding-top: 76px !important;
  padding-bottom: 76px !important;
}

.message-strip-inner {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 0 !important;
}

.message-strip .section-tag,
.message-strip .message-headline,
.message-strip .lead {
  text-shadow: none !important;
}

/* 代表挨拶：ガッツポーズ背景を薄めず反映 */
.greeting,
.president-greeting-bg-only,
#representative,
#president-message,
#message-greeting,
.representative-message,
.president-message,
.ceo-message {
  background-image: url("assets/president_fist_message_bg.jpg") !important;
  background-size: cover !important;
  background-position: center 43% !important;
  background-repeat: no-repeat !important;
}

.greeting::before,
.president-greeting-bg-only::before,
#representative::before,
#president-message::before,
#message-greeting::before,
.representative-message::before,
.president-message::before,
.ceo-message::before {
  background:
    linear-gradient(90deg, rgba(251,247,239,0.08) 0%, rgba(251,247,239,0.04) 45%, rgba(251,247,239,0.00) 100%) !important;
}

/* 文字の読みやすさだけは確保 */
.greeting-box,
.president-greeting-bg-only .greeting-box,
.president-message .greeting-box,
.representative-message .greeting-box,
.ceo-message .greeting-box {
  background: rgba(255, 250, 242, 0.78) !important;
  border: 1px solid rgba(215, 201, 184, 0.62) !important;
  box-shadow: 0 18px 42px rgba(43,35,28,0.12) !important;
  backdrop-filter: blur(2px) !important;
  -webkit-backdrop-filter: blur(2px) !important;
}

/* スマホ */
@media (max-width: 760px) {
  .message-strip {
    padding-top: 54px !important;
    padding-bottom: 54px !important;
  }

  .message-strip-inner {
    width: min(100% - 34px, 760px) !important;
    padding: 0 !important;
  }

  .greeting,
  .president-greeting-bg-only,
  #representative,
  #president-message,
  #message-greeting,
  .representative-message,
  .president-message,
  .ceo-message {
    background-image: url("assets/president_fist_message_bg.jpg") !important;
    background-size: cover !important;
    background-position: 57% center !important;
  }

  .greeting::before,
  .president-greeting-bg-only::before,
  #representative::before,
  #president-message::before,
  #message-greeting::before,
  .representative-message::before,
  .president-message::before,
  .ceo-message::before {
    background:
      linear-gradient(180deg, rgba(251,247,239,0.10) 0%, rgba(251,247,239,0.04) 52%, rgba(251,247,239,0.00) 100%) !important;
  }

  .greeting-box,
  .president-greeting-bg-only .greeting-box,
  .president-message .greeting-box,
  .representative-message .greeting-box,
  .ceo-message .greeting-box {
    background: rgba(255, 250, 242, 0.82) !important;
    backdrop-filter: blur(2px) !important;
    -webkit-backdrop-filter: blur(2px) !important;
  }
}


/* =========================================================
   v32 Representative greeting photo visible / no frame
   代表挨拶の写真を確実に見せる・枠を削除
========================================================= */

/* 代表挨拶セクションを直接指定 */
.president-photo-section,
.greeting,
.president-greeting-bg-only,
#representative,
#president-message,
#message-greeting,
.representative-message,
.president-message,
.ceo-message {
  position: relative !important;
  overflow: hidden !important;
  background-image: url("assets/president_fist_message_bg.jpg") !important;
  background-size: cover !important;
  background-position: center 42% !important;
  background-repeat: no-repeat !important;
  min-height: 560px !important;
}

/* 写真を隠していた白ベールをほぼ削除 */
.president-photo-section::before,
.greeting::before,
.president-greeting-bg-only::before,
#representative::before,
#president-message::before,
#message-greeting::before,
.representative-message::before,
.president-message::before,
.ceo-message::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.02) 48%, rgba(0,0,0,0.08) 100%) !important;
  z-index: 0 !important;
}

.president-photo-section > .container,
.greeting > .container,
.president-greeting-bg-only > .container,
#representative > .container,
#president-message > .container,
#message-greeting > .container,
.representative-message > .container,
.president-message > .container,
.ceo-message > .container {
  position: relative !important;
  z-index: 2 !important;
}

/* 代表挨拶の枠・カード感を削除 */
.president-photo-section .greeting-box,
.greeting-box,
.president-greeting-bg-only .greeting-box,
.president-message .greeting-box,
.representative-message .greeting-box,
.ceo-message .greeting-box {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 0 !important;
}

/* 枠を消す代わりに、文字だけ読めるように影を少し強める */
.president-photo-section .section-tag,
.president-photo-section h2,
.president-photo-section .mobile-greeting-summary,
.president-photo-section p,
.greeting .section-tag,
.greeting h2,
.greeting .mobile-greeting-summary,
.greeting p,
.representative-message .section-tag,
.representative-message h2,
.representative-message p,
.president-message .section-tag,
.president-message h2,
.president-message p,
.ceo-message .section-tag,
.ceo-message h2,
.ceo-message p {
  text-shadow:
    0 2px 10px rgba(255,255,255,0.88),
    0 0 20px rgba(255,255,255,0.68) !important;
}

/* テキストの背景にうっすらだけグラデーションを置く：枠ではなく読みやすさ用 */
.president-photo-section .container,
.greeting .container,
.representative-message .container,
.president-message .container,
.ceo-message .container {
  background:
    linear-gradient(90deg, rgba(251,247,239,0.70) 0%, rgba(251,247,239,0.46) 44%, rgba(251,247,239,0.05) 100%) !important;
  border-radius: 0 !important;
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

/* MESSAGE側は写真なし、枠なしのまま */
.message-strip {
  background-image:
    radial-gradient(circle at 18% 12%, rgba(255,246,220,0.14), transparent 30%),
    linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
}

.message-strip-inner {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* スマホ */
@media (max-width: 760px) {
  .president-photo-section,
  .greeting,
  .president-greeting-bg-only,
  #representative,
  #president-message,
  #message-greeting,
  .representative-message,
  .president-message,
  .ceo-message {
    min-height: 520px !important;
    background-position: 58% center !important;
  }

  .president-photo-section::before,
  .greeting::before,
  .president-greeting-bg-only::before,
  #representative::before,
  #president-message::before,
  #message-greeting::before,
  .representative-message::before,
  .president-message::before,
  .ceo-message::before {
    background:
      linear-gradient(180deg, rgba(0,0,0,0.06) 0%, rgba(0,0,0,0.02) 52%, rgba(0,0,0,0.08) 100%) !important;
  }

  .president-photo-section .container,
  .greeting .container,
  .representative-message .container,
  .president-message .container,
  .ceo-message .container {
    background:
      linear-gradient(180deg, rgba(251,247,239,0.74) 0%, rgba(251,247,239,0.50) 52%, rgba(251,247,239,0.10) 100%) !important;
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  .president-photo-section .greeting-box,
  .greeting-box,
  .president-greeting-bg-only .greeting-box,
  .president-message .greeting-box,
  .representative-message .greeting-box,
  .ceo-message .greeting-box {
    padding: 0 !important;
  }
}


/* =========================================================
   v33 Representative greeting visible background / color matched
   背景色を統一し、ガッツポーズ写真を専用レイヤーで確実表示
========================================================= */

/* 代表挨拶：背景色は他セクションと揃える */
.president-photo-visible-v33,
.section.greeting.president-photo-visible-v33 {
  position: relative !important;
  overflow: hidden !important;
  background: linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  background-image: linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  min-height: 620px !important;
  isolation: isolate !important;
}

/* 写真はCSS背景ではなく、専用レイヤーで直接表示 */
.president-photo-visible-v33 .president-bg-photo-layer {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  background-image: url("assets/president_fist_bg_visible.jpg") !important;
  background-size: cover !important;
  background-position: center 42% !important;
  background-repeat: no-repeat !important;
  opacity: 1 !important;
  filter: none !important;
  transform: scale(1.02) !important;
}

/* 写真を隠しすぎない程度に、左側だけ文字用の薄いベージュを乗せる */
.president-photo-visible-v33::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg,
      rgba(251,247,239,0.76) 0%,
      rgba(251,247,239,0.50) 42%,
      rgba(251,247,239,0.14) 68%,
      rgba(251,247,239,0.02) 100%) !important;
}

/* 既存の白ベールや旧背景指定を無効化 */
.president-photo-visible-v33::after {
  display: none !important;
  content: none !important;
}

.president-photo-visible-v33 > .container {
  position: relative !important;
  z-index: 2 !important;
  background: transparent !important;
  padding-top: 88px !important;
  padding-bottom: 88px !important;
}

/* 代表挨拶の枠・カードを完全削除 */
.president-photo-visible-v33 .greeting-box,
.section.greeting.president-photo-visible-v33 .greeting-box,
.greeting.president-photo-visible-v33 .greeting-box {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* 文字は読みやすく。でも枠は作らない */
.president-photo-visible-v33 .section-tag,
.president-photo-visible-v33 h2,
.president-photo-visible-v33 .mobile-greeting-summary,
.president-photo-visible-v33 .greeting-box p {
  text-shadow:
    0 2px 10px rgba(255,255,255,0.92),
    0 0 18px rgba(255,255,255,0.72) !important;
}

.president-photo-visible-v33 h2 {
  color: #332f2a !important;
}

.president-photo-visible-v33 .greeting-box p,
.president-photo-visible-v33 .mobile-greeting-summary {
  color: #4f4740 !important;
}

/* 古い代表挨拶背景指定を上書き */
.greeting.president-photo-visible-v33,
.president-greeting-bg-only.president-photo-visible-v33,
.president-photo-section.president-photo-visible-v33 {
  background-image: linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
}

/* スマホ */
@media (max-width: 760px) {
  .president-photo-visible-v33,
  .section.greeting.president-photo-visible-v33 {
    min-height: 590px !important;
  }

  .president-photo-visible-v33 .president-bg-photo-layer {
    background-size: cover !important;
    background-position: 58% center !important;
    transform: scale(1.03) !important;
  }

  .president-photo-visible-v33::before {
    background:
      linear-gradient(180deg,
        rgba(251,247,239,0.76) 0%,
        rgba(251,247,239,0.56) 46%,
        rgba(251,247,239,0.16) 78%,
        rgba(251,247,239,0.04) 100%) !important;
  }

  .president-photo-visible-v33 > .container {
    padding-top: 58px !important;
    padding-bottom: 58px !important;
    background: transparent !important;
  }

  .president-photo-visible-v33 .greeting-box {
    padding: 0 !important;
  }
}


/* =========================================================
   v34 Representative greeting background: more body visible
   代表挨拶背景の写真を少し引き、体が映るように調整
========================================================= */
.president-photo-visible-v33 .president-bg-photo-layer {
  background-image: url("assets/president_fist_bg_visible.jpg") !important;
  background-size: cover !important;
  background-position: center 48% !important;
  transform: scale(1.0) !important;
}

@media (max-width: 760px) {
  .president-photo-visible-v33 .president-bg-photo-layer {
    background-position: 58% 50% !important;
    transform: scale(1.0) !important;
  }
}


/* =========================================================
   v36 Representative greeting ambient background
   代表挨拶の写真背景を削除し、雰囲気のいい上品な背景へ
========================================================= */

/* 代表挨拶：写真なし・上品なベージュ系背景 */
.president-photo-visible-v33,
.president-photo-section,
.greeting,
.president-greeting-bg-only,
#representative,
#president-message,
#message-greeting,
.representative-message,
.president-message,
.ceo-message {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  min-height: auto !important;
  background:
    radial-gradient(circle at 14% 18%, rgba(198, 164, 112, 0.18), transparent 30%),
    radial-gradient(circle at 86% 24%, rgba(95, 77, 58, 0.12), transparent 28%),
    linear-gradient(135deg, #fbf7ef 0%, #f3eadf 46%, #e7d7c5 100%) !important;
  background-image:
    radial-gradient(circle at 14% 18%, rgba(198, 164, 112, 0.18), transparent 30%),
    radial-gradient(circle at 86% 24%, rgba(95, 77, 58, 0.12), transparent 28%),
    linear-gradient(135deg, #fbf7ef 0%, #f3eadf 46%, #e7d7c5 100%) !important;
  padding-top: 92px !important;
  padding-bottom: 92px !important;
}

/* 写真レイヤーは完全非表示 */
.president-photo-visible-v33 .president-bg-photo-layer,
.president-bg-photo-layer {
  display: none !important;
  background-image: none !important;
}

/* ほんのり工業感のあるライン背景 */
.president-photo-visible-v33::before,
.president-photo-section::before,
.greeting::before,
.president-greeting-bg-only::before,
#representative::before,
#president-message::before,
#message-greeting::before,
.representative-message::before,
.president-message::before,
.ceo-message::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg, rgba(78, 62, 46, 0.045) 1px, transparent 1px),
    linear-gradient(180deg, rgba(78, 62, 46, 0.035) 1px, transparent 1px),
    linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.38) 48%, transparent 72%) !important;
  background-size: 54px 54px, 54px 54px, 100% 100% !important;
  opacity: 0.72 !important;
}

/* 右側に薄い光の帯を追加 */
.president-photo-visible-v33::after,
.president-photo-section::after,
.greeting::after,
.president-greeting-bg-only::after,
#representative::after,
#president-message::after,
#message-greeting::after,
.representative-message::after,
.president-message::after,
.ceo-message::after {
  content: "" !important;
  position: absolute !important;
  right: -14% !important;
  top: -30% !important;
  width: 58% !important;
  height: 150% !important;
  z-index: 0 !important;
  pointer-events: none !important;
  background:
    radial-gradient(ellipse at center, rgba(255,255,255,0.62), rgba(211,184,145,0.20) 38%, transparent 70%) !important;
  transform: rotate(-8deg) !important;
}

/* 中身は写真前提の白ベールを外しつつ、読みやすさは確保 */
.president-photo-visible-v33 > .container,
.president-photo-section > .container,
.greeting > .container,
.president-greeting-bg-only > .container,
#representative > .container,
#president-message > .container,
#message-greeting > .container,
.representative-message > .container,
.president-message > .container,
.ceo-message > .container {
  position: relative !important;
  z-index: 2 !important;
  background: transparent !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* 代表挨拶の枠はなし */
.president-photo-visible-v33 .greeting-box,
.president-photo-section .greeting-box,
.greeting-box,
.president-greeting-bg-only .greeting-box,
.president-message .greeting-box,
.representative-message .greeting-box,
.ceo-message .greeting-box {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* 文字の見え方を自然に */
.president-photo-visible-v33 .section-tag,
.president-photo-section .section-tag,
.greeting .section-tag,
.president-photo-visible-v33 h2,
.president-photo-section h2,
.greeting h2,
.president-photo-visible-v33 .mobile-greeting-summary,
.president-photo-section .mobile-greeting-summary,
.greeting .mobile-greeting-summary,
.president-photo-visible-v33 .greeting-box p,
.president-photo-section .greeting-box p,
.greeting .greeting-box p {
  text-shadow: 0 1px 10px rgba(255,255,255,0.54) !important;
}

.president-photo-visible-v33 h2,
.president-photo-section h2,
.greeting h2 {
  color: #3c352f !important;
}

.president-photo-visible-v33 .greeting-box p,
.president-photo-section .greeting-box p,
.greeting .greeting-box p,
.president-photo-visible-v33 .mobile-greeting-summary,
.president-photo-section .mobile-greeting-summary,
.greeting .mobile-greeting-summary {
  color: #574d43 !important;
}

/* スマホ */
@media (max-width: 760px) {
  .president-photo-visible-v33,
  .president-photo-section,
  .greeting,
  .president-greeting-bg-only,
  #representative,
  #president-message,
  #message-greeting,
  .representative-message,
  .president-message,
  .ceo-message {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
    background:
      radial-gradient(circle at 16% 12%, rgba(198, 164, 112, 0.18), transparent 34%),
      radial-gradient(circle at 92% 18%, rgba(95, 77, 58, 0.10), transparent 30%),
      linear-gradient(145deg, #fbf7ef 0%, #f3eadf 52%, #e7d7c5 100%) !important;
  }

  .president-photo-visible-v33::before,
  .president-photo-section::before,
  .greeting::before,
  .president-greeting-bg-only::before,
  #representative::before,
  #president-message::before,
  #message-greeting::before,
  .representative-message::before,
  .president-message::before,
  .ceo-message::before {
    background-size: 38px 38px, 38px 38px, 100% 100% !important;
    opacity: 0.55 !important;
  }

  .president-photo-visible-v33::after,
  .president-photo-section::after,
  .greeting::after,
  .president-greeting-bg-only::after,
  #representative::after,
  #president-message::after,
  #message-greeting::after,
  .representative-message::after,
  .president-message::after,
  .ceo-message::after {
    right: -30% !important;
    width: 82% !important;
    opacity: 0.72 !important;
  }
}


/* =========================================================
   v37 TOP logo clean circle / Kurumin circle crop
   TOPロゴの白い切り抜き残りを修正、くるみんロゴを丸切り抜き
========================================================= */

/* TOP 三和技建ロゴ：外側を完全な丸で表示 */
.brand-logo {
  border-radius: 50% !important;
  object-fit: contain !important;
  background: transparent !important;
  padding: 0 !important;
  box-shadow: 0 8px 18px rgba(43,35,28,0.10) !important;
}

/* くるみんロゴ：四角ではなく丸バッジ表示 */
.kurumin img,
.kurumin-badge img,
.hero-kurumin img,
.certification-badge img,
img[src*="kurumin"],
img[src*="kurumi"],
img[src*="kurumin_round_clean"] {
  border-radius: 50% !important;
  object-fit: contain !important;
  background: transparent !important;
  aspect-ratio: 1 / 1 !important;
}

/* くるみんの入れ物側にも丸みを強制 */
.kurumin,
.kurumin-badge,
.hero-kurumin,
.certification-badge {
  border-radius: 999px !important;
  overflow: hidden !important;
}


/* =========================================================
   v38 News background photo: more whole + upper area visible
   新着情報の背景写真を少し引き、写真上部が映るように調整
========================================================= */

/* PC：写真を寄せすぎず、上部が映る位置へ */
@media (min-width: 761px) {
  .news-slide {
    background-size: 100% auto !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
    transform: scale(1.0) !important;
  }

  .news-slide.is-visible {
    opacity: 0.46 !important;
  }

  .news-slideshow {
    background:
      linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  }

  .news-slideshow-overlay {
    background:
      linear-gradient(180deg, rgba(251,247,239,0.62) 0%, rgba(249,244,236,0.54) 34%, rgba(244,236,226,0.58) 74%, rgba(242,232,220,0.72) 100%) !important;
  }
}

/* スマホ：全体感を出しつつ、上側が切れすぎないよう調整 */
@media (max-width: 760px) {
  .news-slide {
    background-size: 94% auto !important;
    background-position: center 10% !important;
    background-repeat: no-repeat !important;
    transform: scale(1.0) !important;
  }

  .news-slide.is-visible {
    opacity: 0.42 !important;
  }

  .news-slideshow {
    background:
      linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  }

  .news-slideshow-overlay {
    background:
      linear-gradient(180deg, rgba(251,247,239,0.66) 0%, rgba(249,244,236,0.58) 34%, rgba(244,236,226,0.62) 74%, rgba(242,232,220,0.76) 100%) !important;
  }
}

/* かなり縦長画面でも上部が見えるよう保険 */
@media (max-width: 430px) {
  .news-slide {
    background-size: 98% auto !important;
    background-position: center 8% !important;
  }
}


/* =========================================================
   v39 News background photo: maximum pullback
   新着情報の背景写真をできる限り引きで表示
========================================================= */

/* PC：写真をかなり引き、上部と全体感を優先 */
@media (min-width: 761px) {
  .news-slide {
    background-size: 82% auto !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
    transform: scale(1.0) !important;
  }

  .news-slide.is-visible {
    opacity: 0.48 !important;
  }

  .news-slideshow {
    background:
      radial-gradient(circle at 50% 18%, rgba(255,255,255,0.42), transparent 42%),
      linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  }

  .news-slideshow-overlay {
    background:
      linear-gradient(180deg, rgba(251,247,239,0.56) 0%, rgba(249,244,236,0.50) 34%, rgba(244,236,226,0.56) 74%, rgba(242,232,220,0.72) 100%) !important;
  }
}

/* スマホ：見切れを減らして、写真の上側と全体を優先 */
@media (max-width: 760px) {
  .news-slide {
    background-size: 82% auto !important;
    background-position: center 6% !important;
    background-repeat: no-repeat !important;
    transform: scale(1.0) !important;
  }

  .news-slide.is-visible {
    opacity: 0.44 !important;
  }

  .news-slideshow {
    background:
      radial-gradient(circle at 50% 18%, rgba(255,255,255,0.40), transparent 44%),
      linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  }

  .news-slideshow-overlay {
    background:
      linear-gradient(180deg, rgba(251,247,239,0.60) 0%, rgba(249,244,236,0.54) 34%, rgba(244,236,226,0.60) 74%, rgba(242,232,220,0.76) 100%) !important;
  }
}

/* 小さめスマホ：さらに少し引く */
@media (max-width: 430px) {
  .news-slide {
    background-size: 78% auto !important;
    background-position: center 6% !important;
  }
}

/* 横幅が広いPCでは写真が大きくなりすぎないように最大感を抑える */
@media (min-width: 1280px) {
  .news-slide {
    background-size: 76% auto !important;
  }
}


/* =========================================================
   v40 TOP main visual replacement
   TOP画をアップロード画像に差し替え
========================================================= */

.hero,
.hero.hero-section,
section.hero {
  position: relative !important;
  min-height: min(820px, 56.25vw) !important;
  background-image: url("assets/top_main_visual_sanwa.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

.hero::before,
.hero::after,
.hero-bg,
.hero-background,
.hero-image,
.hero-overlay,
.hero-grid,
.hero-pattern {
  background-image: none !important;
  background: transparent !important;
  opacity: 0 !important;
}

.hero .hero-copy,
.hero .hero-card,
.hero .hero-text,
.hero .hero-buttons,
.hero .hero-badge,
.hero .hero-kurumin,
.hero .hero-label,
.hero h1,
.hero p {
  display: none !important;
}

.hero .container,
.hero-inner {
  min-height: inherit !important;
}

@media (min-width: 761px) {
  .hero,
  .hero.hero-section,
  section.hero {
    min-height: clamp(520px, 56.25vw, 860px) !important;
    background-size: cover !important;
    background-position: center center !important;
  }
}

@media (max-width: 760px) {
  .hero,
  .hero.hero-section,
  section.hero {
    min-height: 460px !important;
    background-size: cover !important;
    background-position: center center !important;
  }
}

@media (max-width: 430px) {
  .hero,
  .hero.hero-section,
  section.hero {
    min-height: 430px !important;
    background-size: cover !important;
    background-position: center center !important;
  }
}


/* =========================================================
   v41 Mobile buttons horizontal fix
   スマホでボタンが縦並びにならないよう横表示を強制
========================================================= */

@media (max-width: 760px) {
  /* 上部ナビ：横並び2段に固定 */
  .sticky-nav-wrap .nav,
  header .nav,
  .site-header .nav,
  .nav {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    align-items: stretch !important;
    justify-content: center !important;
  }

  .sticky-nav-wrap .nav a,
  header .nav a,
  .site-header .nav a,
  .nav a,
  .nav-cta,
  .mobile-header-tel {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 36px !important;
    padding: 7px 4px !important;
    border-radius: 999px !important;
    font-size: 11.8px !important;
    line-height: 1.12 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }

  /* 下部固定ボタン：横3列を維持 */
  .mobile-call-bar {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
  }

  .mobile-call-bar a {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 42px !important;
    padding: 8px 4px !important;
    font-size: 12px !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    text-align: center !important;
  }

  /* その他のボタングループもスマホでは横並び優先 */
  .hero-buttons,
  .recruit-cta-buttons,
  .news-nav-button-wrap,
  .contact-buttons,
  .cta-buttons {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .hero-buttons .btn,
  .recruit-cta-buttons .btn,
  .news-nav-button,
  .contact-buttons .btn,
  .cta-buttons .btn {
    flex: 1 1 calc(50% - 10px) !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
  }
}

/* 小さいスマホでも横並びを維持 */
@media (max-width: 390px) {
  .sticky-nav-wrap .nav,
  header .nav,
  .site-header .nav,
  .nav {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 5px !important;
  }

  .sticky-nav-wrap .nav a,
  header .nav a,
  .site-header .nav a,
  .nav a,
  .nav-cta,
  .mobile-header-tel {
    min-height: 34px !important;
    padding: 6px 3px !important;
    font-size: 9.5px !important;
  }

  .mobile-call-bar {
    gap: 6px !important;
    padding: 7px !important;
  }

  .mobile-call-bar a {
    font-size: 11px !important;
    min-height: 40px !important;
  }
}


/* =========================================================
   v42 TOP fade visual / news wide / hide top name
   TOP画を少し小さく＋周囲フェードぼかし
   新着情報背景はワイド表示へ戻す
   一番上の社名表記を非表示
========================================================= */

/* 一番上の社名・ロゴ表記は非表示。いきなりTOP画から始まる見え方へ */
.site-header,
.header,
.main-header {
  display: none !important;
}

/* ヘッダーを消した分、上の余白も詰める */
body {
  padding-top: 0 !important;
}

main {
  margin-top: 0 !important;
}

/* TOP画：背景にぼかし、前面に少し小さめの画像をフェード付きで配置 */
.hero,
.hero.hero-section,
section.hero {
  position: relative !important;
  min-height: clamp(560px, 54vw, 820px) !important;
  background:
    linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  background-image:
    linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

/* ぼかし背景 */
.hero::before,
section.hero::before {
  content: "" !important;
  position: absolute !important;
  inset: -28px !important;
  z-index: 0 !important;
  background-image: url("assets/top_main_visual_sanwa.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  filter: blur(20px) saturate(0.98) brightness(1.03) !important;
  opacity: 0.48 !important;
  transform: scale(1.08) !important;
}

/* 前面のTOP画像：少し小さく、周囲をフェード */
.hero::after,
section.hero::after {
  content: "" !important;
  position: absolute !important;
  inset: 34px 42px !important;
  z-index: 1 !important;
  background-image: url("assets/top_main_visual_sanwa.jpg") !important;
  background-size: contain !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  opacity: 1 !important;
  filter: saturate(1.02) contrast(1.01) !important;
  -webkit-mask-image:
    linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%) !important;
  -webkit-mask-composite: source-in !important;
  mask-image:
    linear-gradient(to right, transparent 0%, #000 7%, #000 93%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%) !important;
  mask-composite: intersect !important;
}

/* 既存TOP文字は引き続き非表示 */
.hero .hero-copy,
.hero .hero-card,
.hero .hero-text,
.hero .hero-buttons,
.hero .hero-badge,
.hero .hero-kurumin,
.hero .hero-label,
.hero h1,
.hero p {
  display: none !important;
}

.hero .container,
.hero-inner {
  min-height: inherit !important;
  position: relative !important;
  z-index: 2 !important;
}

/* スマホ：横長画像なので、高さ確保しつつ少し引きで見せる */
@media (max-width: 760px) {
  .hero,
  .hero.hero-section,
  section.hero {
    min-height: 520px !important;
  }

  .hero::before,
  section.hero::before {
    inset: -24px !important;
    filter: blur(18px) saturate(0.98) brightness(1.04) !important;
    opacity: 0.54 !important;
    transform: scale(1.10) !important;
  }

  .hero::after,
  section.hero::after {
    inset: 24px 16px !important;
    background-size: contain !important;
    background-position: center center !important;
    -webkit-mask-image:
      linear-gradient(to right, transparent 0%, #000 5%, #000 95%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 6%, #000 94%, transparent 100%) !important;
    mask-image:
      linear-gradient(to right, transparent 0%, #000 5%, #000 95%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 6%, #000 94%, transparent 100%) !important;
  }
}

@media (max-width: 430px) {
  .hero,
  .hero.hero-section,
  section.hero {
    min-height: 500px !important;
  }

  .hero::after,
  section.hero::after {
    inset: 22px 12px !important;
  }
}

/* 新着情報の背景写真：画面いっぱいワイド表示へ戻す */
.news-slide {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  transform: scale(1.0) !important;
}

.news-slide.is-visible {
  opacity: 0.44 !important;
}

.news-slideshow {
  background:
    linear-gradient(180deg, #fbf7ef 0%, #f2e8dc 100%) !important;
}

.news-slideshow-overlay {
  background:
    linear-gradient(180deg, rgba(251,247,239,0.64) 0%, rgba(249,244,236,0.54) 28%, rgba(244,236,226,0.56) 74%, rgba(242,232,220,0.72) 100%) !important;
}

/* スマホの新着情報もワイドに */
@media (max-width: 760px) {
  .news-slide {
    background-size: cover !important;
    background-position: center center !important;
  }

  .news-slide.is-visible {
    opacity: 0.40 !important;
  }

  .news-slideshow-overlay {
    background:
      linear-gradient(180deg, rgba(251,247,239,0.68) 0%, rgba(249,244,236,0.58) 28%, rgba(244,236,226,0.62) 74%, rgba(242,232,220,0.76) 100%) !important;
  }
}


/* =========================================================
   v43 TOP visual side extension
   TOP画のサイズ感はそのまま、左右余白を画像の延長風に調整
========================================================= */

/* TOP全体の背景も画像ベースにして、左右が浮かないようにする */
.hero,
.hero.hero-section,
section.hero {
  background:
    url("assets/top_main_visual_sanwa.jpg") center center / cover no-repeat !important;
  background-image:
    url("assets/top_main_visual_sanwa.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
}

/* 背面に同じ画像を大きく敷いて、左右の余白を自然な延長にする */
.hero::before,
section.hero::before {
  content: "" !important;
  position: absolute !important;
  inset: -38px !important;
  z-index: 0 !important;
  background-image: url("assets/top_main_visual_sanwa.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  filter: blur(16px) saturate(1.05) contrast(1.03) brightness(1.02) !important;
  opacity: 0.92 !important;
  transform: scale(1.10) !important;
}

/* 前面のTOP画は今のサイズ感をキープ */
.hero::after,
section.hero::after {
  content: "" !important;
  position: absolute !important;
  inset: 34px 42px !important;
  z-index: 1 !important;
  background-image: url("assets/top_main_visual_sanwa.jpg") !important;
  background-size: contain !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  opacity: 1 !important;
  filter: saturate(1.02) contrast(1.01) !important;
  -webkit-mask-image:
    linear-gradient(to right, transparent 0%, #000 5.5%, #000 94.5%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 7%, #000 93%, transparent 100%) !important;
  -webkit-mask-composite: source-in !important;
  mask-image:
    linear-gradient(to right, transparent 0%, #000 5.5%, #000 94.5%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, #000 7%, #000 93%, transparent 100%) !important;
  mask-composite: intersect !important;
}

/* さらに左右だけ自然につなぐ薄い光のなじませ */
.hero .container::before,
.hero-inner::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg,
      rgba(251,247,239,0.10) 0%,
      transparent 14%,
      transparent 86%,
      rgba(251,247,239,0.10) 100%) !important;
}

/* スマホでもメイン画像のサイズ感は保ち、左右を同画像でなじませる */
@media (max-width: 760px) {
  .hero::before,
  section.hero::before {
    inset: -34px !important;
    filter: blur(14px) saturate(1.05) contrast(1.03) brightness(1.03) !important;
    opacity: 0.94 !important;
    transform: scale(1.12) !important;
  }

  .hero::after,
  section.hero::after {
    inset: 24px 16px !important;
    background-size: contain !important;
    background-position: center center !important;
    -webkit-mask-image:
      linear-gradient(to right, transparent 0%, #000 4%, #000 96%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 6%, #000 94%, transparent 100%) !important;
    mask-image:
      linear-gradient(to right, transparent 0%, #000 4%, #000 96%, transparent 100%),
      linear-gradient(to bottom, transparent 0%, #000 6%, #000 94%, transparent 100%) !important;
  }
}

@media (max-width: 430px) {
  .hero::after,
  section.hero::after {
    inset: 22px 12px !important;
  }
}


/* =========================================================
   v44 TOP outpaint blend
   TOP画の外側に架空背景を足して自然に拡張
========================================================= */

.hero,
.hero.hero-section,
section.hero {
  position: relative !important;
  min-height: clamp(560px, 56.25vw, 860px) !important;
  background-image: url("assets/top_main_visual_outpaint_blend.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

/* 前回のぼかし背景・前面画像レイヤーはOFF */
.hero::before,
.hero::after,
section.hero::before,
section.hero::after {
  display: none !important;
  content: none !important;
  background: none !important;
  opacity: 0 !important;
}

/* TOP内の既存文字・ボタンは引き続き非表示 */
.hero .hero-copy,
.hero .hero-card,
.hero .hero-text,
.hero .hero-buttons,
.hero .hero-badge,
.hero .hero-kurumin,
.hero .hero-label,
.hero h1,
.hero p {
  display: none !important;
}

@media (max-width: 760px) {
  .hero,
  .hero.hero-section,
  section.hero {
    min-height: 500px !important;
    background-size: cover !important;
    background-position: center center !important;
  }
}

@media (max-width: 430px) {
  .hero,
  .hero.hero-section,
  section.hero {
    min-height: 470px !important;
    background-position: center center !important;
  }
}


/* =========================================================
   v45 TOP final visual replacement
   サイズ合わせ済みのTOP画像をそのまま反映
========================================================= */

.hero,
.hero.hero-section,
section.hero {
  position: relative !important;
  min-height: clamp(560px, 56.25vw, 860px) !important;
  background-image: url("assets/top_main_visual_final.jpg") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

.hero::before,
.hero::after,
section.hero::before,
section.hero::after {
  display: none !important;
  content: none !important;
  background: none !important;
  opacity: 0 !important;
}

.hero .hero-copy,
.hero .hero-card,
.hero .hero-text,
.hero .hero-buttons,
.hero .hero-badge,
.hero .hero-kurumin,
.hero .hero-label,
.hero h1,
.hero p {
  display: none !important;
}

@media (max-width: 760px) {
  .hero,
  .hero.hero-section,
  section.hero {
    min-height: 500px !important;
    background-size: cover !important;
    background-position: center center !important;
  }
}

@media (max-width: 430px) {
  .hero,
  .hero.hero-section,
  section.hero {
    min-height: 470px !important;
    background-position: center center !important;
  }
}


/* =========================================================
   v46 Whole site color matching to TOP visual
   TOP画に合わせて、HP全体を生成り・深緑・金茶・赤茶・墨色へ統一
========================================================= */

:root {
  --sanwa-paper: #fbf1d6;
  --sanwa-paper-2: #f6e3b7;
  --sanwa-cream: #fff8e7;
  --sanwa-gold: #c58a24;
  --sanwa-gold-soft: #e4bd68;
  --sanwa-green: #2f6d46;
  --sanwa-green-deep: #1f4f39;
  --sanwa-red: #b83a24;
  --sanwa-ink: #241f18;
  --sanwa-brown: #6f4f32;
  --sanwa-line: rgba(75, 55, 35, 0.18);
}

/* 全体背景 */
html,
body {
  background:
    radial-gradient(circle at 12% 8%, rgba(228,189,104,0.18), transparent 30%),
    radial-gradient(circle at 88% 12%, rgba(47,109,70,0.12), transparent 32%),
    linear-gradient(180deg, var(--sanwa-paper) 0%, #f7e7c2 42%, #efe0bd 100%) !important;
  color: var(--sanwa-ink) !important;
}

/* セクション全体の空気感 */
.section,
.message-strip,
.about,
.service,
.works,
.recruit,
.company,
.contact-section,
.news-section {
  background:
    radial-gradient(circle at 18% 14%, rgba(228,189,104,0.13), transparent 30%),
    radial-gradient(circle at 88% 18%, rgba(47,109,70,0.09), transparent 32%),
    linear-gradient(135deg, rgba(255,248,231,0.96) 0%, rgba(246,227,183,0.88) 100%) !important;
}

/* 交互に少しだけ緑を足して、TOP画の上部と馴染ませる */
#strengths,
.strengths,
.service,
.company,
.greeting {
  background:
    radial-gradient(circle at 82% 12%, rgba(47,109,70,0.16), transparent 34%),
    radial-gradient(circle at 18% 10%, rgba(197,138,36,0.15), transparent 30%),
    linear-gradient(135deg, #fff6df 0%, #f3e0b3 58%, #e7d3a7 100%) !important;
}

/* うっすら和紙・刷毛っぽいライン */
.section::before,
.news-section::before,
.message-strip::before,
.greeting::before {
  background:
    linear-gradient(90deg, rgba(36,31,24,0.035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(36,31,24,0.025) 1px, transparent 1px),
    linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.28) 48%, transparent 74%) !important;
  background-size: 56px 56px, 56px 56px, 100% 100% !important;
}

/* 見出し */
h1, h2, h3,
.section-title,
.message-headline {
  color: #2b251d !important;
  letter-spacing: 0.02em !important;
}

.section-tag,
.eyebrow,
.label,
small {
  color: var(--sanwa-green-deep) !important;
  letter-spacing: 0.16em !important;
}

/* カード類 */
.card,
.strength-card,
.service-card,
.work-card,
.company-card,
.news-item,
.recruit-card,
.contact-card,
.info-card,
.feature-card,
.result-card {
  background:
    linear-gradient(145deg, rgba(255,248,231,0.94) 0%, rgba(246,227,183,0.82) 100%) !important;
  border: 1px solid rgba(111,79,50,0.18) !important;
  box-shadow: 0 16px 34px rgba(64,45,27,0.10) !important;
}

/* カードの角・線をTOP画のやわらかさに合わせる */
.card,
.strength-card,
.service-card,
.work-card,
.company-card,
.news-item,
.recruit-card,
.contact-card {
  border-radius: 24px !important;
}

/* ボタン */
.btn,
.button,
.nav a,
.nav-cta,
.news-nav-button,
.work-link,
.more-button,
.contact-buttons a,
.hero-buttons a,
.recruit-cta-buttons a {
  background: linear-gradient(135deg, #f8ecd2 0%, #e7c98d 100%) !important;
  color: #2c241c !important;
  border: 1px solid rgba(111,79,50,0.22) !important;
  box-shadow: 0 10px 22px rgba(64,45,27,0.10) !important;
}

.btn:hover,
.button:hover,
.nav a:hover,
.news-nav-button:hover,
.work-link:hover,
.more-button:hover,
.contact-buttons a:hover {
  background: linear-gradient(135deg, #2f6d46 0%, #1f4f39 100%) !important;
  color: #fff8e7 !important;
  border-color: rgba(47,109,70,0.30) !important;
}

/* 重要ボタンは赤茶・金茶寄り */
.btn-primary,
.primary,
.contact-primary,
.nav-cta,
.mobile-call-bar a:first-child {
  background: linear-gradient(135deg, #b83a24 0%, #7c2c20 100%) !important;
  color: #fff8e7 !important;
  border-color: rgba(184,58,36,0.32) !important;
}

/* 上部ナビ・固定ナビ */
.sticky-nav-wrap,
.mobile-call-bar {
  background: rgba(255,248,231,0.86) !important;
  border: 1px solid rgba(111,79,50,0.16) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  box-shadow: 0 12px 30px rgba(64,45,27,0.12) !important;
}

.sticky-nav-wrap .nav a {
  background: rgba(255,248,231,0.82) !important;
  color: #332a21 !important;
  border: 1px solid rgba(111,79,50,0.18) !important;
}

.sticky-nav-wrap .nav a:hover {
  background: var(--sanwa-green-deep) !important;
  color: var(--sanwa-cream) !important;
}

/* 下部固定ボタン */
.mobile-call-bar a {
  background: linear-gradient(135deg, #6f4f32 0%, #38281c 100%) !important;
  color: #fff8e7 !important;
}

.mobile-call-bar a:nth-child(2) {
  background: linear-gradient(135deg, #2f6d46 0%, #1f4f39 100%) !important;
}

.mobile-call-bar a:nth-child(3) {
  background: linear-gradient(135deg, #b83a24 0%, #7c2c20 100%) !important;
}

/* 新着情報：TOP画に合わせたワイド背景の馴染み */
.news-section {
  background:
    linear-gradient(180deg, #fbf1d6 0%, #f0d8a9 100%) !important;
}

.news-slideshow {
  background:
    radial-gradient(circle at 18% 12%, rgba(197,138,36,0.20), transparent 34%),
    radial-gradient(circle at 82% 14%, rgba(47,109,70,0.16), transparent 34%),
    linear-gradient(180deg, #fbf1d6 0%, #f0d8a9 100%) !important;
}

.news-slideshow-overlay {
  background:
    linear-gradient(180deg,
      rgba(251,241,214,0.58) 0%,
      rgba(246,227,183,0.50) 32%,
      rgba(240,216,169,0.54) 76%,
      rgba(231,204,151,0.70) 100%) !important;
}

.news-item time {
  color: var(--sanwa-brown) !important;
}

.news-item .tag,
.news-tag,
.badge {
  background: rgba(197,138,36,0.22) !important;
  color: #5a3c20 !important;
  border: 1px solid rgba(197,138,36,0.24) !important;
}

/* 施工実績 */
.work-card,
.result-card,
.works-card {
  background:
    linear-gradient(145deg, rgba(255,248,231,0.95) 0%, rgba(236,218,179,0.88) 100%) !important;
}

.work-card h3,
.result-card h3 {
  color: #32271e !important;
}

.work-link,
.result-card a,
.work-card a {
  color: #fff8e7 !important;
  background: linear-gradient(135deg, #2f6d46 0%, #1f4f39 100%) !important;
}

/* MESSAGE */
.message-strip {
  background:
    radial-gradient(circle at 15% 10%, rgba(197,138,36,0.17), transparent 30%),
    radial-gradient(circle at 88% 22%, rgba(47,109,70,0.13), transparent 30%),
    linear-gradient(135deg, #fff7df 0%, #f2dcaa 100%) !important;
}

.message-headline {
  color: #2f261d !important;
}

.message-strip .lead {
  color: #5a4a38 !important;
}

/* 代表挨拶 */
.greeting {
  background:
    radial-gradient(circle at 14% 18%, rgba(197,138,36,0.18), transparent 30%),
    radial-gradient(circle at 86% 24%, rgba(47,109,70,0.14), transparent 28%),
    linear-gradient(135deg, #fff6df 0%, #f2dcaa 54%, #dfc38d 100%) !important;
}

/* フォーム */
input,
textarea,
select {
  background: rgba(255,248,231,0.92) !important;
  border: 1px solid rgba(111,79,50,0.24) !important;
  color: var(--sanwa-ink) !important;
}

input:focus,
textarea:focus,
select:focus {
  outline: 2px solid rgba(47,109,70,0.32) !important;
  border-color: rgba(47,109,70,0.44) !important;
}

/* フッター */
.site-footer,
.footer {
  background:
    radial-gradient(circle at 16% 18%, rgba(197,138,36,0.15), transparent 32%),
    linear-gradient(135deg, #201912 0%, #2d241a 52%, #1f4f39 145%) !important;
  color: #fff8e7 !important;
}

.site-footer a,
.footer a {
  color: #f5d991 !important;
}

/* 罫線 */
hr,
.divider,
.section-divider {
  border-color: rgba(111,79,50,0.18) !important;
}

/* スマホで濃くなりすぎないよう微調整 */
@media (max-width: 760px) {
  .section,
  .message-strip,
  .about,
  .service,
  .works,
  .recruit,
  .company,
  .contact-section,
  .news-section {
    background:
      radial-gradient(circle at 18% 10%, rgba(228,189,104,0.12), transparent 30%),
      radial-gradient(circle at 88% 14%, rgba(47,109,70,0.08), transparent 32%),
      linear-gradient(135deg, #fff7df 0%, #f2dcaa 100%) !important;
  }

  .card,
  .strength-card,
  .service-card,
  .work-card,
  .company-card,
  .news-item,
  .recruit-card,
  .contact-card {
    background: rgba(255,248,231,0.92) !important;
  }

  .news-slideshow-overlay {
    background:
      linear-gradient(180deg,
        rgba(251,241,214,0.64) 0%,
        rgba(246,227,183,0.56) 34%,
        rgba(240,216,169,0.60) 76%,
        rgba(231,204,151,0.76) 100%) !important;
  }
}


/* =========================================================
   v47 Mobile nav 2x5 horizontal text compact
   スマホナビを横文字固定・2段×5列・邪魔しないサイズへ
========================================================= */

@media (max-width: 760px) {
  /* スマホ上部ナビ全体をコンパクトに */
  .sticky-nav-wrap,
  .mobile-nav-wrap,
  .floating-nav,
  .top-nav-wrap {
    position: sticky !important;
    top: 0 !important;
    z-index: 999 !important;
    padding: 6px 8px !important;
    margin: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    background: rgba(255, 248, 231, 0.90) !important;
    border-bottom: 1px solid rgba(111,79,50,0.15) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  /* ナビは必ず5列×2段 */
  .sticky-nav-wrap .nav,
  .mobile-nav-wrap .nav,
  .floating-nav .nav,
  .top-nav-wrap .nav,
  nav.nav,
  .nav {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    grid-auto-rows: 34px !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    align-items: stretch !important;
    justify-content: center !important;
    overflow: visible !important;
  }

  /* ボタン文字を横文字固定 */
  .sticky-nav-wrap .nav a,
  .mobile-nav-wrap .nav a,
  .floating-nav .nav a,
  .top-nav-wrap .nav a,
  nav.nav a,
  .nav a,
  .nav-cta,
  .mobile-header-tel {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    direction: ltr !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    min-width: 0 !important;

    padding: 0 3px !important;
    margin: 0 !important;
    border-radius: 999px !important;

    font-size: 10px !important;
    line-height: 1 !important;
    letter-spacing: -0.02em !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    text-align: center !important;
  }

  /* 「お問い合わせ」など長めの文字も横で入るよう微調整 */
  .sticky-nav-wrap .nav a[href*="contact"],
  .sticky-nav-wrap .nav a[href="#contact"],
  .sticky-nav-wrap .nav a[href="contact.html"],
  .nav a[href*="contact"],
  .nav a[href="#contact"],
  .nav a[href="contact.html"] {
    font-size: 9.2px !important;
    letter-spacing: -0.06em !important;
  }

  /* TOP画に被りすぎないよう、ナビ下の余白を最小化 */
  .sticky-nav-inner,
  .nav-inner,
  .mobile-nav-inner {
    padding: 0 !important;
    margin: 0 !important;
  }

  /* ヘッダー内で縦向き化していた場合の保険 */
  .sticky-nav-wrap *,
  .mobile-nav-wrap *,
  .floating-nav *,
  .top-nav-wrap *,
  nav.nav *,
  .nav * {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
  }
}

/* 小さめスマホでも2段×5列を維持 */
@media (max-width: 390px) {
  .sticky-nav-wrap,
  .mobile-nav-wrap,
  .floating-nav,
  .top-nav-wrap {
    padding: 5px 6px !important;
  }

  .sticky-nav-wrap .nav,
  .mobile-nav-wrap .nav,
  .floating-nav .nav,
  .top-nav-wrap .nav,
  nav.nav,
  .nav {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    grid-auto-rows: 32px !important;
    gap: 5px !important;
  }

  .sticky-nav-wrap .nav a,
  .mobile-nav-wrap .nav a,
  .floating-nav .nav a,
  .top-nav-wrap .nav a,
  nav.nav a,
  .nav a,
  .nav-cta,
  .mobile-header-tel {
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    padding: 0 2px !important;
    font-size: 9px !important;
    letter-spacing: -0.06em !important;
    white-space: nowrap !important;
  }

  .sticky-nav-wrap .nav a[href*="contact"],
  .sticky-nav-wrap .nav a[href="#contact"],
  .sticky-nav-wrap .nav a[href="contact.html"],
  .nav a[href*="contact"],
  .nav a[href="#contact"],
  .nav a[href="contact.html"] {
    font-size: 8.4px !important;
    letter-spacing: -0.08em !important;
  }
}

/* 下部固定ボタンも横並びのまま邪魔しにくく */
@media (max-width: 760px) {
  .mobile-call-bar {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
    padding: 7px !important;
    left: 10px !important;
    right: 10px !important;
    bottom: 9px !important;
    max-height: 58px !important;
  }

  .mobile-call-bar a {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    padding: 0 4px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
  }
}


/* =========================================================
   v48 Mobile nav screenshot style only
   スマホの上部ナビボタンだけ、参考スクショ風に修正
   1段目5個、2段目4個 / 横文字 / 丸み / 余白あり
========================================================= */

@media (max-width: 760px) {
  /* ナビエリア全体 */
  .sticky-nav-wrap,
  .mobile-nav-wrap,
  .floating-nav,
  .top-nav-wrap {
    display: block !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 999 !important;
    padding: 12px 18px 14px !important;
    margin: 0 !important;
    background: rgba(255, 248, 231, 0.96) !important;
    border-bottom: 1px solid rgba(111, 79, 50, 0.12) !important;
    box-shadow: 0 6px 18px rgba(45, 35, 24, 0.06) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    overflow: visible !important;
  }

  .sticky-nav-inner,
  .nav-inner,
  .mobile-nav-inner {
    padding: 0 !important;
    margin: 0 auto !important;
    width: 100% !important;
    max-width: 680px !important;
  }

  /* スクショみたいに横文字の丸ボタンを折り返し */
  .sticky-nav-wrap .nav,
  .mobile-nav-wrap .nav,
  .floating-nav .nav,
  .top-nav-wrap .nav,
  nav.nav,
  .nav {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 12px 12px !important;
    width: 100% !important;
    max-width: 680px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  /* 5個入る幅。スクショのサイズ感に近づける */
  .sticky-nav-wrap .nav a,
  .mobile-nav-wrap .nav a,
  .floating-nav .nav a,
  .top-nav-wrap .nav a,
  nav.nav a,
  .nav a,
  .nav-cta,
  .mobile-header-tel {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    direction: ltr !important;

    flex: 0 0 calc((100% - 48px) / 5) !important;
    width: calc((100% - 48px) / 5) !important;
    min-width: 0 !important;
    max-width: none !important;

    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;

    display: flex !important;
    justify-content: center !important;
    align-items: center !important;

    padding: 0 8px !important;
    margin: 0 !important;
    border-radius: 999px !important;

    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    text-align: center !important;

    color: #183248 !important;
    background: rgba(245, 250, 253, 0.96) !important;
    border: 2px solid rgba(185, 213, 232, 0.72) !important;
    box-shadow: 0 4px 12px rgba(35, 58, 78, 0.06) !important;
  }

  /* 9個目までなら、2段目は自然に4個になる */
  .sticky-nav-wrap .nav a:nth-child(n+6),
  .mobile-nav-wrap .nav a:nth-child(n+6),
  .floating-nav .nav a:nth-child(n+6),
  .top-nav-wrap .nav a:nth-child(n+6),
  nav.nav a:nth-child(n+6),
  .nav a:nth-child(n+6) {
    margin-top: 0 !important;
  }

  /* お問い合わせは長いので、横文字のまま少しだけ小さく */
  .sticky-nav-wrap .nav a[href*="contact"],
  .sticky-nav-wrap .nav a[href="#contact"],
  .sticky-nav-wrap .nav a[href="contact.html"],
  .nav a[href*="contact"],
  .nav a[href="#contact"],
  .nav a[href="contact.html"] {
    font-size: 14px !important;
    letter-spacing: -0.04em !important;
  }

  /* 縦文字化していた指定を完全に潰す */
  .sticky-nav-wrap *,
  .mobile-nav-wrap *,
  .floating-nav *,
  .top-nav-wrap *,
  nav.nav *,
  .nav * {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
  }
}

/* iPhone幅が小さい時だけ少しコンパクト */
@media (max-width: 430px) {
  .sticky-nav-wrap,
  .mobile-nav-wrap,
  .floating-nav,
  .top-nav-wrap {
    padding: 10px 14px 12px !important;
  }

  .sticky-nav-wrap .nav,
  .mobile-nav-wrap .nav,
  .floating-nav .nav,
  .top-nav-wrap .nav,
  nav.nav,
  .nav {
    gap: 10px 10px !important;
  }

  .sticky-nav-wrap .nav a,
  .mobile-nav-wrap .nav a,
  .floating-nav .nav a,
  .top-nav-wrap .nav a,
  nav.nav a,
  .nav a,
  .nav-cta,
  .mobile-header-tel {
    flex-basis: calc((100% - 40px) / 5) !important;
    width: calc((100% - 40px) / 5) !important;
    height: 50px !important;
    min-height: 50px !important;
    max-height: 50px !important;
    padding: 0 5px !important;
    font-size: 14px !important;
    border-width: 1.6px !important;
  }

  .sticky-nav-wrap .nav a[href*="contact"],
  .sticky-nav-wrap .nav a[href="#contact"],
  .sticky-nav-wrap .nav a[href="contact.html"],
  .nav a[href*="contact"],
  .nav a[href="#contact"],
  .nav a[href="contact.html"] {
    font-size: 12.5px !important;
    letter-spacing: -0.06em !important;
  }
}

/* かなり狭い端末でも横文字は維持 */
@media (max-width: 375px) {
  .sticky-nav-wrap .nav,
  .mobile-nav-wrap .nav,
  .floating-nav .nav,
  .top-nav-wrap .nav,
  nav.nav,
  .nav {
    gap: 8px 8px !important;
  }

  .sticky-nav-wrap .nav a,
  .mobile-nav-wrap .nav a,
  .floating-nav .nav a,
  .top-nav-wrap .nav a,
  nav.nav a,
  .nav a,
  .nav-cta,
  .mobile-header-tel {
    flex-basis: calc((100% - 32px) / 5) !important;
    width: calc((100% - 32px) / 5) !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    font-size: 12.5px !important;
    padding: 0 3px !important;
  }

  .sticky-nav-wrap .nav a[href*="contact"],
  .sticky-nav-wrap .nav a[href="#contact"],
  .sticky-nav-wrap .nav a[href="contact.html"],
  .nav a[href*="contact"],
  .nav a[href="#contact"],
  .nav a[href="contact.html"] {
    font-size: 11px !important;
  }
}


/* =========================================================
   v49 Mobile nav true 5x2 + mobile TOP no crop
   スマホ上部ナビを本当に5列×2段へ固定
   TOP画はスマホで横が見切れないよう全体表示
========================================================= */

@media (max-width: 760px) {
  /* ナビ外枠：大きすぎず、でも押し潰さない */
  .sticky-nav-wrap {
    display: block !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 999 !important;
    padding: 8px 10px 9px !important;
    margin: 0 !important;
    background: rgba(255, 248, 231, 0.96) !important;
    border-bottom: 1px solid rgba(111, 79, 50, 0.12) !important;
    box-shadow: 0 5px 14px rgba(45, 35, 24, 0.05) !important;
    overflow: visible !important;
  }

  .sticky-nav-wrap .container,
  .sticky-nav-inner,
  .container.sticky-nav-inner {
    width: 100% !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 auto !important;
  }

  /* ここで完全に5列×2段へ固定 */
  .sticky-nav-wrap .nav {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    grid-auto-rows: 38px !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    overflow: visible !important;
    white-space: normal !important;
  }

  /* ボタンを横文字固定。flex指定を完全解除 */
  .sticky-nav-wrap .nav a,
  .sticky-nav-wrap .nav a:visited,
  .sticky-nav-wrap .nav .nav-cta,
  .sticky-nav-wrap .nav a.nav-cta,
  .sticky-nav-wrap .nav .mobile-header-tel,
  .sticky-nav-wrap .nav a.mobile-header-tel {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    direction: ltr !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    flex: none !important;
    flex-basis: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;

    padding: 0 2px !important;
    margin: 0 !important;
    border-radius: 999px !important;

    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -0.04em !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    text-align: center !important;

    color: #183248 !important;
    background: rgba(245, 250, 253, 0.96) !important;
    border: 1.5px solid rgba(185, 213, 232, 0.78) !important;
    box-shadow: 0 3px 9px rgba(35, 58, 78, 0.05) !important;
  }

  /* 長めの文字だけさらに横に収める */
  .sticky-nav-wrap .nav a[href*="contact"],
  .sticky-nav-wrap .nav a[href="#contact"],
  .sticky-nav-wrap .nav a[href="contact.html"],
  .sticky-nav-wrap .nav a[href="#contact-form"],
  .sticky-nav-wrap .nav a[href*="news"],
  .sticky-nav-wrap .nav a[href="#news"] {
    font-size: 9.6px !important;
    letter-spacing: -0.08em !important;
  }

  /* どこかで縦書き指定が残っていても潰す */
  .sticky-nav-wrap,
  .sticky-nav-wrap *,
  .sticky-nav-wrap .nav,
  .sticky-nav-wrap .nav * {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
  }

  /* TOP画：スマホでは横が見切れないよう全体表示 */
  .hero,
  .hero.hero-section,
  section.hero {
    background-image: url("assets/top_main_visual_final.jpg") !important;
    background-size: contain !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
    background-color: #fbf1d6 !important;

    height: 56.25vw !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .hero-bg,
  .hero-overlay,
  .hero::before,
  .hero::after,
  section.hero::before,
  section.hero::after {
    display: none !important;
    opacity: 0 !important;
    content: none !important;
    background: none !important;
  }

  .hero .container,
  .hero-inner,
  .hero-content {
    min-height: 0 !important;
    height: 56.25vw !important;
    padding: 0 !important;
    margin: 0 auto !important;
  }
}

/* iPhone SEなどでも2段×5列を死守 */
@media (max-width: 390px) {
  .sticky-nav-wrap {
    padding: 7px 8px 8px !important;
  }

  .sticky-nav-wrap .nav {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    grid-auto-rows: 35px !important;
    gap: 5px !important;
  }

  .sticky-nav-wrap .nav a,
  .sticky-nav-wrap .nav a:visited,
  .sticky-nav-wrap .nav .nav-cta,
  .sticky-nav-wrap .nav a.nav-cta,
  .sticky-nav-wrap .nav .mobile-header-tel,
  .sticky-nav-wrap .nav a.mobile-header-tel {
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
    font-size: 9.8px !important;
    letter-spacing: -0.06em !important;
    padding: 0 1px !important;
    border-width: 1.2px !important;
  }

  .sticky-nav-wrap .nav a[href*="contact"],
  .sticky-nav-wrap .nav a[href="#contact"],
  .sticky-nav-wrap .nav a[href="contact.html"],
  .sticky-nav-wrap .nav a[href="#contact-form"],
  .sticky-nav-wrap .nav a[href*="news"],
  .sticky-nav-wrap .nav a[href="#news"] {
    font-size: 8.5px !important;
    letter-spacing: -0.10em !important;
  }
}


/* =========================================================
   v50 Mobile nav clean + TOP no crop
   既存スマホナビを使わず、スマホ専用ナビを新設
   TOP画はスマホで横見切れなし
========================================================= */

/* PCでは新しいスマホ専用ナビとスマホ直表示画像は非表示 */
.mobile-nav-final-clean,
.top-visual-mobile-direct {
  display: none !important;
}

@media (max-width: 760px) {
  /* 既存の壊れたスマホナビは完全に隠す */
  .sticky-nav-wrap {
    display: none !important;
  }

  /* スマホ専用ナビ：2段×5列で固定 */
  .mobile-nav-final-clean {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 10px 12px 11px !important;
    box-sizing: border-box !important;
    background: rgba(255, 248, 231, 0.97) !important;
    border-bottom: 1px solid rgba(111, 79, 50, 0.12) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 9999 !important;
    box-shadow: 0 5px 14px rgba(45, 35, 24, 0.05) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  .mobile-nav-final-clean a {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    direction: ltr !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    width: 100% !important;
    min-width: 0 !important;

    padding: 0 3px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    border-radius: 999px !important;

    background: rgba(245, 250, 253, 0.98) !important;
    border: 1.5px solid rgba(185, 213, 232, 0.82) !important;
    color: #183248 !important;
    box-shadow: 0 3px 9px rgba(35, 58, 78, 0.05) !important;

    font-size: 11.8px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -0.06em !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    text-align: center !important;
    text-decoration: none !important;
  }

  .mobile-nav-final-clean a:nth-child(10) {
    font-size: 9.6px !important;
    letter-spacing: -0.10em !important;
  }

  .mobile-nav-final-clean,
  .mobile-nav-final-clean * {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
  }

  /* スマホTOP画：背景ではなく画像として表示。横見切れなし */
  section.hero,
  .hero,
  .hero.hero-section {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #fbf1d6 !important;
    background-image: none !important;
    overflow: hidden !important;
  }

  .top-visual-mobile-direct {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: center top !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  /* 既存hero内の背景や文字はスマホでは消す */
  section.hero .hero-bg,
  section.hero .hero-overlay,
  section.hero .hero-content,
  section.hero .container,
  section.hero::before,
  section.hero::after,
  .hero::before,
  .hero::after {
    display: none !important;
    opacity: 0 !important;
    content: none !important;
    background: none !important;
  }
}

/* 小さいiPhoneでも2段×5列を維持 */
@media (max-width: 390px) {
  .mobile-nav-final-clean {
    gap: 6px !important;
    padding: 8px 8px 9px !important;
  }

  .mobile-nav-final-clean a {
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    font-size: 10.2px !important;
    letter-spacing: -0.08em !important;
    padding: 0 2px !important;
  }

  .mobile-nav-final-clean a:nth-child(10) {
    font-size: 8.5px !important;
    letter-spacing: -0.10em !important;
  }
}


/* =========================================================
   v52 Mobile final tuning
   TOP画をスマホで少し縦長に
   ナビ追従を修正
   新着情報背景をスマホでさらに引き
   募集要項の横幅調整
   問い合わせボタン文字改行防止
========================================================= */

/* PCではスマホ専用ナビ・スマホ専用TOP画像は非表示 */
.mobile-nav-final-clean,
.top-visual-mobile-direct {
  display: none !important;
}

@media (max-width: 760px) {
  /* 固定ナビ分だけ本文を下げる */
  html {
    scroll-padding-top: 96px !important;
  }

  body {
    padding-top: 94px !important;
  }

  /* 壊れやすかった既存ナビはスマホでは使わない */
  .sticky-nav-wrap {
    display: none !important;
  }

  /* スマホ専用ナビ：固定追従・2段×5列 */
  .mobile-nav-final-clean {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 7px !important;

    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 99999 !important;

    width: 100% !important;
    box-sizing: border-box !important;
    padding: 9px 10px 10px !important;

    background: rgba(255, 248, 231, 0.97) !important;
    border-bottom: 1px solid rgba(111, 79, 50, 0.12) !important;
    box-shadow: 0 5px 14px rgba(45, 35, 24, 0.06) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  .mobile-nav-final-clean a {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    direction: ltr !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;

    padding: 0 2px !important;
    margin: 0 !important;
    border-radius: 999px !important;

    background: rgba(245, 250, 253, 0.98) !important;
    border: 1.5px solid rgba(185, 213, 232, 0.82) !important;
    color: #183248 !important;
    box-shadow: 0 3px 9px rgba(35, 58, 78, 0.05) !important;

    font-size: 11.4px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -0.055em !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    text-align: center !important;
    text-decoration: none !important;
  }

  .mobile-nav-final-clean a:nth-child(10) {
    font-size: 9.4px !important;
    letter-spacing: -0.095em !important;
  }

  .mobile-nav-final-clean,
  .mobile-nav-final-clean * {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
  }

  /* TOP画：横幅はそのまま、スマホでは少し縦長に表示 */
  section.hero,
  .hero,
  .hero.hero-section {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #fbf1d6 !important;
    background-image: none !important;
    overflow: hidden !important;
  }

  .top-visual-mobile-direct {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: clamp(285px, 78vw, 360px) !important;
    object-fit: fill !important;
    object-position: center top !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  section.hero .hero-bg,
  section.hero .hero-overlay,
  section.hero .hero-content,
  section.hero .container,
  section.hero::before,
  section.hero::after,
  .hero::before,
  .hero::after {
    display: none !important;
    opacity: 0 !important;
    content: none !important;
    background: none !important;
  }

  /* 新着情報：スマホ背景写真はさらに引き気味 */
  .news-slide {
    background-size: 62% auto !important;
    background-position: center 8% !important;
    background-repeat: no-repeat !important;
    transform: scale(1.0) !important;
  }

  .news-slide.is-visible {
    opacity: 0.46 !important;
  }

  .news-slideshow {
    background:
      radial-gradient(circle at 50% 16%, rgba(255,255,255,0.42), transparent 46%),
      linear-gradient(180deg, #fbf1d6 0%, #f0d8a9 100%) !important;
  }

  .news-slideshow-overlay {
    background:
      linear-gradient(180deg,
        rgba(251,241,214,0.54) 0%,
        rgba(246,227,183,0.48) 34%,
        rgba(240,216,169,0.54) 76%,
        rgba(231,204,151,0.74) 100%) !important;
  }

  /* 募集要項：他の枠と同じくらいの横幅に */
  .recruit .container {
    width: 100% !important;
    max-width: none !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }

  .recruit-detail-box,
  .recruit-hero-box,
  .kurumin-box.certified {
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  .recruit-detail-grid {
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: 1fr !important;
  }

  .recruit-detail-card {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }

  /* 電話・メール問い合わせボタン：「る」だけ改行を防止 */
  .recruit-cta-buttons {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
  }

  .recruit-cta-buttons .btn,
  .recruit-cta-buttons a,
  .recruit .btn[href^="tel"],
  .recruit .btn[href^="mailto"] {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding: 13px 8px !important;
    font-size: 13.2px !important;
    line-height: 1 !important;
    letter-spacing: -0.04em !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    text-align: center !important;
  }
}

/* 小さいスマホ用微調整 */
@media (max-width: 390px) {
  body {
    padding-top: 86px !important;
  }

  html {
    scroll-padding-top: 88px !important;
  }

  .mobile-nav-final-clean {
    gap: 5px !important;
    padding: 8px 8px 9px !important;
  }

  .mobile-nav-final-clean a {
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
    font-size: 10.2px !important;
    letter-spacing: -0.075em !important;
    padding: 0 1px !important;
  }

  .mobile-nav-final-clean a:nth-child(10) {
    font-size: 8.4px !important;
    letter-spacing: -0.11em !important;
  }

  .top-visual-mobile-direct {
    height: clamp(270px, 80vw, 330px) !important;
  }

  .news-slide {
    background-size: 58% auto !important;
    background-position: center 8% !important;
  }

  .recruit-cta-buttons .btn,
  .recruit-cta-buttons a,
  .recruit .btn[href^="tel"],
  .recruit .btn[href^="mailto"] {
    font-size: 12px !important;
    letter-spacing: -0.07em !important;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
}


/* =========================================================
   v53 Mobile side margins from RECRUIT downward
========================================================= */
@media (max-width: 760px) {
  /* 募集要項から下は左右にしっかり余白を確保 */
  #recruit > .container,
  #company > .container,
  #facility > .container,
  #contact > .container,
  #contact-form > .container,
  footer .container {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* 採用関連の各ボックスも端まで広がらないように */
  #recruit .kurumin-box,
  #recruit .recruit-detail-box,
  #recruit .recruit-hero-box,
  #recruit .recruit-grid.strong,
  #recruit .recruit-cta,
  #company .company-box,
  #facility .facility-card,
  #facility .facility-visual-wrap,
  #contact .contact-cards,
  #contact-form .contact-form-card,
  #contact-form .inline-form-card,
  #contact-form .contact-form-shell,
  #contact-form .inline-form-shell {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* 募集要項見出し周辺も少し呼吸感を出す */
  #recruit .recruit-detail-box,
  #company .company-box,
  #facility .facility-card,
  #contact-form .contact-form-card,
  #contact-form .inline-form-card,
  #contact-form .contact-form-shell,
  #contact-form .inline-form-shell {
    border-radius: 22px !important;
  }
}

@media (max-width: 390px) {
  #recruit > .container,
  #company > .container,
  #facility > .container,
  #contact > .container,
  #contact-form > .container,
  footer .container {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}
