/*
Theme Name: Lightning Child
Theme URI: 
Template: lightning
Description: 
Author: 
Tags: 
Version: 0.6.1
*/
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=Noto+Sans+JP:wght@300;400;500;700;900&family=Noto+Serif+JP:wght@400;500;600;700&family=Shippori+Mincho:wght@400;500;700&family=Stardos+Stencil:wght@700&display=swap');

/* 慣性スクロール（Lenis）用リセット：ネイティブのスムーススクロールと二重にならないように */
html.lenis, html.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* ======================================================================
   見出しスケール（単一の正）— デザインシステム colors_and_type.css と同方式
   ▼ 見出しの font-size は必ずこの変数を参照する（px直書き禁止）
     display 72 / h1 60 / h2 48(セクション見出し) / h3 30(小見出し)
     h4 24(カード見出し) / h5 20(最小見出し)
   ====================================================================== */
:root{
  --h-display: 72px;
  --h1: 60px;
  --h2: 48px;   /* セクション見出し（OUR SERVICES / WHY / WORKS / CONTACT 共通） */
  --h3: 30px;   /* 小見出し（事業の行・選ばれる理由の項目） */
  --h4: 24px;   /* カード見出し */
  --h5: 20px;   /* 最小見出し */

  /* 見出しの書体・太さ・字間（about ページと同じ：細め＋やや詰め） */
  --font-display: 'Shippori Mincho', 'Noto Serif JP', serif;
  --font-body: 'Noto Sans JP', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', Meiryo, sans-serif;
  --font-latin: 'DM Sans', 'Noto Sans JP', system-ui, sans-serif;
  --font-number: 'DM Sans', 'Noto Sans JP', system-ui, sans-serif;
  --font-ornament: 'Stardos Stencil', 'DM Sans', serif;
  --h-weight: 400;
  --h-tracking: -0.03em;
}
@media screen and (max-width: 768px){
  :root{
    --h1: 36px;
    --h2: 30px;
    --h3: 24px;
  }
}

/* ======================================================================
   Lightning標準の見出し下線（青い装飾線）を完全に消去する一括リセット設定
   ====================================================================== */
.sk-services-section h2::after,
.sk-services-section h3::after,
.sk-service-card h2::after,
.sk-service-card h3::after,
.sk-features-section h2::after,
.sk-features-section h3::after,
.sk-feature-card h2::after,
.sk-feature-card h3::after,
.sk-works-section h2::after,
.sk-works-section h3::after,
.sk-work-card h2::after,
.sk-work-card h3::after,
.gt-contact-section h2::after,
.gt-contact-section h3::after,
.sk-site-footer h2::after,
.sk-site-footer h3::after,
.sk-hero h1::after,
.sk-hero h2::after {
    content: none !important;
    display: none !important;
    border: none !important;
    width: 0 !important;
    height: 0 !important;
}
/* 親テーマが強制付与する背景・枠線・余白の初期化 */
.sk-services-main-title,
.sk-service-name,
.sk-features-main-title,
.sk-works-main-title,
.sk-work-card-title,
.gt-main-title,
.sk-brand-logo,
.sk-nav-title,
.sk-hero__title {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    background: none !important;
    background-image: none !important;
    padding: 0 !important;
    margin-top: 0;
    position: relative !important;
}
/* 施工実績カード内の見出し下のみ、デザイン通りの薄いグレー線を再配置 */
.sk-work-card-title {
    border-bottom: 1px solid #eef2f5 !important;
    padding-bottom: 15px !important;
    margin-bottom: 15px !important;
}
/* ======================================================================
   トップページ：CTAとフッターの間の白い隙間を完全に消す調整
   ====================================================================== */
.site-body {
  background-color: #0b1a29 !important; /* フッターのネイビーと同じ色 */
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
.main-section,
#main,
.site-main,
.entry-body {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
.sk-site-footer {
  margin-top: 0 !important;
  border-top: none !important;
}

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.sk-header {
    position: sticky;
    top: 0;
    z-index: 999;
    background: #031323;
    border-bottom: 1px solid #1a2a40;
    transition: background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}
.sk-header__inner {
    width: 100%;
    max-width: none;
    min-height: 72px;
    height: 72px !important;
    margin: 0 auto;
    padding: 0 0 0 clamp(20px, 3.8vw, 56px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    transition: min-height 0.35s ease, height 0.35s ease, padding 0.35s ease;
}
.sk-header__logo {
	max-height: 52px;
    text-decoration: none;
    color: #111;
    display: flex;
    align-items: center;
    gap: 14px;
}
.sk-header__logo-main {
    font-family: var(--font-display);
    font-size: 24px;
    color: #1a2a40;
}
.sk-header__logo-sub {
    font-family: var(--font-latin);
    font-size: 10px;
    letter-spacing: 0.15em;
    color: #777;
}
.sk-header__nav {
    display: flex;
    gap: 0;
    margin-left: auto;
    margin-right: clamp(28px, 4.5vw, 76px);
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.28s ease, visibility 0.28s ease, transform 0.28s ease;
}
/* ドロップダウン全体の基準位置 */
.sk-menu-item {
    position: relative;
}
/* ドロップダウン本体 */
.sk-dropdown {
    position: absolute;
    top: 56px;
    left: 0;
    width: 220px;
    background: #061222;
    border: 1px solid rgba(212,168,32,.25);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: .25s ease;
    z-index: 9999;
}

/* ホバー時に表示 */
.sk-menu-item:hover .sk-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
/* メニュー1件 */
.sk-dropdown__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 18px;
    color: #fff;
    text-decoration: none;
    font-family: var(--font-display);
    font-size: 15px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    transition: .25s ease;
}
/* 最後だけ線なし */
.sk-dropdown__item:last-child {
    border-bottom: none;
}
/* ホバー時 */
.sk-dropdown__item:hover {
    background: rgba(212,168,32,.08);
    color: #d4a820;
}
/* 右矢印 */
.sk-dropdown__item span {
    color: #d4a820;
    font-size: 18px;
}
/* ヘッダー上段メニューのみ */
.sk-header__nav > a,
.sk-menu-item > a {
    text-decoration: none;
    color: #d7dee7;
    font-size: 16px;
    font-weight: 500;
    font-family: var(--font-display);
    transition: opacity 0.3s ease;
    padding-right: 20px;
    margin-right: 20px;
    border-right: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    position: relative;
    padding-bottom: 0;
}
/* サービスリンク */
.sk-menu-link {
    display: flex;
    align-items: center;
    gap: 8px;
}
/* 下向き矢印 */
.sk-menu-arrow {
    width: 8px;
    height: 8px;
    border-right: 1.5px solid #d4a820;
    border-bottom: 1.5px solid #d4a820;
    transform: rotate(45deg) translateY(-2px);
    transition: .25s ease;
}
.sk-header__nav > a:last-child {
    border-right: none;
    padding-right: 0;
    margin-right: 0;
}

.sk-menu-item > a::after,
.sk-header__nav > a::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    border: 0 !important;
    background: none !important;
}
.sk-dropdown__item {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin: 0 !important;
    padding: 16px 18px !important;
    border-right: none !important;
}
.sk-header__nav > a:hover::after,
.sk-menu-item > a:hover::after,
.sk-header__nav > a::before,
.sk-menu-item > a::before {
    content: none !important;
    display: none !important;
    transform: none !important;
    border: 0 !important;
    background: none !important;
}
.sk-header__right {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-left: 0;
}
.sk-header__contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    width: 140px;
    height: 56px;

    background: #D4A820;
    color: #1a2a40;
    text-decoration: none;

    font-family: var(--font-latin);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;

    transition: opacity 0.3s ease;
}
.sk-header__contact::before {
    content: "✉";
    display: block;
    font-size: 24px;
    font-weight: 300;
    line-height: 1;
    margin-bottom: 4px;
}
.sk-header__contact:hover {
    opacity: 0.85;
}

/* --- トップページのみヘッダーをヒーロー上に透明オーバーレイ表示 --- */
.home .sk-header,
.page-template-front .sk-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: transparent;
    border-bottom: none !important;
    box-shadow: none !important;
}

.home .sk-header__inner,
.page-template-front .sk-header__inner {
    min-height: 112px;
    height: 112px !important;
    padding-top: 54px;
    align-items: flex-start;
}

.home .sk-header__nav,
.page-template-front .sk-header__nav,
.home .sk-header__right,
.page-template-front .sk-header__right {
    align-self: flex-start;
}

.home .sk-header__nav,
.page-template-front .sk-header__nav {
    height: 56px;
    align-items: center;
}

.home .sk-header__right,
.page-template-front .sk-header__right {
    height: 56px;
    align-items: stretch;
    gap: 0;
}

.home .sk-header.is-scrolled,
.page-template-front .sk-header.is-scrolled {
    background: rgba(3, 19, 35, 0.96);
    border-bottom-color: rgba(212, 168, 32, 0.22);
}

.home .sk-header.is-scrolled .sk-header__inner,
.page-template-front .sk-header.is-scrolled .sk-header__inner {
    min-height: 64px;
    height: 64px !important;
    padding-top: 4px;
    align-items: center;
}

.home .sk-header__nav a,
.page-template-front .sk-header__nav a {
    color: #d7dee7 !important;
    font-weight: 500 !important;
}
.home .sk-header__logo-main,
.page-template-front .sk-header__logo-main {
    color: #1a2a40 !important;
}
.home .sk-header__logo-sub,
.page-template-front .sk-header__logo-sub {
    color: #777 !important;
}
.home .sk-header__contact,
.page-template-front .sk-header__contact {
    width: 193px;
    height: 56px !important;
    flex-direction: row;
    background: #031323 !important;
    border: 1px solid #031323 !important;
    color: #ffffff !important;
    font-size: 15px;
    letter-spacing: 0;
    height: 56px !important;
    padding: 0 !important;
}

.home .sk-header__contact::before,
.page-template-front .sk-header__contact::before {
    display: none;
}

.home .sk-scroll-menu > summary,
.page-template-front .sk-scroll-menu > summary {
    width: 164px;
    height: 56px;
    grid-template-columns: 34px auto;
    column-gap: 18px;
    padding: 0 32px 0 36px;
    background: #ffffff;
    border: 1px solid #031323;
    color: #031323;
}

.home .sk-scroll-menu > summary span,
.page-template-front .sk-scroll-menu > summary span {
    width: 34px;
    background: currentColor;
}

.home .sk-scroll-menu > summary span:nth-child(2),
.page-template-front .sk-scroll-menu > summary span:nth-child(2) {
    display: none;
}

.home .sk-scroll-menu > summary em,
.page-template-front .sk-scroll-menu > summary em {
    font-size: 15px;
    letter-spacing: 0;
    font-weight: 500;
}

.home .sk-scroll-menu > summary:hover,
.page-template-front .sk-scroll-menu > summary:hover,
.home .sk-scroll-menu:focus-within > summary,
.page-template-front .sk-scroll-menu:focus-within > summary {
    background: #031323;
    border-color: #031323;
    color: #ffffff;
}

.home .sk-header__contact:hover,
.page-template-front .sk-header__contact:hover {
    background: #061d33 !important;
    border-color: #061d33 !important;
    color: #ffffff !important;
    opacity: 1;
}
/* WPテーマの上部余白を相殺 */
.home .site-body,
.home #main,
.home .main-section,
.home .site-main,
.page-template-front .site-body,
.page-template-front #main,
.page-template-front .main-section,
.page-template-front .site-main {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
/* ロゴの表示領域を強制的に制限する */
.sk-header__logo {
    display: flex;
    align-items: center;
    max-height: 70px; /* 88pxの枠から溢れないように */
    overflow: hidden;
}
.sk-header__logo img {
    height: auto;
    width: auto;
    max-height: 26px;
}
/* ヘッダー全体が崩れないようにする */
.sk-header__inner {
    overflow: visible;      /* 溢れた場合も隠さず表示 */
}

.sk-mobile-nav {
    display: none;
}

.sk-scroll-menu {
    display: block;
    flex: 0 0 auto;
    margin: 0;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.28s ease, visibility 0.28s ease, transform 0.28s ease;
}

.sk-mobile-nav > summary {
    list-style: none;
}

.sk-mobile-nav > summary::-webkit-details-marker {
    display: none;
}

.sk-scroll-menu > summary {
    width: 96px;
    height: 56px;
    padding: 0 18px;
    border: 1px solid rgba(212, 168, 32, 0.5);
    background: rgba(3, 19, 35, 0.9);
    color: #ffffff;
    cursor: pointer;
    display: grid;
    grid-template-columns: 20px auto;
    grid-template-rows: repeat(3, 4px);
    align-content: center;
    align-items: center;
    column-gap: 11px;
    row-gap: 4px;
    transition: background 0.28s ease, border-color 0.28s ease, color 0.28s ease;
}

.sk-scroll-menu > summary:hover {
    background: #0b1a29;
    border-color: #d4a820;
}

.sk-scroll-menu > summary span {
    display: block;
    width: 20px;
    height: 1px;
    background: currentColor;
    transform-origin: center;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.sk-scroll-menu > summary em {
    grid-column: 2;
    grid-row: 1 / 4;
    align-self: center;
    font-family: var(--font-latin);
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
}

.sk-scroll-menu[open] > summary {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 1201;
}

.sk-scroll-menu[open] > summary span:nth-child(1) {
    transform: translateY(5px) rotate(45deg);
}

.sk-scroll-menu[open] > summary span:nth-child(2) {
    opacity: 0;
}

.sk-scroll-menu[open] > summary span:nth-child(3) {
    transform: translateY(-5px) rotate(-45deg);
}

.sk-mobile-nav__panel {
    display: none;
}

.sk-mobile-nav[open] .sk-mobile-nav__panel {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(3, 10, 20, 0.46);
    z-index: 1200;
    padding: 16px;
}

.sk-scroll-menu:hover .sk-mobile-nav__panel,
.sk-scroll-menu:focus-within .sk-mobile-nav__panel {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(3, 10, 20, 0.18);
    z-index: 1200;
    padding: 110px clamp(32px, 5vw, 72px) 32px;
}

.sk-mobile-nav__drawer {
    width: min(720px, calc(100vw - 64px));
    min-height: auto;
    margin-left: auto;
    padding: 44px 48px 46px;
    background: rgba(3, 19, 35, 0.96);
    border: 1px solid rgba(255,255,255,0.12);
    box-shadow: 0 24px 70px rgba(0,0,0,0.24);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 44px;
}

.sk-mobile-nav__links {
    display: grid;
    gap: 0;
}

.sk-mobile-nav__group + .sk-mobile-nav__group {
    border-left: 1px solid rgba(255,255,255,0.12);
    padding-left: 44px;
}

.sk-mobile-nav__label {
    margin: 0 0 20px;
    color: #d4a820;
    font-family: var(--font-latin);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.sk-mobile-nav__link {
    color: #ffffff;
    text-decoration: none;
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    padding: 13px 0;
    border-bottom: 1px solid rgba(255,255,255,0.10);
    transition: color 0.25s ease, padding-left 0.25s ease;
}

.sk-mobile-nav__link:hover {
    color: #d4a820;
    padding-left: 12px;
}

.sk-mobile-nav__meta {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid rgba(255,255,255,0.18);
}

.sk-mobile-nav__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 52px;
    margin-top: 0;
    background: #d4a820;
    color: #1a2a40;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.sk-header.is-scrolled {
    background: rgba(3, 19, 35, 0.96);
    border-bottom-color: rgba(212, 168, 32, 0.22);
    box-shadow: 0 10px 34px rgba(0, 0, 0, 0.18);
}

.sk-header.is-scrolled .sk-header__inner {
    min-height: 64px;
    height: 64px !important;
}

.sk-header.is-scrolled .sk-header__nav {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    pointer-events: none;
}

.sk-header.is-scrolled .sk-scroll-menu {
    display: block;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.home .sk-header.is-scrolled,
.page-template-front .sk-header.is-scrolled {
    background: transparent !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

.home .sk-header.is-scrolled .sk-header__inner,
.page-template-front .sk-header.is-scrolled .sk-header__inner {
    min-height: 112px;
    height: 112px !important;
    padding-top: 54px;
    align-items: flex-start;
}

.home .sk-header.is-scrolled .sk-header__logo,
.page-template-front .sk-header.is-scrolled .sk-header__logo {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

@media screen and (max-width: 768px) {
    .sk-header.is-scrolled .sk-header__logo {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
}

.home .sk-header__contact,
.page-template-front .sk-header__contact,
.home .sk-header.is-scrolled .sk-header__contact,
.page-template-front .sk-header.is-scrolled .sk-header__contact {
    background: #D4A820 !important;
    border-color: #031323 !important;
    color: #1a2a40 !important;
}

.home .sk-header__contact:hover,
.page-template-front .sk-header__contact:hover,
.home .sk-header.is-scrolled .sk-header__contact:hover,
.page-template-front .sk-header.is-scrolled .sk-header__contact:hover {
    background: #b98d43 !important;
    border-color: #031323 !important;
    color: #1a2a40 !important;
    opacity: 1;
}

/* ==========================================================================
   トップページ：ファーストビュー
   ========================================================================== */
:root {
    --sk-navy: #0b1a30;
    --sk-navy-deep: #061222;
    --sk-cream: #e3c99a;          /* タイトル・タグライン */
    --sk-cream-soft: #ead9b2;     /* プライマリーボタン */
    --sk-gold: #cda052;
    --sk-white: #ffffff;
    --sk-text-light: #e8ecf2;
    --sk-text-muted: #8a99ad;
}

.sk-hero {
    position: relative;
    width: 100%;
    height: 100vh !important;
    max-height: 980px;
    min-height: 720px;
    background-color: var(--sk-navy);
    overflow: hidden !important;
    color: var(--sk-white);
    font-family: var(--font-body);
    margin: 0 !important;
    padding: 0 !important;
    /* ファーストビュー背景の動き（Ken Burns）の振れ幅。PC基準。 */
    --sk-hero-kb-scale: 1.06;
    --sk-hero-kb-pan: -1.2%;
    --sk-hero-fade: 1.8s;
    --sk-hero-kb-duration: 10.3s;
}
.sk-hero * { box-sizing: border-box; }

/* --- 背景ステージ：3枚の写真をゆっくりクロスフェード＋Ken Burnsで切り替える ---
   ※ フェード(opacity)は外側の .sk-hero__bg-slide、ズームアウト(transform)は内側の img
      と、担当する要素を分けている。1つの要素に opacity と transform を同時に
      かけるとブラウザの描画負荷が上がりコマ落ち（ガクガク）しやすいため。
      ズームアウト開始前のリセットは is-zoomed クラスの着脱で行い、必ず非表示（opacity:0）の
      間だけ実行する（「表示中の写真の動きが急に巻き戻る」ガタつき防止）。 */
.sk-hero__bg {
    position: absolute;
    inset: 0;
}
.sk-hero__bg-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity var(--sk-hero-fade) ease;
    will-change: opacity;
}
.sk-hero__bg-slide.is-active {
    opacity: 1;
    z-index: 1;
}
.sk-hero__bg-slide-inner {
    position: absolute;
    inset: 0;
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.sk-hero__bg-slide-inner picture {
    display: block;
    width: 100%;
    height: 100%;
}
.sk-hero__bg-slide-inner img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top 35%;
    transform: scale(var(--sk-hero-kb-scale)) translate(var(--sk-hero-kb-pan), 0);
    transition: transform var(--sk-hero-kb-duration) ease-out;
    will-change: transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.sk-hero__bg-slide.is-zoomed .sk-hero__bg-slide-inner img {
    transform: scale(1) translate(0, 0);
}
.sk-hero__bg-slide--02 .sk-hero__bg-slide-inner img {
    object-position: center top 20%;
}
.sk-hero__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background:
      linear-gradient(180deg,
        rgba(7,18,38,0) 42%,
        rgba(7,18,38,0.52) 100%),
      linear-gradient(90deg,
        rgba(7,18,38,0.35) 0%,
        rgba(7,18,38,0.18) 32%,
        rgba(7,18,38,0) 50%);
    pointer-events: none;
}

/* --- 左コンテンツ --- */
.sk-hero__content {
    position: absolute;
    left: clamp(24px, 5.6vw, 96px);
    right: clamp(24px, 8vw, 120px);
    bottom: clamp(64px, 10vh, 120px);
    top: auto;
    transform: none;
    max-width: 780px;
    z-index: 6;
    text-shadow: 0 3px 18px rgba(0, 0, 0, 0.45);
}
.sk-hero__lead {
    font-family: var(--font-display);
    font-size: clamp(16px, 1.15vw, 22px);
    font-weight: 500;
    color: var(--sk-cream);
    letter-spacing: 0.08em;
    line-height: 1.5;
    margin: 0 0 16px;
}
.sk-hero__eyebrow {
    display: none !important;
    font-family: var(--font-latin);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.18em;
    color: #d4a820;
    margin: 0 0 24px;
}
.sk-hero__title {
    font-family: var(--font-display) !important;
    font-size: clamp(40px, 3.35vw, 60px) !important;
    font-weight: 500 !important;
    color: #ffffff !important;
    letter-spacing: 0 !important;
    line-height: 1.36 !important;
    margin: 0 0 24px !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    text-wrap: balance;
    border: none !important;
    background: none !important;
    padding: 0 !important;
}
.sk-hero__title > span {
    display: block;
    width: max-content;
    max-width: 100%;
}
.sk-hero__accent {
    color: #D4A820;
}
.sk-hero__desc {
    font-size: clamp(17px, 1.18vw, 21px);
    line-height: 2;
    color: var(--sk-text-light);
    font-weight: 500;
    letter-spacing: 0;
    margin: 0;
    max-width: 660px;
}

/* --- ボタン --- */
.sk-hero__actions {
    display: none !important;
    gap: 16px;
    flex-wrap: wrap;
}
.sk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-width: 200px;
    height: 54px;
    padding: 0 22px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-decoration: none;
    transition: all 0.3s ease;
    box-sizing: border-box;
    line-height: 1;
    white-space: nowrap;
}
.sk-btn__arrow {
    font-family: var(--font-latin);
    font-size: 16px;
    font-weight: 400;
    transition: transform 0.3s ease;
}
.sk-btn:hover .sk-btn__arrow { transform: translateX(4px); }
.sk-btn--primary {
    background: #D4A820;
    color: #1a2a40;
}
.sk-btn--primary:hover {
    background: #b98d43;
    color: #1a2a40;
}
.sk-btn--ghost {
    background: transparent;
    color: var(--sk-white);
    border: 1px solid rgba(255,255,255,0.55);
}
.sk-btn--ghost:hover {
    background: rgba(255,255,255,0.08);
    border-color: var(--sk-white);
    color: var(--sk-white);
}
/* 旧バージョンとの互換（旧.sk-btn--secondaryも残す） */
.sk-btn--secondary {
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: var(--sk-white);
}
.sk-btn--secondary:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: var(--sk-white);
}

/* --- 右側 縦書きタグライン --- */
.sk-hero__tagline {
    display: none !important;
    position: absolute !important;
    right: 2.5vw !important;
    top: 18% !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    writing-mode: vertical-rl !important;
    -webkit-writing-mode: vertical-rl !important;
    font-family: var(--font-display) !important;
    font-size: 34px !important;
    font-weight: 500 !important;
    color: #ffffff !important;
    letter-spacing: 0.08em !important;
    line-height: 1.7 !important;
    white-space: nowrap !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    z-index: 5;
}
/* --- 旧hero要素互換（万一旧PHPが残っていてもレイアウト崩れさせない） --- */
.sk-hero__container,
.sk-hero__visual-area,
.sk-hero__image-wrapper,
.sk-hero__visual-tag,
.sk-hero__caption,
.sk-hero__track-card,
.sk-hero__features,
.sk-hero__sub-lead,
.sk-hero__description,
.sk-hero__scroll-indicator,
.sk-hero__actions + .sk-hero__features { display: none; }

@media screen and (max-width: 768px) {
    .sk-header {
        position: sticky;
        z-index: 40;
        background: #031323;
        border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .home .sk-header,
    .page-template-front .sk-header {
        position: sticky;
        top: 0;
        left: 0;
        width: 100%;
        background: #031323;
        border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .sk-header__inner {
        min-height: 64px;
        height: 64px !important;
        padding: 0 0 0 18px;
        align-items: center;
    }

    .sk-header__nav {
        display: none;
    }

    .sk-header__right {
        display: flex;
        gap: 0;
        margin-left: auto;
    }

    .sk-header__contact {
        width: 112px;
        height: 52px;
        font-size: 10px;
    }

    .home .sk-header__contact,
    .page-template-front .sk-header__contact {
        height: 52px !important;
    }

    .sk-header__contact::before {
        font-size: 18px;
        margin-bottom: 3px;
    }

    .sk-header__logo {
        max-height: none;
    }

    .sk-header__logo img {
        max-height: 28px;
    }

    .sk-mobile-nav {
        display: block;
        margin-left: auto;
    }

    .sk-mobile-nav > summary {
        list-style: none;
        width: 84px;
        height: 52px;
        padding: 0;
        border: 1px solid rgba(212, 168, 32, 0.45);
        background: rgba(3, 19, 35, 0.94);
        cursor: pointer;
        display: grid;
        grid-template-columns: 18px auto;
        grid-template-rows: repeat(3, 4px);
        align-content: center;
        align-items: center;
        justify-content: center;
        column-gap: 9px;
        row-gap: 4px;
        position: relative;
        z-index: 1201;
    }

    .sk-mobile-nav > summary::-webkit-details-marker {
        display: none;
    }

    .sk-mobile-nav > summary span {
        display: block;
        width: 18px;
        height: 1px;
        background: #ffffff;
        transform-origin: center;
        transition: transform 0.25s ease, opacity 0.25s ease;
    }

    .sk-mobile-nav > summary em {
        grid-column: 2;
        grid-row: 1 / 4;
        align-self: center;
        color: #ffffff;
        font-family: var(--font-latin);
        font-size: 10px;
        font-style: normal;
        font-weight: 700;
        letter-spacing: 0.04em;
        line-height: 1;
    }

    .sk-mobile-nav[open] > summary {
        position: fixed;
        top: 12px;
        right: 12px;
    }

    .sk-mobile-nav[open] > summary span:nth-child(1) {
        transform: translateY(5px) rotate(45deg);
    }

    .sk-mobile-nav[open] > summary span:nth-child(2) {
        opacity: 0;
    }

    .sk-mobile-nav[open] > summary span:nth-child(3) {
        transform: translateY(-5px) rotate(-45deg);
    }

    .sk-mobile-nav__panel {
        display: none;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__panel {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(3, 10, 20, 0.42);
        z-index: 1200;
        padding: 16px;
    }

    .sk-mobile-nav__drawer {
        width: auto;
        min-height: calc(100svh - 32px);
        margin-left: 0;
        padding: 72px 24px 28px;
        background: linear-gradient(180deg, #071525 0%, #0a1a2b 100%);
        border: 1px solid rgba(255,255,255,0.12);
        box-shadow: 0 20px 60px rgba(0,0,0,0.28);
        display: block;
    }

    .sk-mobile-nav__group + .sk-mobile-nav__group {
        border-left: none;
        padding-left: 0;
        margin-top: 28px;
    }

    .sk-mobile-nav__links {
        display: grid;
        gap: 18px;
    }

    .sk-mobile-nav__link {
        color: #ffffff;
        text-decoration: none;
        font-family: var(--font-body);
        font-size: 18px;
        font-weight: 700;
        line-height: 1.4;
    }

    .sk-mobile-nav__meta {
        margin-top: 32px;
        padding-top: 24px;
        border-top: 1px solid rgba(255,255,255,0.18);
    }

    .sk-mobile-nav__cta {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 52px;
        margin-top: 20px;
        background: #d4a820;
        color: #1a2a40;
        text-decoration: none;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: 0.08em;
    }

    .sk-scroll-menu {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .sk-hero {
        height: 100svh !important;
        min-height: 760px;
        max-height: none;
    }

    .sk-hero {
        /* スマホは動きを少し控えめにする */
        --sk-hero-kb-scale: 1.03;
        --sk-hero-kb-pan: 0%;
    }

    .sk-hero__bg-slide--01 .sk-hero__bg-slide-inner img { object-position: center 20%; }
    .sk-hero__bg-slide--02 .sk-hero__bg-slide-inner img { object-position: center 15%; }
    .sk-hero__bg-slide--03 .sk-hero__bg-slide-inner img { object-position: center 20%; }

    .sk-hero__bg::after {
        background: linear-gradient(180deg,
            rgba(7,18,38,0) 36%,
            rgba(7,18,38,0.72) 100%);
    }

    .sk-hero__content {
        left: clamp(20px, 6.4vw, 44px);
        right: clamp(20px, 6.4vw, 44px);
        top: auto;
        bottom: clamp(42px, 9svh, 82px);
        transform: none;
        width: auto;
        max-width: 560px;
        margin: 0;
    }

    .sk-hero__eyebrow {
        font-size: 13px;
        letter-spacing: 0.16em;
        margin: 0 0 16px;
    }

    .sk-hero__title {
        max-width: none;
        font-size: clamp(30px, 8.2vw, 38px) !important;
        line-height: 1.42 !important;
        margin: 0 0 18px !important;
    }

    .sk-hero__desc {
        width: 100%;
        max-width: 520px;
        font-size: clamp(15px, 4.2vw, 18px);
        line-height: 1.9;
        margin: 0;
        text-wrap: pretty;
    }

    .sk-hero__actions {
        flex-direction: column;
        gap: 12px;
        margin-top: 6px;
    }

    .sk-btn {
        width: 100%;
        min-width: 0;
        height: 56px;
        justify-content: center;
        gap: 10px;
        padding: 0 24px;
        font-size: 15px;
    }

    .sk-btn__arrow {
        font-size: 15px;
    }

.sk-hero__tagline {
        display: none;
    }
}


/* ======================================================================
   トップページ：事業内容
   ====================================================================== */
.sk-services-section {
    background-color: #ffffff;
    padding: 100px 0 0;
    font-family: var(--font-body);
    color: #333333;
    box-sizing: border-box;
    overflow: hidden; /* はみ出すゴースト番号のはみ出し量を制御 */
    position: relative; /* 追加 */
}

.sk-services-bg-text {
    position: absolute;
    top: 95px;
    left: -10px;

    font-family: var(--font-ornament);
    font-size: 175px;
    font-weight: 700;
    line-height: .8;
    letter-spacing: -0.04em;

    color: #1a2a40;
    opacity: 0.045;

    pointer-events: none;
    z-index: 0;
}

.sk-services-section * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.sk-services-container {
    position: relative; /* 追加 */
    z-index: 1;         /* 追加 */

    max-width: 1300px;
    margin: 0 auto;
    padding: 0 40px;
}

/* --- セクション見出し（既存と同一の見た目） --- */
.sk-services-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 150px;
    margin-bottom: 16px;
    gap: 40px;
}
.sk-services-title-area {
    display: flex;
    flex-direction: column;
    gap: 15px;
    flex: 0 0 40%;
}
.sk-services-sub {
    font-family: var(--font-latin);
    font-size: 12px;
    letter-spacing: 0.2em;
    color: #cda052;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 15px;
}
.sk-services-sub::before {
    content: "01";
    color: #cda052;
    font-weight: 700;
}
.sk-services-sub span {
    display: inline-block;
    width: 30px;
    height: 1px;
    background-color: #cda052;
}
.sk-services-main-title {
    font-family: var(--font-display, var(--tf-font-display)) !important;
    font-size: 48px !important;
    font-weight: 400 !important;
    letter-spacing: -0.03em !important;
    color: #1a2a40;
    line-height: 1.25 !important;
}
.sk-services-lead {
    flex: 0 1 50%;
    font-size: 14px;
    line-height: 1.8;
    color: #666;
    padding-top: 32px;
}

/* ----------------------------------------------------------------------
   事業の行（ゼブラ帯）
   テク: 偶数行をフルブリードの淡色帯にしてリズムを作る(ベタ塗りアクセント)
   ---------------------------------------------------------------------- */
.sk-svc-row {
    background-color: #ffffff;
}
.sk-svc-row--tint {
    background-color: #f7f9fa; /* 既存「理由」セクションと同じ淡グレー */
}
.sk-svc-row__inner {
    position: relative;
    display: grid;
    grid-template-columns: 1.02fr 0.98fr;
    gap: 60px;
    align-items: center;
    padding: 64px 0;
    border-top: 1px solid #e3e8ec;
}
/* 1本目だけ濃いネイビー罫 */
.sk-svc-row:first-of-type .sk-svc-row__inner {
    border-top: 2px solid #1a2a40;
}

/* 巨大ゴースト連番：左端を割って天罫をまたぐ(ブリード + またぎ) */
.sk-svc-row__num {
    /*position: absolute;
    top: -44px;
    left: -34px;
    z-index: 0;
    font-family: var(--font-latin);
    font-weight: 300;
    font-size: 150px;
    line-height: 0.8;
    letter-spacing: -0.05em;
    color: #1a2a40;
    opacity: 0.07;
    pointer-events: none;*/
	display: none;
}

/* --- テキスト側 --- */
.sk-svc-row__text {
    position: relative;
    z-index: 1;
    padding-left: 56px;
}
.sk-svc-row__en {
    font-family: var(--font-latin);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #cda052;
    display: flex;
    align-items: center;
    gap: 12px;
}
.sk-svc-row__en i {
    font-style: normal;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0;
    color: #1a2a40;
}
.sk-svc-row__title {
    font-family: var(--font-display);
    font-size: var(--h3);
    font-weight: 500;
    letter-spacing: var(--h-tracking);
    line-height: 1.3;
    color: #1a2a40;
    margin: 12px 0 16px !important;
}
.sk-svc-row__desc {
    font-size: 16px;
    line-height: 2;
    color: #555;
    max-width: 46ch;
}
/* 箇条書き：goldティックの罫線行(線アクセント) */
.sk-svc-row__feats {
    list-style: none;
    margin: 24px 0 26px !important;
    border-top: 1px solid #e3e8ec;
    max-width: 46ch;
}
.sk-svc-row__feats li {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 11px 0;
    border-bottom: 1px solid #e3e8ec;
    font-size: 14px;
    color: #555;
}
.sk-svc-row__feats li::before {
    content: "";
    flex: 0 0 auto;
    width: 14px;
    height: 2px;
    background-color: #cda052;
}
.sk-svc-row__link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #1a2a40;
    text-decoration: none;
    transition: gap 0.2s ease;
}
.sk-svc-row__link span {
    font-family: var(--font-latin);
}
.sk-svc-row__link:hover {
    gap: 16px;
}

/* --- メディア側 --- */
.sk-svc-row__media {
    position: relative;
}
.sk-svc-row__media > a {
    display: block;
}
.sk-svc-row__overlay {
    display: none;
}
.sk-svc-row__ph {
    position: relative;
    aspect-ratio: 16 / 11;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(26, 42, 64, 0.10);
}
/* 画像未設定時に見えるグラデーション・フォールバック */
.sk-svc-row__ph.bg-event { background: linear-gradient(135deg, #433629 0%, #121921 100%); }
.sk-svc-row__ph.bg-fixtures { background: linear-gradient(135deg, #2c3545 0%, #111721 100%); }
.sk-svc-row__ph.bg-faux { background: linear-gradient(135deg, #223c2d 0%, #111a15 100%); }
.sk-svc-row__ph.bg-illumination { background: linear-gradient(135deg, #17273c 0%, #684f27 100%); }
.sk-svc-row__ph img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* 画像に重なる縦組み和文タブ(レイヤリング + 縦組み) */
.sk-svc-row__tab {
    position: absolute;
    top: 22px;
    left: -18px;
    z-index: 2;
    background: #0b1a29;
    color: #ffffff;
    writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: mixed;
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.14em;
    padding: 16px 9px;
    border-radius: 2px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
}
.sk-svc-row__tab i {
    font-style: normal;
    color: #cda052;
}

/* サービスタイトルリンク */
.sk-svc-row__title a,
.sk-svc-row__title a:visited{
    color:#1a2a40;
    text-decoration:none;
}
.sk-svc-row__title a:hover,
.sk-svc-row__title a:focus{
    color:#cda052;
    text-decoration:none;
}

/* --- 事業内容：レスポンシブ --- */
@media screen and (max-width: 768px) {
    .sk-services-section {
        padding: 64px 0 32px;
    }

    .sk-services-bg-text {
        top: 24px;
        left: 14px;
        right: auto;
        transform: none;
        font-size: 0;
        line-height: 1;
        letter-spacing: 0;
        color: transparent;
        opacity: 1;
    }

    .sk-services-bg-text::before {
        content: "01";
        font-family: var(--font-ornament);
        font-size: 96px;
        font-weight: 700;
        line-height: 0.82;
        letter-spacing: -0.04em;
        color: #1a2a40;
        opacity: 0.06;
    }

    .sk-services-container {
        padding: 0 20px;
    }

    .sk-services-header {
        flex-direction: column;
        gap: 16px;
        margin-top: 56px;
        margin-bottom: 26px;
    }

    .sk-services-title-area {
        gap: 12px;
        flex-basis: auto;
    }

    .sk-services-main-title {
        font-family: var(--font-display, var(--tf-font-display)) !important;
        font-size: 48px !important;
        font-weight: 400 !important;
        letter-spacing: -0.03em !important;
        line-height: 1.25 !important;
    }

    .sk-services-lead {
        display: none;
    }

    .sk-svc-row__inner {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 24px 20px 26px;
        border: 1px solid rgba(205, 160, 82, 0.18);
        border-radius: 18px;
        background: linear-gradient(180deg, #ffffff 0%, #fffdfa 100%);
        box-shadow: 0 10px 30px rgba(26, 42, 64, 0.06);
    }

    .sk-svc-row__media {
        order: -1;
    }

    .sk-svc-row__text {
        padding-left: 0;
    }
}

@media screen and (max-width: 640px) {
    .sk-services-main-title {
        font-size: 34px !important;
        line-height: 1.34 !important;
    }
}

@media screen and (max-width: 390px) {
    .sk-services-section {
        padding: 56px 0 24px;
    }

    .sk-services-bg-text {
        top: 14px;
        left: 10px;
        right: auto;
        transform: none;
        font-size: 0;
        line-height: 1;
        letter-spacing: 0;
        color: transparent;
        opacity: 1;
    }

    .sk-services-bg-text::before {
        content: "01";
        font-family: var(--font-ornament);
        font-size: 82px;
        font-weight: 700;
        line-height: 0.82;
        letter-spacing: -0.04em;
        color: #1a2a40;
        opacity: 0.06;
    }

    .sk-services-container {
        padding: 0 24px;
    }

    .sk-services-header {
        flex-direction: column;
        gap: 12px;
        margin-bottom: 30px;
    }

    .sk-services-title-area {
        gap: 12px;
        flex-basis: auto;
    }

    .sk-services-sub {
        font-size: 10px;
        letter-spacing: 0.18em;
        gap: 10px;
    }

    .sk-services-sub span {
        width: 22px;
    }

    .sk-services-main-title {
        font-size: 34px !important;
        line-height: 1.34 !important;
    }

    .sk-services-lead {
        display: none;
    }

    .sk-svc-row,
    .sk-svc-row--tint {
        padding-bottom: 22px;
        background-color: transparent;
    }

    .sk-svc-row__inner {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 18px 18px 22px;
        border: 1px solid rgba(205, 160, 82, 0.22);
        border-radius: 18px;
        background: linear-gradient(180deg, #ffffff 0%, #fffdfa 100%);
        box-shadow: 0 10px 30px rgba(26, 42, 64, 0.08);
    }

    .sk-svc-row:first-of-type .sk-svc-row__inner {
        padding-top: 18px;
    }

    .sk-svc-row__media {
        order: -1;
    }

    .sk-svc-row__media > a {
        position: relative;
        overflow: hidden;
        border-radius: 8px;
    }

    .sk-svc-row__ph {
        aspect-ratio: 327 / 184;
        border-radius: 8px;
        box-shadow: 0 12px 28px rgba(26, 42, 64, 0.12);
    }

    .sk-svc-row__tab {
        display: none;
    }

    .sk-svc-row__overlay {
        position: absolute;
        inset: 0;
        z-index: 2;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: 22px 20px 16px;
        background: linear-gradient(180deg, rgba(11, 26, 41, 0.04) 0%, rgba(11, 26, 41, 0.18) 38%, rgba(11, 26, 41, 0.86) 100%);
        pointer-events: none;
    }

    .sk-svc-row__overlay-num {
        font-family: var(--font-latin);
        font-size: 21px;
        font-weight: 500;
        line-height: 1;
        color: #d4a24c;
        margin-bottom: 10px;
    }

    .sk-svc-row__overlay-en {
        font-family: var(--font-latin);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.96);
        margin-bottom: 8px;
    }

    .sk-svc-row__overlay-title {
        font-family: var(--font-display);
        font-size: 16px;
        font-weight: 700;
        line-height: 1.45;
        color: #ffffff;
    }

    .sk-svc-row__text {
        padding-left: 0;
    }

    .sk-svc-row__en {
        display: none;
    }

    .sk-svc-row__title {
        display: none;
    }

    .sk-svc-row__desc {
        max-width: none;
        font-size: 13px;
        line-height: 1.92;
        margin-top: 2px;
    }

    .sk-svc-row__feats {
        margin: 22px 0 22px !important;
        border-top: none;
        max-width: none;
    }

    .sk-svc-row__feats li {
        gap: 10px;
        padding: 0;
        border-bottom: none;
        font-size: 13px;
        line-height: 1.8;
        align-items: flex-start;
    }

    .sk-svc-row__feats li + li {
        margin-top: 8px;
    }

    .sk-svc-row__feats li::before {
        width: 10px;
        margin-top: 0.75em;
    }

    .sk-svc-row__link {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        max-width: 100%;
        min-height: 40px;
        padding: 12px 44px 12px 24px;
        border: 1px solid #cda052;
        border-radius: 6px;
        background: #ffffff;
        color: #b98e3e;
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-align: center;
        box-sizing: border-box;
        margin-top: 4px;
    }

    .sk-svc-row__link span {
        position: absolute;
        top: 50%;
        right: 18px;
        transform: translateY(-50%);
        font-size: 14px;
    }
}

/* ======================================================================
   トップページ：選ばれる4つの理由
   ====================================================================== */

.sk-features-section {
    position: relative;
    background: #0b1a30;
    padding: 80px 0 200px;
    overflow: hidden;
}
.sk-features-bg-text {
    position: absolute;
    top: 95px;
    left: -10px;

    font-family: var(--font-ornament);
    font-size: 175px;
    font-weight: 700;
    line-height: .8;
    letter-spacing: -0.04em;

    color: #ffffff;
    opacity: 0.04;

    pointer-events: none;
    z-index: 2;
}

.sk-features-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(
            90deg,
            rgba(11,26,48,0.95) 0%,
            rgba(11,26,48,0.88) 35%,
            rgba(11,26,48,0.72) 100%
        ),
        url("/wp-content/uploads/2026/05/4riyuu-backpic-2.webp");
    background-size: 75%;
    background-position: right center;
    background-repeat: no-repeat;
    z-index: 1;
}
.sk-features-container {
    position: relative;
    z-index: 2;
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 40px;
}
.sk-features-header {
    margin-top: 170px;
    margin-bottom: 20px;
}
.sk-features-title-area {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.sk-features-sub {
    font-family: var(--font-latin);
    font-size: 12px;
    letter-spacing: 0.2em;
    color: #d4a820;
    display: flex;
    align-items: center;
    gap: 15px;
}
.sk-features-sub::before {
    content: "02";
    font-weight: 700;
}
.sk-features-sub span {
    width: 30px;
    height: 1px;
    background: #d4a820;
}
.sk-features-main-title,
.sk-services-main-title {
    font-family: var(--font-display, var(--tf-font-display)) !important;
    font-size: 48px !important;
    font-weight: 400 !important;
    letter-spacing: -0.03em !important;
    line-height: 1.25 !important;
}

.sk-features-main-title {
    color: #ffffff;
}

.sk-services-main-title {
    color: #1a2a40;
}

@media screen and (max-width: 640px) {
    .sk-services-main-title {
        font-size: 34px !important;
        line-height: 1.34 !important;
    }
}

.sk-features-main-title em {
    font-style: normal;
    color: #d4a820;
}
.sk-features-timeline {
    position: relative;
    margin-left: 0;
}
.sk-features-timeline::before {
    display: none;
}
.sk-feature-item {
    position: relative;
    display: flex;
    gap: 20px;

    margin-bottom: 8px;
    padding-bottom: 8px;
}
.sk-feature-item:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none;
}

.sk-feature-item__icon {
    width: 110px;
    flex-shrink: 0;

    display: flex;
    align-items: flex-start;
    justify-content: center;

    margin-top: -8px;

    background: none;
    border: none;
    border-radius: 0;
}

.sk-feature-item__icon img {
    width: 150px;
    height: 150px;
    object-fit: contain;
}
.sk-feature-item:last-child .sk-feature-item__content {
    border-bottom: none;
}
.sk-feature-item__content {
    width: 700px;

    padding-top: 8px;

    border-bottom: 1px solid rgba(255,255,255,0.08);
    padding-bottom: 16px;
}
.sk-feature-item__title {
    font-family: var(--font-display);
    font-size: var(--h3);
    font-weight: var(--h-weight);
    letter-spacing: var(--h-tracking);
    color: #fff;
    margin-bottom: 8px;
}
.sk-feature-item__desc {
    font-size: 15px;
    line-height: 2;
    color: rgba(255,255,255,0.75);
}
/*　トップページ：選ばれる4つの理由 レスポンシブ　　*/
@media screen and (max-width: 768px) {
    .sk-features-section {
         padding: 64px 0 44px;
    }

    .sk-features-bg-text {
        display: block;
        top: 24px;
        left: 10px;
        right: auto;
        transform: none;
        font-size: 0;
        line-height: 1;
        letter-spacing: 0;
        color: transparent;
        opacity: 1;
    }

    .sk-features-bg-text::before {
        content: "02";
        font-family: var(--font-ornament);
        font-size: 96px;
        font-weight: 700;
        line-height: 0.82;
        letter-spacing: -0.04em;
        color: #ffffff;
        opacity: 0.06;
    }

    .sk-features-container {
        padding: 0 20px;
    }

    .sk-features-header {
        margin-top: 56px;
        margin-bottom: 26px;
    }

    .sk-features-main-title {
        font-size: 30px;
        line-height: 1.35;
    }

    .sk-features-timeline {
        display: flex;
        flex-direction: column;
        gap: 20px;
    }

    .sk-feature-item {
        gap: 16px;
        margin-bottom: 0;
        padding-bottom: 16px;
    }

    .sk-feature-item__icon {
        width: 68px;
        margin-top: 0;
    }

    .sk-feature-item__icon img {
        width: 68px;
        height: 68px;
    }

    .sk-feature-item__content {
        width: auto;
        padding-top: 0;
    }

    .sk-feature-item__title {
        font-size: 24px;
    }

    .sk-feature-item__desc {
        font-size: 14px;
        line-height: 1.9;
    }
}

@media screen and (max-width: 390px) {
    .sk-features-section {
        padding: 56px 0 36px;
        background: #0b1a30;
    }

    .sk-features-section::before {
        display: block;
        background-image:
            linear-gradient(
                180deg,
                rgba(7, 19, 37, 0.80) 0%,
                rgba(7, 19, 37, 0.88) 30%,
                rgba(7, 19, 37, 0.96) 100%
            ),
            url("/wp-content/uploads/2026/07/4riyuu-backpic-mobil-1.webp");
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
    }

    .sk-features-bg-text {
        display: block;
        top: 14px;
        left: 10px;
        right: auto;
        transform: none;
        font-size: 0;
        line-height: 1;
        letter-spacing: 0;
        color: transparent;
        opacity: 1;
    }

    .sk-features-bg-text::before {
        content: "02";
        font-family: var(--font-ornament);
        font-size: 82px;
        font-weight: 700;
        line-height: 0.82;
        letter-spacing: -0.04em;
        color: #ffffff;
        opacity: 0.06;
    }

    .sk-features-container {
        max-width: 390px;
        padding: 0 24px;
        box-shadow: none;
    }

    .sk-features-container::before {
        display: none;
    }

    .sk-features-header {
        margin-bottom: 30px;
    }

    .sk-features-title-area {
        gap: 12px;
    }

    .sk-features-sub {
        font-size: 10px;
        letter-spacing: 0.18em;
        gap: 10px;
        margin: 0;
    }

    .sk-features-sub span {
        flex: none;
        width: 22px;
        max-width: none;
        opacity: 1;
    }

    .sk-features-main-title {
        font-size: 26px;
        line-height: 1.38;
        margin: 0;
    }

    .sk-features-timeline {
        display: flex;
        flex-direction: column;
        gap: 18px;
    }

    .sk-feature-item {
        display: grid;
        grid-template-columns: 60px 1fr;
        column-gap: 16px;
        align-items: start;
        margin-bottom: 0;
        padding-bottom: 18px;
    }

    .sk-feature-item:last-child {
        padding-bottom: 0;
    }

    .sk-feature-item__icon {
        width: 60px;
        height: auto;
        align-items: flex-start;
        justify-content: flex-start;
        margin-top: 4px;
        background: none;
        border-radius: 0;
    }

    .sk-feature-item__icon img {
        width: 60px;
        height: 60px;
        filter: none;
    }

    .sk-feature-item__content {
        width: auto;
        padding-top: 2px;
        padding-bottom: 18px;
        border-bottom: 1px solid rgba(255,255,255,0.10);
    }

    .sk-feature-item:last-child .sk-feature-item__content {
        padding-bottom: 0;
        border-bottom: none;
    }

    .sk-feature-item__title {
        font-size: 24px;
        line-height: 1.35;
        margin-bottom: 10px;
    }

    .sk-feature-item__desc {
        font-size: 13px;
        line-height: 1.85;
        color: rgba(255,255,255,0.82);
    }
}


/* ======================================================================
   トップページ：施工実績セクション (03 SELECTED WORKS)
   ====================================================================== */
.sk-works-section {
    background-color: #ffffff;
    padding: 80px 0;
    font-family: var(--font-body);
    color: #333333;
    box-sizing: border-box;
}
.sk-works-section * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
.sk-works-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}
/* --- ヘッダーエリア --- */
.sk-works-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 40px;
    flex-wrap: wrap;
    gap: 20px;
}
.sk-works-title-area {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.sk-works-sub {
    font-family: var(--font-latin);
    font-size: 12px;
    letter-spacing: 0.2em;
    color: #666;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 15px;
}
.sk-works-sub::before {
    content: "03";
    color: #cda052;
    font-weight: 700;
}
.sk-works-sub span {
    display: inline-block;
    width: 30px;
    height: 1px;
    background-color: #cda052;
}
.sk-works-main-title {
    font-family: var(--font-display);
    font-size: var(--h2);
    font-weight: var(--h-weight);
    letter-spacing: var(--h-tracking);
    color: #1a2a40;
    line-height: 1.2;
}
.sk-works-main-title span {
    color: #cda052;
}
/* タブフィルター */
.sk-works-filter {
    display: flex;
    gap: 10px;
    list-style: none;
    flex-wrap: wrap;
}
.sk-filter-btn {
    display: inline-flex;
    align-items: center;
    height: 38px;
    padding: 0 20px;
    border-radius: 19px;
    border: 1px solid #ddd;
    background: #fff;
    font-size: 13px;
    color: #333;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
}
.sk-filter-btn span {
    font-size: 10px;
    color: #999;
    margin-left: 4px;
}
.sk-filter-btn.is-active {
    background: #0b1a29;
    border-color: #0b1a29;
    color: #fff;
}
.sk-filter-btn.is-active span {
    color: rgba(255, 255, 255, 0.6);
}
/* --- グリッドレイアウト --- */
.sk-works-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-bottom: 50px;
}
.sk-work-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;

    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 14px;

    box-shadow: 0 4px 12px rgba(0,0,0,0.04);
    transition: all 0.3s ease;
}
.sk-work-card:hover {
    transform: translateY(-4px);
    border-color: #d6dbe1;
    box-shadow:
        0 12px 28px rgba(0,0,0,0.08);
}
.sk-work-body {
    padding: 0 2px;
}
.sk-work-thumb {
    margin-bottom: 18px;
}
/* 画像エリア（グラデーションダミー） */
.sk-work-thumb {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
    margin-bottom: 20px;
}
.sk-thumb-gradient-1 { background: linear-gradient(135deg, #18283b, #c19e59); }
.sk-thumb-gradient-2 { background: linear-gradient(135deg, #2b4436, #16241d); }
.sk-thumb-gradient-3 { background: linear-gradient(135deg, #446e54, #122117); }
.sk-thumb-gradient-4 { background: linear-gradient(135deg, #3d70b2, #c7aa5c); }
.sk-thumb-gradient-5 { background: linear-gradient(135deg, #3a3227, #1c1813); }
.sk-thumb-gradient-6 { background: linear-gradient(135deg, #5b7863, #1e2b21); }
.sk-work-meta-tag {
    position: absolute;
    bottom: 15px;
    left: 15px;
    font-family: var(--font-latin);
    font-size: 10px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.6);
    letter-spacing: 0.1em;
}
/* テキストエリア */
.sk-work-cat-info {
    font-family: var(--font-latin);
    font-size: 11px;
    color: #1a2a40;
    letter-spacing: 0.05em;
    margin-bottom: 10px;
}
.sk-work-cat-info span {
    margin: 0 8px;
    color: #ccc;
}
.sk-work-card-title {
    font-family: var(--font-display);
    font-size: var(--h5);
    font-weight: var(--h-weight);
    letter-spacing: var(--h-tracking);
    color: #111;
    line-height: 1.5;
}
/* 数値・実績表記 */
.sk-work-stat {
    display: flex;
    align-items: flex-end;
    gap: 8px;

    margin-bottom: 10px;
}
.sk-stat-num {
    font-family: var(--font-display) !important;
    font-size: 32px;
    font-weight: 400 !important;
    color: #111;
    line-height: 1;
}
.sk-stat-unit {
    font-family: var(--font-display) !important;
    font-size: 12px;
    font-weight: 700;
    color: #cda052;
    margin-right: 4px;
}
.sk-stat-label {
    font-size: 12px;
    color: #666;
    line-height: 1.8;
    margin-top: 10px;
	margin-bottom: 16px;
    padding-bottom: 10px;
}
.sk-work-stat-label {
    margin-top: 20px;
    padding-bottom: 20px;
}
/* --- 下部ボタン --- */
.sk-works-footer {
    text-align: center;
}
.sk-btn-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 54px;
    padding: 0 45px;
    border: 1px solid #1a2a40;
    background: transparent;
    color: #1a2a40;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    transition: all 0.3s ease;
}
.sk-btn-more::after {
    content: "→";
    margin-left: 10px;
    font-family: sans-serif;
    transition: transform 0.3s ease;
}
.sk-btn-more:hover {
    background-color: rgba(26, 42, 64, 0.03);
}
.sk-btn-more:hover::after {
    transform: translateX(4px);
}
/* --- 施工実績：レスポンシブ --- */
@media screen and (max-width: 768px) {
.sk-works-section {
    position: relative;
    overflow: hidden;
    padding: 64px 0 50px;
}
    .sk-works-container {
        padding: 0 20px;
    }
.sk-works-section::before{
    content:"03";

    position:absolute;
    top:24px;
    left:10px;

    font-family:var(--font-ornament);
    font-size:96px;
    font-weight:700;
    line-height:.82;
    letter-spacing:-0.04em;

    color:#1a2a40;
    opacity:.06;

    pointer-events:none;
}
.sk-works-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 30px;
}
    /* 見出しサイズは :root の --h2 で自動縮小（旧 font-size:28px は撤去） */
    .sk-works-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }
    /* カード見出しは --h5(20px) を継承（旧 font-size:16px は撤去） */
    .sk-btn-more {
        width: 100%;
    }
}
/* --- 施工実績：レスポンシブ --- */
@media screen and (max-width:390px){

    .sk-works-section{
        padding:56px 0 24px;
    }

.sk-works-section::before{
    content:"03";

    top:14px;
    left:10px;

    font-family:var(--font-ornament);
    font-size:82px;
    font-weight:700;
    line-height:.82;
    letter-spacing:-0.04em;

    color:#1a2a40;
    opacity:.06;
}

    .sk-works-container{
        padding:0 24px;
    }

    .sk-works-header{
        gap:12px;
        margin-bottom:30px;
    }

    .sk-works-sub{
        font-size:10px;
        letter-spacing:.18em;
        gap:10px;
    }

    .sk-works-sub span{
        width:22px;
    }

    .sk-works-main-title{
        font-size:26px;
        line-height:1.38;
    }
}



/* ======================================================================
   トップページ：CTA (CONTACT)
   ====================================================================== */
.gt-contact-section {
  width: 100%;
  padding: 80px 0;
  font-family: var(--font-body);
  color: #333333;
  box-sizing: border-box;
  background-image: linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4)), url('/wp-content/uploads/2026/05/格子1.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.gt-contact-section * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
.gt-contact-container {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 50px;
}
.gt-contact-left {
  flex: 1;
  min-width: 320px;
}
.gt-sub-title {
  font-family: var(--font-latin);
  font-size: 13px;
  letter-spacing: 0.15em;
  color: #cda052;
  margin-bottom: 20px;
  font-weight: 700;
}
.gt-sub-title span {
  margin: 0 5px;
}
.gt-main-title {
  font-family: var(--font-display);
  font-size: var(--h2);
  line-height: 1.5;
  color: #1a2a40;
  margin-bottom: 25px;
  font-weight: var(--h-weight);
  letter-spacing: var(--h-tracking);
}
.gt-gold-text {
  color: #cda052;
}
.gt-description {
  font-size: 14px;
  line-height: 1.8;
  color: #666666;
  margin-bottom: 30px;
  font-family: var(--font-body);
}
.gt-features-list {
  list-style: none;
  margin-bottom: 35px;
  font-family: var(--font-body);
}
.gt-features-list li {
  font-size: 14px;
  position: relative;
  padding-left: 25px;
  margin-bottom: 12px;
  color: #333333;
}
.gt-features-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #cda052;
  font-weight: bold;
}
.gt-button-group {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
  font-family: var(--font-body);
}
.gt-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 30px;
  font-size: 14px;
  font-weight: bold;
  text-decoration: none;
  border-radius: 2px;
  transition: all 0.3s ease;
}
.gt-btn-primary {
  background-color: #1a2a40;
  color: #ffffff;
  border: 1px solid #1a2a40;
}
.gt-btn-primary:hover {
  background-color: #0e1a2b;
}
.gt-arrow {
  margin-left: 8px;
  font-family: sans-serif;
}
.gt-btn-secondary {
  background-color: transparent;
  color: #1a2a40;
  border: 1px solid #1a2a40;
}
.gt-btn-secondary:hover {
  background-color: rgba(26, 42, 64, 0.05);
}
.gt-contact-right {
  flex: 1;
  min-width: 320px;
  max-width: 480px;
}
.gt-contact-card {
  background: #ffffff;
  padding: 40px;
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}
.gt-card-label {
  font-family: var(--font-latin);
  font-size: 11px;
  letter-spacing: 0.15em;
  color: #cda052;
  font-weight: 700;
  margin-bottom: 25px;
}


/* ======================================================================
   共通パーツ：資料請求CTA
   ====================================================================== */
.sk-doc-cta {
  --sk-doc-gold: #c9a870;
  --sk-doc-gold-hover: #b8966a;
  --sk-doc-navy: #0d1b2a;
  --sk-doc-muted: #5f6670;
  --sk-doc-border: rgba(201, 168, 112, 0.82);
  --gt-gold: var(--sk-doc-gold);
  --gt-gold-hover: var(--sk-doc-gold-hover);

  width: 100%;
  padding: 96px 0 112px;
  background: linear-gradient(to bottom, #fbfaf6 0%, #ffffff 100%);
  color: var(--sk-doc-navy);
  font-family: var(--font-body);
}

.sk-doc-cta,
.sk-doc-cta * {
  box-sizing: border-box;
}

.sk-doc-cta h2,
.sk-doc-cta h3 {
  border: 0 !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.sk-doc-cta h2::before,
.sk-doc-cta h2::after,
.sk-doc-cta h3::before,
.sk-doc-cta h3::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
}

.sk-doc-cta__inner {
  width: min(calc(100% - 80px), 1160px);
  margin: 0 auto;
  padding: 26px 38px;
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr) 280px;
  gap: 44px;
  align-items: center;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid var(--sk-doc-border);
  border-radius: 2px;
  box-shadow: 0 14px 32px rgba(13, 27, 42, 0.055);
}

.sk-doc-cta__media {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 0;
}

.sk-doc-cta__image {
  display: block;
  width: 140px;
  max-width: 100%;
  height: auto;
}

.sk-doc-cta__mock {
  position: relative;
  width: 132px;
  aspect-ratio: 4 / 5;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #18273b 0%, #07111f 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 16px 26px rgba(13, 27, 42, 0.18);
  transform: rotate(-2deg);
}

.sk-doc-cta__mock::before {
  content: "";
  position: absolute;
  inset: 8px -12px -8px 12px;
  z-index: -1;
  background: linear-gradient(145deg, #21344d 0%, #0b1728 100%);
  border: 1px solid rgba(201, 168, 112, 0.18);
  box-shadow: 0 10px 18px rgba(13, 27, 42, 0.16);
}

.sk-doc-cta__mock span {
  font-family: var(--font-latin);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0;
  color: var(--sk-doc-gold);
  text-align: center;
}

.sk-doc-cta__body {
  min-width: 0;
}

.sk-doc-cta__label {
  margin: 0 0 10px;
  font-family: var(--font-latin);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  color: var(--sk-doc-gold);
}

.sk-doc-cta__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 28px !important;
  font-weight: var(--h-weight);
  line-height: 1.55 !important;
  letter-spacing: 0 !important;
  color: var(--sk-doc-navy);
}

.sk-doc-cta__text {
  margin: 12px 0 0;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0;
  color: var(--sk-doc-muted);
}

.sk-doc-cta__actions {
  min-width: 0;
}

.sk-doc-cta .gt-btn {
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr) 56px;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 100%;
  max-width: 280px;
  min-width: 0;
  min-height: 62px;
  padding: 0;
  margin-top: 0;
  border-radius: 0;
  overflow: hidden;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.25s, border-color 0.25s, color 0.25s, transform 0.25s;
}

.sk-doc-cta .gt-btn--outline {
  background: transparent;
  color: var(--sk-doc-gold) !important;
  border: 1px solid var(--sk-doc-gold);
}

.sk-doc-cta .gt-btn--outline:hover {
  background: rgba(201, 168, 112, 0.08);
  border-color: var(--sk-doc-gold-hover);
  color: var(--sk-doc-gold-hover) !important;
  transform: translateY(-1px);
}

.sk-doc-cta .gt-btn__arrow {
  width: 56px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  border-left: 1px solid rgba(201, 168, 112, 0.5);
  font-size: 0;
  line-height: 1;
}

.sk-doc-cta .gt-btn__arrow::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 8px solid currentColor;
}

@media screen and (max-width: 1024px) {
  .sk-doc-cta__inner {
    grid-template-columns: 140px minmax(0, 1fr);
    gap: 32px;
  }

  .sk-doc-cta__actions {
    grid-column: 2;
  }
}

@media screen and (max-width: 720px) {
  .sk-doc-cta {
    padding: 64px 0 72px;
  }

  .sk-doc-cta__inner {
    width: calc(100% - 40px);
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 30px 22px 28px;
  }

  .sk-doc-cta__media {
    justify-content: flex-start;
  }

  .sk-doc-cta__image {
    width: 112px;
  }

  .sk-doc-cta__mock {
    width: 106px;
  }

  .sk-doc-cta__label {
    font-size: 11px;
    margin-bottom: 8px;
  }

  .sk-doc-cta__title {
    font-size: 23px !important;
    line-height: 1.55 !important;
  }

  .sk-doc-cta__text {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.9;
  }

  .sk-doc-cta__actions {
    grid-column: auto;
  }

  .sk-doc-cta .gt-btn {
    max-width: none;
    min-height: 58px;
    grid-template-columns: minmax(0, 1fr) 54px;
    font-size: 14px;
  }

  .sk-doc-cta .gt-btn__arrow {
    width: 54px;
  }
}


/* ======================================================================
   共通パーツ：相談CTA
   Expected file: template-parts/consultation-cta.php
   施工実績一覧の中間など、一覧途中に挟む軽量な1ボタンCTA。
   ページ下部の3段階CTA（.gt-cta-wrap / .sk-doc-cta）とは別デザインとして、
   ネイビー背景＋ゴールドボタンの帯（バナー）で構成する。
   ▼0814再修正：画像ありの場合、セクション右側に写真を敷き、ネイビーからの
   横方向グラデーションでテキスト側へなじませる構成に変更（K確認済み）。
   ▼0814再々修正：写真が大きく（ズームして）見えすぎたため、
   ①バナー自体の高さを下げる（min-heightを撤廃し、paddingだけで高さを決める）
   ②写真を右側の一部（42%幅）だけに敷き、セクション全幅を覆わないようにする
   の2点を調整（K添付の参考画像に近い、控えめな大きさに）。
   ====================================================================== */
.sk-consult-cta {
  --sk-consult-navy: #0b1a29;
  --sk-consult-gold: #ddb22c;
  --sk-consult-gold-hover: #d4a820;

  position: relative;
  overflow: hidden;
  width: 100%;
  background: var(--sk-consult-navy);
  color: #ffffff;
  font-family: var(--font-body);
}

.sk-consult-cta,
.sk-consult-cta * {
  box-sizing: border-box;
}

/* Lightning 親の h2 装飾打ち消し（このパーツ内だけ。他ページで使っても自己完結するように） */
.sk-consult-cta h2 {
  border: 0 !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.sk-consult-cta h2::before,
.sk-consult-cta h2::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
}

/* 背景写真（image_url指定時のみ出力される）。
   セクション全幅ではなく右側42%だけに敷き、写真が大きく見えすぎないようにする */
.sk-consult-cta__bg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  width: 42%;
  z-index: 0;
  background-size: cover;
  background-position: center;
}

/* ネイビー→透明の横グラデーション。写真の敷き始め（左から58%付近）に合わせて
   その手前からなじませる。0814再修正：段階を増やし、より滑らかに写真へ
   溶け込むシェードに調整（K添付の参考画像に近い、柔らかいなじませ方） */
.sk-consult-cta__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    90deg,
    rgba(11, 26, 41, 0.95) 0%,
    rgba(11, 26, 41, 0.88) 42%,
    rgba(11, 26, 41, 0.6) 58%,
    rgba(11, 26, 41, 0.25) 75%,
    rgba(11, 26, 41, 0.05) 92%,
    rgba(11, 26, 41, 0) 100%
  );
}

/* 内部コンテンツ幅：施工実績一覧（.wka-inner）と同じ max-width / padding。
   高さは padding だけで決める（min-heightは持たせず、控えめな帯の高さにする） */
.sk-consult-cta__inner {
  position: relative;
  z-index: 2;
  max-width: 1240px;
  margin: 0 auto;
  padding: 32px 40px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 40px;
}

.sk-consult-cta__body { min-width: 0; max-width: 640px; }
.sk-consult-cta__label {
  margin: 0 0 8px;
  font-family: var(--font-latin);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--sk-consult-gold);
}
.sk-consult-cta__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 26px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  color: #ffffff;
}
.sk-consult-cta__text {
  margin: 10px 0 0;
  font-size: 14.5px;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.76);
}

.sk-consult-cta__actions { min-width: 0; }

/* ボタン：front-page-cta.php / document-request-cta.php と同じ .gt-btn 構造。
   ベースのstyle.css側にある無関係な .gt-btn（旧仕様）と名前が衝突するため、
   .sk-doc-cta と同じ手法で .sk-consult-cta 配下にスコープして上書きする */
.sk-consult-cta .gt-btn {
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr) 56px;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 280px; /* 0814追加：もう少し横長に見えるよう幅を拡大 */
  min-height: 52px;
  padding: 0;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .25s, border-color .25s, color .25s, transform .25s;
}
.sk-consult-cta .gt-btn--gold {
  background: var(--sk-consult-gold);
  color: var(--sk-consult-navy) !important;
  border: 1px solid var(--sk-consult-gold);
}
.sk-consult-cta .gt-btn--gold:hover {
  background: var(--sk-consult-gold-hover);
  border-color: var(--sk-consult-gold-hover);
  color: var(--sk-consult-navy) !important;
  transform: translateY(-1px);
}
.sk-consult-cta .gt-btn__arrow {
  width: 56px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  border-left: 1px solid rgba(11, 26, 41, 0.26);
  font-size: 0;
  line-height: 1;
}
.sk-consult-cta .gt-btn__arrow::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 8px solid currentColor;
}

@media screen and (max-width: 768px) {
  /* モバイルは横並びの余地がないため、写真は非表示にして文字の可読性を優先 */
  .sk-consult-cta__bg { display: none; }
  .sk-consult-cta__overlay { display: none; }

  .sk-consult-cta__inner {
    max-width: none;
    padding: 64px 20px; /* 0814追加：詰まって見えたため上下の余白を2倍に */
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .sk-consult-cta__body { max-width: none; }
  .sk-consult-cta__label { margin-bottom: 10px; }
  .sk-consult-cta__title {
    font-size: 24px !important; /* 0814追加：小さく感じたためサイズアップ */
    line-height: 1.65 !important; /* 行間を広げて詰まった印象を緩和 */
  }
  .sk-consult-cta__text {
    margin-top: 14px;
    font-size: 13.5px;
    line-height: 1.95;
  }

  .sk-consult-cta__actions { margin-top: 8px; }
  .sk-consult-cta .gt-btn {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) 48px;
    min-height: 52px;
  }
  .sk-consult-cta .gt-btn__arrow { width: 48px; }
}


/* ======================================================================
   共通パーツ：コラム記事中間CTA
   Expected file: template-parts/column-cta.php
   ショートコード [column_cta]（登録：functions.php「共通: コラム記事中間CTA」）。
   コラム記事本文（.aprose）の途中に差し込む軽量CTA。白〜ごく薄いアイボリー
   背景＋ゴールド細枠のバナーで、記事コンテンツ幅に収まるようフルワイドには
   しない（0815追加）。

   ボタンは「ページ下部にあるCTA」（template-parts/front-page-cta.php の
   .gt-btn--gold＝お問い合わせフォーム／.gt-btn--outline＝資料請求フォーム）
   と同じ配色・構造にそろえる。ただしクラス名は .gt-btn 側（旧仕様と衝突する
   ため .sk-consult-cta/.sk-doc-cta も同様にスコープ済み）を流用せず、独自の
   .sk-column-cta__button 系クラスで完結させる。

   ▼0815再修正の経緯：
   ①縦積み・中央寄せカード → ②横長バナー（左：見出し＋説明文／右：
   ボタン2つ横並び）→ ③現在：バナーの中で上から「見出し→説明文→
   ボタン2つ（横並び）」の縦積みに変更。②ではテキストとボタンが横幅を
   取り合い、ボタンを窮屈な幅まで縮めないと収まらず不自然だったため、
   ボタンをテキスト行の下に独立させた。ボタン自体のCSS
   （.sk-column-cta__button 〜 --document/--contact/-arrow）は変更せず、
   それを内包する .sk-column-cta__inner 以下の並び方だけを変更している。
   ====================================================================== */
.sk-column-cta {
  --scc-navy:          #0b1a30;
  --scc-navy-deep:     #061222;
  --scc-gold:          #c9a870; /* ページ下部CTAの資料請求フォーム（アウトライン）と同色 */
  --scc-gold-hover:    #b8966a;
  --scc-gold-fill:     #ddb22c; /* ページ下部CTAのお問い合わせフォーム（塗り）と同色 */
  --scc-gold-fill-hov: #d4a820;
  --scc-bg:            #fbf8f2;
  --scc-text-muted:    #4a5164;

  position: relative;
  margin: 2.4em 0;
  padding: 24px clamp(24px, 4vw, 40px);
  background: var(--scc-bg);
  border: 1px solid var(--scc-gold);
  border-radius: 6px;
  box-shadow: 0 8px 28px rgba(11, 26, 41, 0.06);
  text-align: center; /* 0815再修正：左寄せは不自然だったため中央寄せに戻す */
}

.sk-column-cta,
.sk-column-cta * {
  box-sizing: border-box;
}

/* バナー本体：上から「タイトル→文章→ボタン」の縦並び。
   0815再々々修正：見出し＋説明文の横にボタンを並べる構成だと、ボタンを
   窮屈な幅に縮めないと入らずデザインが不自然になっていたため、ボタンを
   テキストの下の行に独立して配置する構成に変更した。これにより、ボタンは
   テキストと幅を取り合わないので、無理に小さくする必要が無くなる。 */
.sk-column-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: center; /* 0815再修正：左寄せは不自然だったため中央寄せに戻す */
  gap: 20px;
}

.sk-column-cta__body {
  width: 100%;
}

/* 0815再修正：見出し・本文の折り返し制御用。
   "@@BR@@" トークン（template-parts/column-cta.php 側で <br class="sk-column-cta__break-sp">
   に変換）はスマホ（768px以下）でのみ改行として機能させる。PCでは1行の
   途中に不要な改行が入らないよう、既定では非表示にしておく。 */
.sk-column-cta__break-sp {
  display: none;
}

/* 0815再々修正：資料請求するボタンだけ下線が消えないケースがあったため、
   このCTA内のリンクすべてに対して確実に下線を打ち消す保険ルール。
   クラスの組み合わせや .aprose 側の詳細度に関わらず必ず効くようにする。 */
.sk-column-cta a,
.sk-column-cta a:link,
.sk-column-cta a:visited,
.sk-column-cta a:hover,
.sk-column-cta a:focus,
.sk-column-cta a:active {
  text-decoration: none !important;
}

/* 0815再々々修正：クラスだけの指定では、記事本文側の下線指定（IDを含む
   セレクタで !important 付き等、より詳細度の高いもの）に負けて「通常時は
   下線が残り、ホバー時だけ消える」現象が起きていた。
   ID セレクタ（#sk-column-cta）は class だけの指定より詳細度が高いため、
   ここで確実に上書きする。 */
#sk-column-cta a,
#sk-column-cta a:link,
#sk-column-cta a:visited,
#sk-column-cta a:hover,
#sk-column-cta a:focus,
#sk-column-cta a:active {
  text-decoration: none !important;
}

/* コラム本文（.aprose）側の既定の見出し／段落スタイルが !important 付きで
   勝ってしまうケースがあったため、.aprose を含めた詳細度の高いセレクタで
   確実に上書きする（0815再々修正） */
.aprose .sk-column-cta__title,
.sk-column-cta__title {
  position: relative;
  margin: 0 0 6px !important; /* 0815再修正：横長バナー化に伴い説明文との間隔だけ確保 */
  font-family: var(--font-display) !important;
  font-size: 21px !important; /* 0815再修正：横長バナー化でボタンと同じ行の高さに収まるサイズへ調整 */
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.02em !important;
  color: var(--scc-navy) !important;
}

.sk-column-cta__text {
  margin: 0;
  font-family: var(--font-body);
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--scc-text-muted);
}

.sk-column-cta__buttons {
  display: flex;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: 24px; /* 0815再修正：PCでボタン同士が近すぎたため16px→24px */
}

.aprose .sk-column-cta__button,
.sk-column-cta__button {
  display: inline-grid;
  grid-template-columns: minmax(0, 1fr) 56px;
  align-items: center;
  min-width: 200px; /* 0815再々々修正：ボタンがテキストと幅を取り合わなくなったので160px→200pxに戻す */
  min-height: 58px;
  padding: 0;
  border-radius: 3px;
  overflow: hidden;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em;
  line-height: 1.35;
  text-align: center;
  text-decoration: none !important; /* 0815再修正：.aprose側の既定リンク下線が勝っていたため明示的に打ち消す */
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .25s, border-color .25s, color .25s, transform .25s;
}

.aprose .sk-column-cta__button:hover,
.aprose .sk-column-cta__button:focus,
.aprose .sk-column-cta__button:visited,
.sk-column-cta__button:hover,
.sk-column-cta__button:focus,
.sk-column-cta__button:visited {
  text-decoration: none !important;
}

.sk-column-cta__button-arrow {
  width: 56px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  border-left: 1px solid rgba(11, 26, 41, 0.26);
  font-size: 0;
  line-height: 1;
}

.sk-column-cta__button-arrow::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 8px solid currentColor;
}

/* 資料請求する：白背景＋ゴールド細枠＋ゴールド文字（ページ下部CTAの資料請求フォームと同系） */
.sk-column-cta__button--document {
  background: #ffffff;
  color: var(--scc-gold) !important;
  border: 1px solid var(--scc-gold);
}
.sk-column-cta__button--document:hover {
  background: rgba(201, 168, 112, 0.08);
  border-color: var(--scc-gold-hover);
  color: var(--scc-gold-hover) !important;
  transform: translateY(-1px);
}

/* お問い合わせする：ページ下部CTAのお問い合わせフォームと同じゴールド塗り＋濃紺文字 */
.sk-column-cta__button--contact {
  background: var(--scc-gold-fill);
  color: var(--scc-navy-deep) !important;
  border: 1px solid var(--scc-gold-fill);
}
.sk-column-cta__button--contact:hover {
  background: var(--scc-gold-fill-hov);
  border-color: var(--scc-gold-fill-hov);
  color: var(--scc-navy-deep) !important;
  transform: translateY(-1px);
}

@media screen and (max-width: 768px) {
  .sk-column-cta {
    margin: 1.8em 0;
    padding: 28px 20px;
    border-radius: 4px;
  }

  .sk-column-cta__inner {
    gap: 16px;
  }

  /* 0815再修正："@@BR@@" トークンをスマホでは実際の改行として表示する */
  .sk-column-cta__break-sp {
    display: inline;
  }

  .aprose .sk-column-cta__title,
  .sk-column-cta__title {
    font-size: 19px !important; /* 0815再修正：PCのバナー用サイズ(21px)からスマホ向けに微調整 */
    line-height: 1.6 !important;
    letter-spacing: 0.01em !important;
  }

  .sk-column-cta__text {
    font-size: 13px;
    line-height: 1.8;
  }

  .sk-column-cta__buttons {
    /* 0815再修正：親(.sk-column-cta__inner)がalign-items:centerのため、
       このコンテナ自体の幅を明示しないと中身が縮んでしまい、ボタンの
       width:100%が「見た目の狭い箱の100%」にしかならず、カード全体の
       幅いっぱいに広がらなかった。「すべての記事を見る」ボタン
       （.arelated__all、column-assets.html）と同様にカード幅いっぱいへ広げる。 */
    width: 100%;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 12px;
  }

  .aprose .sk-column-cta__button,
  .sk-column-cta__button {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) 48px;
    min-height: 54px;
  }

  .sk-column-cta__button-arrow { width: 48px; }
}


/* ======================================================================
   共通パーツ：著者カード（コラム詳細などの「この記事を書いた人」枠）
   Expected file: template-parts/author-card.php
   左に濃紺のブランドパネル（EDITORIAL / SAITAMA KOGEI）、右に名義・
   ゴールドの罫線・説明文を配置する2カラム構成。コラム詳細（single.php）
   から呼び出す想定だが、他の記事系テンプレートでも同じCSSクラスで
   使い回せるよう、色・余白は自己完結（ローカル変数）で定義する。
   PC：左右2カラム／スマホ（〜640px）：縦積み。
   ====================================================================== */
.sk-author-card {
  --sk-author-navy: #0D1B2A;
  --sk-author-gold: #D4A820;

  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  align-items: stretch;
  margin: 48px 0 0;
  background: #ffffff;
  border: 1px solid #e2e2df;
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(13, 27, 42, 0.025);
}

.sk-author-card,
.sk-author-card * {
  box-sizing: border-box;
}

/* Lightning 親テーマの h2 装飾（青い罫線・グレーの下線）打ち消し。
   このパーツ内の見出し（.sk-author-card__name）だけに適用し、
   ゴールドの罫線（.sk-author-card__rule）だけが残るようにする */
.sk-author-card h2 {
  border: 0 !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.sk-author-card h2::before,
.sk-author-card h2::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
}

.sk-author-card__brand {
  background: var(--sk-author-navy);
  padding: 40px 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.sk-author-card__eyebrow {
  display: block;
  font-family: var(--font-latin);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--sk-author-gold);
  margin: 0 0 14px;
}

.sk-author-card__brandname {
  margin: 0;
  font-family: var(--font-display);
  font-size: 25px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.02em;
  color: #ffffff;
}
.sk-author-card__brandname span {
  display: block;
}

.sk-author-card__body {
  min-width: 0;
  padding: 40px 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.sk-author-card__name {
  margin: 0;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--sk-author-navy);
}

.sk-author-card__rule {
  display: block;
  width: 40px;
  height: 2px;
  margin: 16px 0 18px;
  background: var(--sk-author-gold);
}

.sk-author-card__desc {
  margin: 0;
  font-family: var(--font-body);
  font-size: 14.5px;
  line-height: 1.9;
  color: #55555a;
}

@media screen and (max-width: 640px) {
  .sk-author-card {
    grid-template-columns: 1fr;
    margin-top: 40px;
  }
  .sk-author-card__brand {
    padding: 28px 24px;
  }
  .sk-author-card__eyebrow { margin-bottom: 10px; }
  .sk-author-card__brandname { font-size: 22px; }
  .sk-author-card__body {
    padding: 28px 24px 32px;
  }
  .sk-author-card__name { font-size: 20px; }
  .sk-author-card__rule { margin: 14px 0 16px; }
  .sk-author-card__desc {
    font-size: 13.5px;
    line-height: 1.85;
  }
}


/* ======================================================================
   フッター (FOOTER)
   カード化：紺色カードを白背景の上に配置。角丸は上側のみ・小さめ、
   下端はページ最下部にそのままつながる（rebita.co.jp を参考）
   ====================================================================== */
.sk-site-footer {
    position: relative;
    background-color: #0b1a29;
    color: #b9c7d8;
    font-family: var(--font-latin);
    font-size: 14px;
    line-height: 1.8;
    padding: 0;
    width: 100%;
    box-sizing: border-box;
}
.sk-site-footer *,
.sk-site-footer *::before,
.sk-site-footer *::after { box-sizing: border-box; }
.sk-site-footer .sk-footer-container { position: relative; width: 100%; }
.sk-site-footer .sk-footer-inner { max-width: 1600px; margin: 0 auto; padding: 0 6%; }
.sk-site-footer .sk-footer-main {
    display: grid;
    grid-template-columns: minmax(240px, 1.2fr) minmax(0, 2.4fr);
    align-items: start;
    gap: clamp(40px, 6vw, 100px);
    padding: 100px 8% 44px;
    border-bottom: 1px solid rgba(164,179,198,.25);
}
.sk-site-footer .sk-footer-brand,
.sk-site-footer .sk-footer-brand__inner { min-width: 0; text-align: left; }
.sk-site-footer .sk-brand-logo { margin: 0; }
.sk-site-footer .sk-brand-logo img { display: block; width: 190px; max-width: 100%; height: auto; }
.sk-site-footer .sk-footer-address {
    display: block;
    margin: 36px 0 16px;
    font-family: var(--font-display);
    font-size: 17px;
    font-style: normal;
    line-height: 1.6;
    color: #e1e7ee;
}
.sk-site-footer .sk-footer-postcode,
.sk-site-footer .sk-footer-location { display: block; overflow-wrap: anywhere; word-break: normal; }
.sk-site-footer .sk-footer-phone {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    max-width: 100%;
    color: #f5f6f8;
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1.5;
    text-decoration: none;
    white-space: nowrap;
}
.sk-site-footer .sk-footer-phone__label { color: #ffbf24; font-size: .75em; }
.sk-site-footer .sk-footer-nav-group { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: clamp(24px,4vw,70px); min-width: 0; }
.sk-site-footer .sk-footer-nav-col { min-width: 0; }
.sk-site-footer .sk-nav-title { font-family: var(--font-latin); color: #fff; font-size: 17px; font-weight: 700; letter-spacing: .03em; margin: 0 0 20px; line-height: 1.5; }
.sk-site-footer .sk-footer-nav-col ul { list-style: none; padding: 0; margin: 0; }
.sk-site-footer .sk-footer-nav-col li { margin: 0 0 16px; }
.sk-site-footer .sk-footer-nav-col a,
.sk-site-footer .sk-footer-contact-link { font-family: var(--font-display); color: #b9c7d8; text-decoration: none; font-size: 16px; font-weight: 500; letter-spacing: .03em; line-height: 1.8; transition: color .3s ease; }
.sk-site-footer .sk-footer-contact-link { display: block; margin-bottom: 16px; }
.sk-site-footer a:hover { color: #fff; }
.sk-site-footer a:focus-visible,
.sk-site-footer button:focus-visible { outline: 2px solid #ffbf24; outline-offset: 5px; }
.sk-site-footer .sk-footer-bottom { padding: 36px 0 34px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.sk-site-footer .sk-copyright { font-size: 11px; color: #b9c7d8; margin: 0; letter-spacing: .04em; line-height: 1.8; text-align: left; }
.sk-site-footer .sk-bottom-links { display: flex; align-items: center; gap: 28px; flex-shrink: 0; }
.sk-site-footer .sk-bottom-links a { font-family: var(--font-latin); font-size: 11px; color: #b9c7d8; letter-spacing: .03em; text-decoration: none; }
.sk-site-footer .sk-bottom-links a:hover { color: #ffbf24; }
.sk-site-footer .sk-page-top { position: absolute; top: 28px; right: 5%; width: 44px; height: 44px; border: 1px solid rgba(212,168,32,.6); border-radius: 50%; background: rgba(212,168,32,.12); color: #ffbf24; text-decoration: none; display: flex; align-items: center; justify-content: center; z-index: 10; }
.sk-site-footer .sk-page-top::before { content: "▲"; font-size: 12px; }
.sk-site-footer .sk-page-top:hover { background: rgba(212,168,32,.22); }
.sk-site-footer .sk-footer-mobile { display: none; }
@media screen and (min-width: 768px) and (max-width: 1199px) {
    .sk-site-footer .sk-footer-main { grid-template-columns: minmax(210px,1fr) minmax(0,2fr); gap: 32px; padding: 80px 0 36px; }
    .sk-site-footer .sk-footer-nav-group { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
    .sk-site-footer .sk-footer-phone { font-size: 22px; }
    .sk-site-footer .sk-footer-bottom { flex-wrap: wrap; }
}
@media screen and (max-width: 767px) {
    .sk-site-footer .sk-footer-inner { padding: 0 6%; }
    .sk-site-footer .sk-footer-main { display: block; padding: 54px 0 30px; }
    .sk-site-footer .sk-footer-brand { margin-bottom: 24px; }
    .sk-site-footer .sk-brand-logo { padding-right: 62px !important; }
    .sk-site-footer .sk-brand-logo img { width: 168px; }
    .sk-site-footer .sk-footer-address { margin: 26px 0 16px; font-size: 16px; line-height: 1.75; }
    .sk-site-footer .sk-footer-postcode { color: #b9c7d8; font-family: var(--font-latin); }
    .sk-site-footer .sk-footer-location { color: #f5f6f8; letter-spacing: .04em; }
    .sk-site-footer .sk-footer-phone { gap: 12px; font-family: var(--font-number); font-size: clamp(20px,5.5vw,26px); font-weight: 500; }
    .sk-site-footer .sk-footer-phone__label { font-size: 16px; font-weight: 700; letter-spacing: .03em; }
    .sk-site-footer .sk-footer-nav-group--pc { display: none; }
    .sk-site-footer .sk-footer-mobile { display: block; width: 100%; }
    .sk-site-footer .sk-footer-accordion { border-top: 1px solid rgba(164,179,198,.25); }
    .sk-site-footer .sk-footer-accordion__head { appearance: none; width: 100%; min-height: 60px; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: space-between; text-align: left; }
    .sk-site-footer .sk-footer-accordion__head,
    .sk-site-footer .sk-footer-mobile__title { color: #ffbf24; font-family: var(--font-latin); font-size: 16px; font-weight: 700; letter-spacing: .04em; line-height: 1.2; }
    .sk-site-footer .sk-footer-accordion__head::after { content: "+"; flex: 0 0 44px; text-align: right; font-size: 24px; font-weight: 300; line-height: 1; }
    .sk-site-footer .sk-footer-accordion__head[aria-expanded="true"]::after { content: "\2212"; }
    .sk-site-footer .sk-footer-accordion__body { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .32s ease, opacity .24s ease; }
    .sk-site-footer .sk-footer-accordion__body[hidden] { display: none; }
    .sk-site-footer .sk-footer-accordion__body ul { list-style: none; margin: 0; padding: 0 0 22px; }
    .sk-site-footer .sk-footer-accordion__body li + li { margin-top: 10px; }
    .sk-site-footer .sk-footer-accordion__body a { display: inline-block; font-family: var(--font-display); color: #c6d1dd; text-decoration: none; font-size: 15px; font-weight: 500; line-height: 1.8; }
    .sk-site-footer .sk-footer-contact--sp { margin: 0; padding-top: 24px; border-top: 1px solid rgba(164,179,198,.25); }
    .sk-site-footer .sk-footer-mobile__title { margin: 0 0 18px; padding: 0; border: 0; background: transparent; box-shadow: none; }
    .sk-site-footer .sk-footer-contact--sp .sk-footer-contact-link { width: 100%; min-height: 44px; margin: 0; padding: 0; color: #f5f6f8; display: flex; align-items: center; justify-content: space-between; gap: 18px; font-size: 16px; font-weight: 600; line-height: 1.5; }
    .sk-site-footer .sk-footer-contact-link__ico { flex: 0 0 auto; width: 7px; height: 7px; margin-right: 3px; border-top: 2px solid #ffbf24; border-right: 2px solid #ffbf24; transform: rotate(45deg); }
    .sk-site-footer .sk-footer-bottom { padding: 26px 0 36px; flex-direction: column-reverse; gap: 12px; }
    .sk-site-footer .sk-bottom-links { justify-content: center; gap: 12px; flex-wrap: wrap; }
    .sk-site-footer .sk-bottom-links a { font-size: 12px; line-height: 1.5; }
    .sk-site-footer .sk-bottom-links a + a::before { content: "|"; margin-right: 12px; color: #b9c7d8; }
    .sk-site-footer .sk-copyright { width: 100%; max-width: 300px; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
    .sk-site-footer .sk-footer-accordion__body { transition: none !important; }
}

/* Header compact floating responsive fix 0808_084648
   Make tablet/mobile buttons closer to the reference: smaller, lower, fixed, and 3-line menu. */
@media screen and (max-width: 1024px) {
    .sk-header,
    .home .sk-header,
    .page-template-front .sk-header,
    .sk-header.is-scrolled,
    .home .sk-header.is-scrolled,
    .page-template-front .sk-header.is-scrolled {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        background: transparent !important;
        border-bottom: 0 !important;
        box-shadow: none !important;
        z-index: 1200 !important;
        pointer-events: none;
    }

    .sk-header__inner,
    .home .sk-header__inner,
    .page-template-front .sk-header__inner,
    .sk-header.is-scrolled .sk-header__inner,
    .home .sk-header.is-scrolled .sk-header__inner,
    .page-template-front .sk-header.is-scrolled .sk-header__inner {
        min-height: 0 !important;
        height: auto !important;
        padding: clamp(14px, 4.2vw, 24px) clamp(12px, 3.4vw, 24px) 0 clamp(14px, 4vw, 26px) !important;
        align-items: flex-start !important;
        background: transparent !important;
        pointer-events: none;
    }

    .sk-header__logo,
    .sk-header__right,
    .sk-mobile-nav,
    .sk-scroll-menu {
        pointer-events: auto;
    }

    .sk-header__nav,
    .home .sk-header__nav,
    .page-template-front .sk-header__nav,
    .sk-header.is-scrolled .sk-header__nav,
    .home .sk-header.is-scrolled .sk-header__nav,
    .page-template-front .sk-header.is-scrolled .sk-header__nav {
        display: none !important;
    }

    .sk-header__logo {
        flex: 1 1 auto;
        min-width: 0;
        max-width: clamp(118px, 32vw, 180px) !important;
    }

    .sk-header__logo img {
        max-width: 100%;
        max-height: clamp(22px, 5vw, 30px) !important;
        height: auto;
    }

    .sk-header__right,
    .home .sk-header__right,
    .page-template-front .sk-header__right,
    .sk-header.is-scrolled .sk-header__right,
    .home .sk-header.is-scrolled .sk-header__right,
    .page-template-front .sk-header.is-scrolled .sk-header__right {
        height: auto !important;
        align-items: flex-start !important;
        justify-content: flex-end !important;
        gap: 0 !important;
        margin-left: auto !important;
        flex: 0 0 auto;
    }

    .sk-header__contact,
    .home .sk-header__contact,
    .page-template-front .sk-header__contact,
    .sk-header.is-scrolled .sk-header__contact,
    .home .sk-header.is-scrolled .sk-header__contact,
    .page-template-front .sk-header.is-scrolled .sk-header__contact {
        width: clamp(92px, 24vw, 120px) !important;
        height: clamp(28px, 7.6vw, 34px) !important;
        min-height: clamp(28px, 7.6vw, 34px) !important;
        padding: 0 !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 0 !important;
        font-size: clamp(10px, 2.6vw, 12px) !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        letter-spacing: 0 !important;
        white-space: nowrap !important;
        word-break: keep-all;
        text-align: center;
    }

    .sk-header__contact::before,
    .home .sk-header__contact::before,
    .page-template-front .sk-header__contact::before,
    .sk-header.is-scrolled .sk-header__contact::before,
    .home .sk-header.is-scrolled .sk-header__contact::before,
    .page-template-front .sk-header.is-scrolled .sk-header__contact::before {
        display: none !important;
        content: none !important;
    }

    .sk-mobile-nav,
    .sk-scroll-menu,
    .home .sk-scroll-menu,
    .page-template-front .sk-scroll-menu,
    .sk-header.is-scrolled .sk-scroll-menu {
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        margin: 0 !important;
        flex: 0 0 auto;
    }

    .sk-mobile-nav > summary,
    .sk-scroll-menu > summary,
    .sk-mobile-nav[open] > summary,
    .sk-scroll-menu[open] > summary,
    .home .sk-scroll-menu > summary,
    .page-template-front .sk-scroll-menu > summary,
    .home .sk-scroll-menu[open] > summary,
    .page-template-front .sk-scroll-menu[open] > summary,
    .sk-header.is-scrolled .sk-scroll-menu > summary,
    .sk-header.is-scrolled .sk-scroll-menu[open] > summary {
        width: clamp(84px, 22vw, 106px) !important;
        height: clamp(28px, 7.6vw, 34px) !important;
        min-height: clamp(28px, 7.6vw, 34px) !important;
        padding: 0 clamp(8px, 2.4vw, 12px) !important;
        display: grid !important;
        grid-template-columns: clamp(18px, 5vw, 24px) max-content !important;
        grid-template-rows: 1fr 1px 3px 1px 3px 1px 1fr !important;
        align-content: stretch !important;
        align-items: stretch !important;
        justify-content: center !important;
        column-gap: clamp(6px, 1.8vw, 9px) !important;
        row-gap: 0 !important;
        background: #ffffff !important;
        border: 1px solid #031323 !important;
        color: #031323 !important;
        box-shadow: none !important;
    }

    .sk-scroll-menu:not([open]) > summary span,
    .sk-mobile-nav:not([open]) > summary span,
    .home .sk-scroll-menu:not([open]) > summary span,
    .page-template-front .sk-scroll-menu:not([open]) > summary span {
        display: block !important;
        grid-column: 1 !important;
        width: clamp(18px, 5vw, 24px) !important;
        height: 1px !important;
        align-self: center !important;
        justify-self: center !important;
        background: currentColor !important;
        opacity: 1 !important;
        transform: none !important;
    }

    .sk-scroll-menu:not([open]) > summary span:nth-child(1),
    .sk-mobile-nav:not([open]) > summary span:nth-child(1) {
        grid-row: 2 !important;
    }

    .sk-scroll-menu:not([open]) > summary span:nth-child(2),
    .sk-mobile-nav:not([open]) > summary span:nth-child(2) {
        grid-row: 4 !important;
    }

    .sk-scroll-menu:not([open]) > summary span:nth-child(3),
    .sk-mobile-nav:not([open]) > summary span:nth-child(3) {
        grid-row: 6 !important;
    }

    .sk-scroll-menu > summary em,
    .sk-mobile-nav > summary em,
    .home .sk-scroll-menu > summary em,
    .page-template-front .sk-scroll-menu > summary em,
    .sk-header.is-scrolled .sk-scroll-menu > summary em {
        grid-column: 2 !important;
        grid-row: 1 / 8 !important;
        align-self: center !important;
        justify-self: start !important;
        color: currentColor !important;
        font-size: clamp(10px, 2.6vw, 12px) !important;
        font-weight: 500 !important;
        line-height: 1 !important;
        letter-spacing: 0 !important;
        white-space: nowrap !important;
    }

    .sk-mobile-nav[open] > summary,
    .sk-scroll-menu[open] > summary,
    .home .sk-scroll-menu[open] > summary,
    .page-template-front .sk-scroll-menu[open] > summary {
        position: fixed !important;
        top: clamp(14px, 4.2vw, 24px) !important;
        right: clamp(12px, 3.4vw, 24px) !important;
    }
}

@media screen and (max-width: 480px) {
    .sk-header__inner,
    .home .sk-header__inner,
    .page-template-front .sk-header__inner,
    .sk-header.is-scrolled .sk-header__inner,
    .home .sk-header.is-scrolled .sk-header__inner,
    .page-template-front .sk-header.is-scrolled .sk-header__inner {
        padding-top: 10px !important;
        padding-right: 10px !important;
        padding-left: 10px !important;
    }

    .sk-header__logo {
        max-width: clamp(116px, 34vw, 140px) !important;
    }

    .sk-header__contact,
    .home .sk-header__contact,
    .page-template-front .sk-header__contact,
    .sk-header.is-scrolled .sk-header__contact,
    .home .sk-header.is-scrolled .sk-header__contact,
    .page-template-front .sk-header.is-scrolled .sk-header__contact {
        width: clamp(90px, 25vw, 102px) !important;
        height: 30px !important;
        min-height: 30px !important;
        font-size: 10px !important;
    }

    .sk-mobile-nav > summary,
    .sk-scroll-menu > summary,
    .sk-mobile-nav[open] > summary,
    .sk-scroll-menu[open] > summary,
    .home .sk-scroll-menu > summary,
    .page-template-front .sk-scroll-menu > summary,
    .home .sk-scroll-menu[open] > summary,
    .page-template-front .sk-scroll-menu[open] > summary,
    .sk-header.is-scrolled .sk-scroll-menu > summary,
    .sk-header.is-scrolled .sk-scroll-menu[open] > summary {
        width: clamp(78px, 24vw, 90px) !important;
        height: 30px !important;
        min-height: 30px !important;
        padding: 0 7px !important;
        grid-template-columns: 18px max-content !important;
        grid-template-rows: 1fr 1px 3px 1px 3px 1px 1fr !important;
        column-gap: 6px !important;
    }

    .sk-scroll-menu:not([open]) > summary span,
    .sk-mobile-nav:not([open]) > summary span {
        width: 18px !important;
    }

    .sk-scroll-menu > summary em,
    .sk-mobile-nav > summary em,
    .home .sk-scroll-menu > summary em,
    .page-template-front .sk-scroll-menu > summary em,
    .sk-header.is-scrolled .sk-scroll-menu > summary em {
        font-size: 10px !important;
    }

    .sk-mobile-nav[open] > summary,
    .sk-scroll-menu[open] > summary,
    .home .sk-scroll-menu[open] > summary,
    .page-template-front .sk-scroll-menu[open] > summary {
        top: 10px !important;
        right: 10px !important;
    }
}

@media screen and (max-width: 360px) {
    .sk-header__logo {
        max-width: 102px !important;
    }

    .sk-header__contact,
    .home .sk-header__contact,
    .page-template-front .sk-header__contact,
    .sk-header.is-scrolled .sk-header__contact,
    .home .sk-header.is-scrolled .sk-header__contact,
    .page-template-front .sk-header.is-scrolled .sk-header__contact {
        width: 86px !important;
        font-size: 9px !important;
    }

    .sk-mobile-nav > summary,
    .sk-scroll-menu > summary,
    .home .sk-scroll-menu > summary,
    .page-template-front .sk-scroll-menu > summary {
        width: 76px !important;
        grid-template-columns: 16px max-content !important;
        column-gap: 5px !important;
    }

    .sk-scroll-menu:not([open]) > summary span,
    .sk-mobile-nav:not([open]) > summary span {
        width: 16px !important;
    }
}

/* Header fine tune 0808_085141
   Keep the compact fixed buttons, reduce the double border, and align the logo visually. */
@media screen and (max-width: 1024px) {
    .sk-header__logo,
    .home .sk-header__logo,
    .page-template-front .sk-header__logo,
    .sk-header.is-scrolled .sk-header__logo,
    .home .sk-header.is-scrolled .sk-header__logo,
    .page-template-front .sk-header.is-scrolled .sk-header__logo {
        margin-top: clamp(4px, 1.1vw, 6px) !important;
        align-self: flex-start !important;
    }

    .sk-header__contact,
    .home .sk-header__contact,
    .page-template-front .sk-header__contact,
    .sk-header.is-scrolled .sk-header__contact,
    .home .sk-header.is-scrolled .sk-header__contact,
    .page-template-front .sk-header.is-scrolled .sk-header__contact {
        border: 1px solid #031323 !important;
        box-sizing: border-box;
    }

    .sk-header__contact + .sk-scroll-menu > summary,
    .sk-header__contact + .sk-scroll-menu[open] > summary,
    .home .sk-header__contact + .sk-scroll-menu > summary,
    .home .sk-header__contact + .sk-scroll-menu[open] > summary,
    .page-template-front .sk-header__contact + .sk-scroll-menu > summary,
    .page-template-front .sk-header__contact + .sk-scroll-menu[open] > summary,
    .sk-header.is-scrolled .sk-header__contact + .sk-scroll-menu > summary,
    .sk-header.is-scrolled .sk-header__contact + .sk-scroll-menu[open] > summary {
        border-left-width: 0 !important;
        box-sizing: border-box;
    }
}

@media screen and (max-width: 480px) {
    .sk-header__logo,
    .home .sk-header__logo,
    .page-template-front .sk-header__logo,
    .sk-header.is-scrolled .sk-header__logo,
    .home .sk-header.is-scrolled .sk-header__logo,
    .page-template-front .sk-header.is-scrolled .sk-header__logo {
        margin-top: 4px !important;
    }
}

@media screen and (max-width: 360px) {
    .sk-header__logo,
    .home .sk-header__logo,
    .page-template-front .sk-header__logo,
    .sk-header.is-scrolled .sk-header__logo,
    .home .sk-header.is-scrolled .sk-header__logo,
    .page-template-front .sk-header.is-scrolled .sk-header__logo {
        margin-top: 5px !important;
    }
}

/* Responsive menu open state compact fix 0808_085357
   Match the desktop close label, make the drawer fit better, and soften the navy overlay. */
@media screen and (max-width: 1024px) {
    .sk-mobile-nav[open] > summary,
    .sk-scroll-menu[open] > summary,
    .home .sk-scroll-menu[open] > summary,
    .page-template-front .sk-scroll-menu[open] > summary,
    .sk-header.is-scrolled .sk-scroll-menu[open] > summary,
    .home .sk-header.is-scrolled .sk-scroll-menu[open] > summary,
    .page-template-front .sk-header.is-scrolled .sk-scroll-menu[open] > summary {
        width: clamp(112px, 30vw, 132px) !important;
        height: clamp(28px, 7.6vw, 34px) !important;
        min-height: clamp(28px, 7.6vw, 34px) !important;
        padding: 0 10px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background: #ffffff !important;
        border: 1px solid #031323 !important;
        color: #031323 !important;
        box-shadow: none !important;
    }

    .sk-mobile-nav[open] > summary span,
    .sk-scroll-menu[open] > summary span,
    .home .sk-scroll-menu[open] > summary span,
    .page-template-front .sk-scroll-menu[open] > summary span,
    .sk-header.is-scrolled .sk-scroll-menu[open] > summary span {
        display: none !important;
    }

    .sk-mobile-nav[open] > summary em,
    .sk-scroll-menu[open] > summary em,
    .home .sk-scroll-menu[open] > summary em,
    .page-template-front .sk-scroll-menu[open] > summary em,
    .sk-header.is-scrolled .sk-scroll-menu[open] > summary em {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100%;
        height: 100%;
        font-size: 0 !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    .sk-mobile-nav[open] > summary em::after,
    .sk-scroll-menu[open] > summary em::after,
    .home .sk-scroll-menu[open] > summary em::after,
    .page-template-front .sk-scroll-menu[open] > summary em::after,
    .sk-header.is-scrolled .sk-scroll-menu[open] > summary em::after {
        content: "メニューを閉じる" !important;
        display: block;
        font-size: clamp(10px, 2.6vw, 12px) !important;
        font-weight: 500 !important;
        letter-spacing: 0 !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__panel,
    .sk-scroll-menu[open] .sk-mobile-nav__panel,
    .home .sk-scroll-menu[open] .sk-mobile-nav__panel,
    .page-template-front .sk-scroll-menu[open] .sk-mobile-nav__panel {
        display: block !important;
        position: fixed !important;
        inset: 0 !important;
        width: auto !important;
        height: 100svh !important;
        padding: clamp(50px, 13vw, 68px) clamp(16px, 4.8vw, 28px) clamp(14px, 4vw, 22px) !important;
        background: rgba(3, 19, 35, 0.34) !important;
        backdrop-filter: blur(1px);
        overflow-y: auto !important;
    }

    .sk-mobile-nav__drawer {
        width: 100% !important;
        max-width: none !important;
        min-height: auto !important;
        max-height: calc(100svh - clamp(72px, 18vw, 94px)) !important;
        margin: 0 !important;
        padding: clamp(18px, 4.4vw, 24px) clamp(20px, 5.4vw, 30px) !important;
        display: block !important;
        background: rgba(3, 19, 35, 0.88) !important;
        border: 1px solid rgba(255,255,255,0.18) !important;
        box-shadow: 0 20px 50px rgba(0,0,0,0.20) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .sk-mobile-nav__group + .sk-mobile-nav__group {
        margin-top: clamp(16px, 4.2vw, 22px) !important;
        padding-left: 0 !important;
        border-left: 0 !important;
    }

    .sk-mobile-nav__label {
        margin: 0 0 clamp(9px, 2.4vw, 12px) !important;
        color: #d4a820 !important;
        font-size: clamp(10px, 2.6vw, 12px) !important;
        font-weight: 700 !important;
        letter-spacing: 0.06em !important;
        line-height: 1.2 !important;
    }

    .sk-mobile-nav__label::after {
        content: none !important;
        display: none !important;
    }

    .sk-mobile-nav__links,
    .sk-mobile-nav__group:first-child .sk-mobile-nav__links,
    .sk-mobile-nav__group:nth-child(2) .sk-mobile-nav__links {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    .sk-mobile-nav__link {
        display: flex !important;
        align-items: center !important;
        min-height: clamp(38px, 9.4vw, 46px) !important;
        padding: clamp(8px, 2.4vw, 11px) 0 !important;
        border-bottom: 1px solid rgba(255,255,255,0.12) !important;
        color: #ffffff !important;
        font-family: var(--font-body) !important;
        font-size: clamp(14px, 3.8vw, 17px) !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        letter-spacing: 0 !important;
        white-space: normal !important;
    }
}

@media screen and (max-width: 480px) {
    .sk-mobile-nav[open] > summary,
    .sk-scroll-menu[open] > summary,
    .home .sk-scroll-menu[open] > summary,
    .page-template-front .sk-scroll-menu[open] > summary,
    .sk-header.is-scrolled .sk-scroll-menu[open] > summary {
        width: 116px !important;
        height: 30px !important;
        min-height: 30px !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__panel,
    .sk-scroll-menu[open] .sk-mobile-nav__panel {
        padding: 48px 16px 14px !important;
    }

    .sk-mobile-nav__drawer {
        max-height: calc(100svh - 64px) !important;
        padding: 17px 24px !important;
    }

    .sk-mobile-nav__group + .sk-mobile-nav__group {
        margin-top: 15px !important;
    }

    .sk-mobile-nav__label {
        margin-bottom: 8px !important;
        font-size: 10px !important;
    }

    .sk-mobile-nav__link {
        min-height: 38px !important;
        padding: 8px 0 !important;
        font-size: 15px !important;
    }
}

/* Menu overlay refinement 0808_132141
   Open with a softer fade and keep the opened menu focused on the clicked state. */
.sk-scroll-menu:not([open]):hover .sk-mobile-nav__panel,
.sk-scroll-menu:not([open]):focus-within .sk-mobile-nav__panel {
    display: none !important;
}

.sk-mobile-nav[open] .sk-mobile-nav__panel,
.sk-scroll-menu[open] .sk-mobile-nav__panel,
.home .sk-scroll-menu[open] .sk-mobile-nav__panel,
.page-template-front .sk-scroll-menu[open] .sk-mobile-nav__panel {
    display: block !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 1200 !important;
    width: auto !important;
    height: 100vh !important;
    height: 100dvh !important;
    background: rgba(3, 19, 35, 0.52) !important;
    backdrop-filter: blur(3px);
    overflow-y: auto !important;
    animation: sk-menu-panel-bloom 0.62s cubic-bezier(0.19, 1, 0.22, 1) both;
}

.sk-mobile-nav[open] .sk-mobile-nav__drawer,
.sk-scroll-menu[open] .sk-mobile-nav__drawer {
    animation: sk-menu-drawer-bloom 0.72s cubic-bezier(0.19, 1, 0.22, 1) both;
}

.sk-mobile-nav[open] .sk-mobile-nav__label,
.sk-scroll-menu[open] .sk-mobile-nav__label,
.sk-mobile-nav[open] .sk-mobile-nav__link,
.sk-scroll-menu[open] .sk-mobile-nav__link {
    opacity: 0;
    transform: translateY(14px);
    animation: sk-menu-link-rise 0.68s cubic-bezier(0.19, 1, 0.22, 1) forwards;
}

.sk-mobile-nav[open] .sk-mobile-nav__label,
.sk-scroll-menu[open] .sk-mobile-nav__label {
    animation-delay: 0.16s;
}

.sk-mobile-nav[open] .sk-mobile-nav__link:nth-child(1),
.sk-scroll-menu[open] .sk-mobile-nav__link:nth-child(1) {
    animation-delay: 0.22s;
}

.sk-mobile-nav[open] .sk-mobile-nav__link:nth-child(2),
.sk-scroll-menu[open] .sk-mobile-nav__link:nth-child(2) {
    animation-delay: 0.28s;
}

.sk-mobile-nav[open] .sk-mobile-nav__link:nth-child(3),
.sk-scroll-menu[open] .sk-mobile-nav__link:nth-child(3) {
    animation-delay: 0.34s;
}

.sk-mobile-nav[open] .sk-mobile-nav__link:nth-child(4),
.sk-scroll-menu[open] .sk-mobile-nav__link:nth-child(4) {
    animation-delay: 0.40s;
}

@keyframes sk-menu-panel-bloom {
    0% {
        opacity: 0;
        backdrop-filter: blur(0);
        background: rgba(3, 10, 20, 0);
    }
    100% {
        opacity: 1;
    }
}

@keyframes sk-menu-drawer-bloom {
    0% {
        opacity: 0;
        transform: translateY(16px) scale(0.975);
        filter: blur(8px);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

@keyframes sk-menu-link-rise {
    0% {
        opacity: 0;
        transform: translateY(14px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@media screen and (min-width: 1025px) {
    .sk-mobile-nav[open] .sk-mobile-nav__panel,
    .sk-scroll-menu[open] .sk-mobile-nav__panel,
    .home .sk-scroll-menu[open] .sk-mobile-nav__panel,
    .page-template-front .sk-scroll-menu[open] .sk-mobile-nav__panel {
        padding: 10px 10px 10px clamp(32px, 5vw, 72px) !important;
        background: rgba(3, 19, 35, 0.52) !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__drawer,
    .sk-scroll-menu[open] .sk-mobile-nav__drawer {
        width: min(540px, calc(100vw - 32px)) !important;
        min-height: calc(100vh - 20px) !important;
        min-height: calc(100dvh - 20px) !important;
        margin: 0 0 0 auto !important;
        padding: clamp(54px, 7vh, 82px) clamp(56px, 4.4vw, 72px) 42px !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        align-content: start !important;
        gap: clamp(24px, 4vh, 38px) !important;
        background: rgba(3, 19, 35, 0.88) !important;
        border: 1px solid rgba(255,255,255,0.10) !important;
        box-shadow: 0 28px 90px rgba(0,0,0,0.30) !important;
        overflow-y: auto !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__group + .sk-mobile-nav__group,
    .sk-scroll-menu[open] .sk-mobile-nav__group + .sk-mobile-nav__group {
        margin-top: 0 !important;
        padding-left: 0 !important;
        border-left: 0 !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__label,
    .sk-scroll-menu[open] .sk-mobile-nav__label {
        margin: 0 0 12px !important;
        color: #d4a820 !important;
        font-family: var(--font-body) !important;
        font-size: 14px !important;
        font-weight: 600 !important;
        letter-spacing: 0 !important;
        line-height: 1.2 !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__links,
    .sk-scroll-menu[open] .sk-mobile-nav__links,
    .sk-mobile-nav[open] .sk-mobile-nav__group:first-child .sk-mobile-nav__links,
    .sk-scroll-menu[open] .sk-mobile-nav__group:first-child .sk-mobile-nav__links,
    .sk-mobile-nav[open] .sk-mobile-nav__group:nth-child(2) .sk-mobile-nav__links,
    .sk-scroll-menu[open] .sk-mobile-nav__group:nth-child(2) .sk-mobile-nav__links {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__link,
    .sk-scroll-menu[open] .sk-mobile-nav__link {
        display: flex !important;
        align-items: center !important;
        min-height: 54px !important;
        padding: 12px 0 !important;
        color: #ffffff !important;
        border-bottom: 1px solid rgba(255,255,255,0.12) !important;
        font-family: var(--font-display) !important;
        font-size: clamp(24px, 2vw, 30px) !important;
        font-weight: 600 !important;
        line-height: 1.25 !important;
        letter-spacing: 0 !important;
        white-space: normal !important;
    }
}

@media screen and (max-width: 1024px) {
    .sk-mobile-nav[open] .sk-mobile-nav__panel,
    .sk-scroll-menu[open] .sk-mobile-nav__panel,
    .home .sk-scroll-menu[open] .sk-mobile-nav__panel,
    .page-template-front .sk-scroll-menu[open] .sk-mobile-nav__panel {
        padding: 0 !important;
        background: rgba(3, 10, 20, 0.92) !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__drawer,
    .sk-scroll-menu[open] .sk-mobile-nav__drawer {
        width: 100% !important;
        max-width: none !important;
        min-height: 100vh !important;
        min-height: 100dvh !important;
        max-height: none !important;
        margin: 0 !important;
        padding: clamp(62px, 15vw, 88px) clamp(26px, 7.5vw, 68px) 34px !important;
        display: block !important;
        background: rgba(3, 19, 35, 0.88) !important;
        border: 0 !important;
        box-shadow: none !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__group + .sk-mobile-nav__group,
    .sk-scroll-menu[open] .sk-mobile-nav__group + .sk-mobile-nav__group {
        margin-top: clamp(26px, 6vw, 40px) !important;
        padding-left: 0 !important;
        border-left: 0 !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__label,
    .sk-scroll-menu[open] .sk-mobile-nav__label {
        margin: 0 0 clamp(14px, 3.2vw, 18px) !important;
        color: #d4a820 !important;
        font-family: var(--font-body) !important;
        font-size: clamp(12px, 3.2vw, 14px) !important;
        font-weight: 600 !important;
        letter-spacing: 0 !important;
        line-height: 1.2 !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__group:first-child .sk-mobile-nav__links,
    .sk-scroll-menu[open] .sk-mobile-nav__group:first-child .sk-mobile-nav__links {
        display: grid !important;
        grid-template-columns: 1fr !important;
        column-gap: clamp(22px, 8vw, 56px) !important;
        row-gap: 0 !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__group:nth-child(2) .sk-mobile-nav__links,
    .sk-scroll-menu[open] .sk-mobile-nav__group:nth-child(2) .sk-mobile-nav__links {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__link,
    .sk-scroll-menu[open] .sk-mobile-nav__link {
        min-height: clamp(46px, 11vw, 58px) !important;
        padding: clamp(10px, 2.8vw, 14px) 0 !important;
        color: #ffffff !important;
        border-bottom: 1px solid rgba(255,255,255,0.12) !important;
        font-family: var(--font-display) !important;
        font-size: clamp(17px, 5.4vw, 24px) !important;
        font-weight: 600 !important;
        line-height: 1.22 !important;
        letter-spacing: 0 !important;
        white-space: normal !important;
    }
}

@media screen and (max-width: 390px) {
    .sk-mobile-nav[open] .sk-mobile-nav__drawer,
    .sk-scroll-menu[open] .sk-mobile-nav__drawer {
        padding-right: 22px !important;
        padding-left: 22px !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__group:first-child .sk-mobile-nav__links,
    .sk-scroll-menu[open] .sk-mobile-nav__group:first-child .sk-mobile-nav__links {
        column-gap: 20px !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__link,
    .sk-scroll-menu[open] .sk-mobile-nav__link {
        font-size: clamp(16px, 5vw, 20px) !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sk-mobile-nav[open] .sk-mobile-nav__panel,
    .sk-scroll-menu[open] .sk-mobile-nav__panel,
    .sk-mobile-nav[open] .sk-mobile-nav__drawer,
    .sk-scroll-menu[open] .sk-mobile-nav__drawer,
    .sk-mobile-nav[open] .sk-mobile-nav__label,
    .sk-scroll-menu[open] .sk-mobile-nav__label,
    .sk-mobile-nav[open] .sk-mobile-nav__link,
    .sk-scroll-menu[open] .sk-mobile-nav__link {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }

    /* ファーストビュー背景：ズームアウト・移動を止め、単純なクロスフェードのみにする */
    .sk-hero__bg-slide {
        transition: opacity 0.6s ease !important;
    }
    .sk-hero__bg-slide-inner img,
    .sk-hero__bg-slide.is-zoomed .sk-hero__bg-slide-inner img {
        transition: none !important;
        transform: none !important;
    }
}

/* ==========================================================================
   Global site header reuse 0812_102718
   Top page header is the source of truth. Keep the shared header.php markup and
   apply the same final visual rules to every template that calls get_header().
   ========================================================================== */
@media screen and (min-width: 1025px) {
    .sk-header,
    .sk-header.is-scrolled,
    .home .sk-header,
    .page-template-front .sk-header,
    .home .sk-header.is-scrolled,
    .page-template-front .sk-header.is-scrolled {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        background: transparent !important;
        border-bottom: none !important;
        box-shadow: none !important;
    }

    .sk-header__inner,
    .sk-header.is-scrolled .sk-header__inner,
    .home .sk-header__inner,
    .page-template-front .sk-header__inner,
    .home .sk-header.is-scrolled .sk-header__inner,
    .page-template-front .sk-header.is-scrolled .sk-header__inner {
        min-height: 112px !important;
        height: 112px !important;
        padding: 54px clamp(32px, 5.2vw, 104px) 0 clamp(20px, 3.8vw, 56px) !important;
        align-items: flex-start !important;
        overflow: visible !important;
    }

    .sk-header:not(.is-scrolled) .sk-header__logo,
    .home .sk-header:not(.is-scrolled) .sk-header__logo,
    .page-template-front .sk-header:not(.is-scrolled) .sk-header__logo {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .sk-header__nav,
    .home .sk-header__nav,
    .page-template-front .sk-header__nav {
        display: flex !important;
        height: 56px !important;
        align-items: center !important;
        gap: clamp(18px, 1.8vw, 30px) !important;
        margin-left: auto !important;
        margin-right: clamp(34px, 3.1vw, 54px) !important;
    }

    .sk-header:not(.is-scrolled) .sk-header__nav {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
    }

    .sk-header__nav > a,
    .sk-menu-item > a,
    .home .sk-header__nav > a,
    .page-template-front .sk-header__nav > a,
    .home .sk-menu-item > a,
    .page-template-front .sk-menu-item > a {
        display: flex !important;
        align-items: center !important;
        height: 56px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        color: #d7dee7 !important;
        font-size: 16px !important;
        font-weight: 500 !important;
        line-height: 1 !important;
        text-decoration: none !important;
    }

    .sk-header__nav > a::before,
    .sk-header__nav > a::after,
    .sk-menu-item > a::before,
    .sk-menu-item > a::after {
        content: none !important;
        display: none !important;
        border: 0 !important;
        background: none !important;
        box-shadow: none !important;
    }

    .sk-header__right,
    .sk-header.is-scrolled .sk-header__right,
    .home .sk-header__right,
    .page-template-front .sk-header__right,
    .home .sk-header.is-scrolled .sk-header__right,
    .page-template-front .sk-header.is-scrolled .sk-header__right {
        display: flex !important;
        height: 56px !important;
        align-items: stretch !important;
        gap: 0 !important;
        margin-left: 0 !important;
    }

    .sk-header__contact,
    .sk-header.is-scrolled .sk-header__contact,
    .home .sk-header__contact,
    .page-template-front .sk-header__contact,
    .home .sk-header.is-scrolled .sk-header__contact,
    .page-template-front .sk-header.is-scrolled .sk-header__contact {
        width: 176px !important;
        height: 56px !important;
        min-height: 56px !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        background: #D4A820 !important;
        border: 1px solid #031323 !important;
        border-radius: 0 !important;
        color: #1a2a40 !important;
        font-family: var(--font-latin) !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        letter-spacing: 0 !important;
        line-height: 1 !important;
        text-decoration: none !important;
        white-space: nowrap !important;
        opacity: 1 !important;
    }

    .sk-header__contact::before,
    .home .sk-header__contact::before,
    .page-template-front .sk-header__contact::before {
        content: none !important;
        display: none !important;
    }

    .sk-header__contact:hover,
    .sk-header.is-scrolled .sk-header__contact:hover,
    .home .sk-header__contact:hover,
    .page-template-front .sk-header__contact:hover,
    .home .sk-header.is-scrolled .sk-header__contact:hover,
    .page-template-front .sk-header.is-scrolled .sk-header__contact:hover {
        background: #b98d43 !important;
        border-color: #031323 !important;
        color: #1a2a40 !important;
        opacity: 1 !important;
    }

    .sk-scroll-menu,
    .sk-scroll-menu[open],
    .sk-header.is-scrolled .sk-scroll-menu,
    .home .sk-scroll-menu,
    .page-template-front .sk-scroll-menu,
    .home .sk-header.is-scrolled .sk-scroll-menu,
    .page-template-front .sk-header.is-scrolled .sk-scroll-menu {
        display: block !important;
        flex: 0 0 auto !important;
        margin: 0 !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    .sk-scroll-menu > summary,
    .sk-scroll-menu[open] > summary,
    .sk-header.is-scrolled .sk-scroll-menu > summary,
    .home .sk-scroll-menu > summary,
    .page-template-front .sk-scroll-menu > summary,
    .home .sk-scroll-menu[open] > summary,
    .page-template-front .sk-scroll-menu[open] > summary,
    .home .sk-header.is-scrolled .sk-scroll-menu > summary,
    .page-template-front .sk-header.is-scrolled .sk-scroll-menu > summary {
        position: relative !important;
        top: auto !important;
        right: auto !important;
        width: 176px !important;
        height: 56px !important;
        min-height: 56px !important;
        padding: 0 30px 0 34px !important;
        display: grid !important;
        grid-template-columns: 32px max-content !important;
        grid-template-rows: 1fr 1px 5px 1px 5px 1px 1fr !important;
        column-gap: 18px !important;
        align-content: stretch !important;
        align-items: stretch !important;
        background: #ffffff !important;
        border: 1px solid #031323 !important;
        border-left-width: 0 !important;
        border-radius: 0 !important;
        color: #031323 !important;
        box-shadow: none !important;
    }

    .sk-scroll-menu > summary:hover,
    .sk-scroll-menu:focus-within > summary,
    .sk-scroll-menu[open] > summary,
    .sk-scroll-menu[open] > summary:hover {
        background: #ffffff !important;
        border-color: #031323 !important;
        color: #031323 !important;
    }

    .sk-header__contact + .sk-scroll-menu > summary,
    .sk-header__contact + .sk-scroll-menu[open] > summary,
    .sk-header.is-scrolled .sk-header__contact + .sk-scroll-menu > summary,
    .sk-header.is-scrolled .sk-header__contact + .sk-scroll-menu[open] > summary {
        border-left-width: 0 !important;
    }

    .sk-scroll-menu:not([open]) > summary span,
    .sk-header.is-scrolled .sk-scroll-menu:not([open]) > summary span {
        display: block !important;
        grid-column: 1 !important;
        width: 32px !important;
        height: 1px !important;
        align-self: center !important;
        justify-self: center !important;
        background: currentColor !important;
        opacity: 1 !important;
        transform: none !important;
    }

    .sk-scroll-menu:not([open]) > summary span:nth-child(1) {
        grid-row: 2 !important;
    }

    .sk-scroll-menu:not([open]) > summary span:nth-child(2) {
        display: block !important;
        grid-row: 4 !important;
    }

    .sk-scroll-menu:not([open]) > summary span:nth-child(3) {
        grid-row: 6 !important;
    }

    .sk-scroll-menu:not([open]) > summary em,
    .sk-header.is-scrolled .sk-scroll-menu:not([open]) > summary em {
        grid-column: 2 !important;
        grid-row: 1 / 8 !important;
        align-self: center !important;
        justify-self: start !important;
        font-size: 15px !important;
        font-weight: 500 !important;
        letter-spacing: 0 !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }

    body:not(.home):not(.page-template-front) .abhero,
    body:not(.home):not(.page-template-front) .cmhero,
    body:not(.home):not(.page-template-front) .cthero,
    body:not(.home):not(.page-template-front) .fqhero,
    body:not(.home):not(.page-template-front) .pphero,
    body:not(.home):not(.page-template-front) .sd-hero,
    body:not(.home):not(.page-template-front) .wka-hero,
    body:not(.home):not(.page-template-front) .nwa-hero,
    body:not(.home):not(.page-template-front) .ahero,
    body:not(.home):not(.page-template-front) .cb-hero {
        padding-top: max(140px, env(safe-area-inset-top)) !important;
    }
}

.page-template-contact .sk-header .sk-header__nav,
.page-template-contact .sk-header.is-scrolled .sk-header__nav,
.page-template-contact .sk-header .sk-header__right,
.page-template-contact .sk-header.is-scrolled .sk-header__right,
.page-template-contact .sk-header .sk-header__contact,
.page-template-contact .sk-header.is-scrolled .sk-header__contact,
.page-template-contact .sk-header .sk-mobile-nav,
.page-template-contact .sk-header.is-scrolled .sk-mobile-nav,
.page-template-contact .sk-header .sk-scroll-menu,
.page-template-contact .sk-header.is-scrolled .sk-scroll-menu {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.page-template-contact .sk-header .sk-header__inner,
.page-template-contact .sk-header.is-scrolled .sk-header__inner {
    justify-content: flex-start !important;
}

/* Open menu button label alignment 0812_143126
   Keep the top-page behavior while restoring the original close label. */
.sk-mobile-nav[open] > summary,
.sk-scroll-menu[open] > summary,
.home .sk-scroll-menu[open] > summary,
.page-template-front .sk-scroll-menu[open] > summary,
.sk-header.is-scrolled .sk-scroll-menu[open] > summary,
.home .sk-header.is-scrolled .sk-scroll-menu[open] > summary,
.page-template-front .sk-header.is-scrolled .sk-scroll-menu[open] > summary {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.sk-mobile-nav[open] > summary span,
.sk-scroll-menu[open] > summary span,
.home .sk-scroll-menu[open] > summary span,
.page-template-front .sk-scroll-menu[open] > summary span,
.sk-header.is-scrolled .sk-scroll-menu[open] > summary span {
    display: none !important;
}

.sk-mobile-nav[open] > summary em,
.sk-scroll-menu[open] > summary em,
.home .sk-scroll-menu[open] > summary em,
.page-template-front .sk-scroll-menu[open] > summary em,
.sk-header.is-scrolled .sk-scroll-menu[open] > summary em,
.home .sk-header.is-scrolled .sk-scroll-menu[open] > summary em,
.page-template-front .sk-header.is-scrolled .sk-scroll-menu[open] > summary em {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0 !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;
}

.sk-mobile-nav[open] > summary em::after,
.sk-scroll-menu[open] > summary em::after,
.home .sk-scroll-menu[open] > summary em::after,
.page-template-front .sk-scroll-menu[open] > summary em::after,
.sk-header.is-scrolled .sk-scroll-menu[open] > summary em::after,
.home .sk-header.is-scrolled .sk-scroll-menu[open] > summary em::after,
.page-template-front .sk-header.is-scrolled .sk-scroll-menu[open] > summary em::after {
    content: "メニューを閉じる" !important;
    display: block !important;
    font-size: clamp(11px, 2.6vw, 15px) !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

body.sk-menu-open .sk-header {
    box-sizing: border-box !important;
    padding-right: var(--sk-menu-scrollbar-offset, 0px) !important;
}

/* Lower page scroll reveal 0812
   Uses the same motion values as the top-page js-fade-in sections. */
body:not(.home):not(.page-template-front) .sk-lower-fade-in {
    opacity: 0;
    transform: translateY(30px);
    will-change: opacity, transform;
}

body:not(.home):not(.page-template-front) .sk-lower-fade-in.is-fade-visible {
    animation: skLowerFadeUp .9s cubic-bezier(.16, 1, .3, 1) var(--sk-lower-fade-delay, 0ms) both;
}

@keyframes skLowerFadeUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Hamburger menu structure update 0813_095652
   Keep the current drawer mood while fitting Index / Service / Contact. */
.sk-mobile-nav__group + .sk-mobile-nav__group {
    border-top: 1px solid rgba(255,255,255,0.12);
    padding-top: clamp(16px, 3vw, 24px);
}

.sk-mobile-nav__label {
    text-transform: none;
}

.sk-mobile-nav__link {
    word-break: keep-all;
    overflow-wrap: anywhere;
}

.sk-mobile-nav[open] .sk-mobile-nav__link:nth-child(5),
.sk-scroll-menu[open] .sk-mobile-nav__link:nth-child(5) {
    animation-delay: 0.46s;
}

@media screen and (min-width: 1025px) {
    .sk-mobile-nav[open] .sk-mobile-nav__drawer,
    .sk-scroll-menu[open] .sk-mobile-nav__drawer {
        width: min(460px, calc(100vw - 32px)) !important;
        max-height: calc(100vh - 20px) !important;
        max-height: calc(100dvh - 20px) !important;
        padding: clamp(42px, 5.6vh, 66px) clamp(34px, 3.2vw, 50px) 36px !important;
        gap: clamp(18px, 2.4vh, 28px) !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__group + .sk-mobile-nav__group,
    .sk-scroll-menu[open] .sk-mobile-nav__group + .sk-mobile-nav__group {
        margin-top: 0 !important;
        padding-top: clamp(16px, 2.3vh, 24px) !important;
        border-top: 1px solid rgba(255,255,255,0.12) !important;
        border-left: 0 !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__label,
    .sk-scroll-menu[open] .sk-mobile-nav__label {
        margin-bottom: 10px !important;
    }

    .sk-mobile-nav[open] .sk-mobile-nav__link,
    .sk-scroll-menu[open] .sk-mobile-nav__link {
        min-height: clamp(44px, 5.6vh, 52px) !important;
        padding: 10px 0 !important;
        font-size: clamp(21px, 1.65vw, 28px) !important;
        line-height: 1.24 !important;
    }
}

@media screen and (max-width: 1024px) {
    .sk-mobile-nav__drawer {
        max-height: calc(100dvh - clamp(56px, 15vw, 86px)) !important;
    }

    .sk-mobile-nav__group + .sk-mobile-nav__group {
        margin-top: clamp(14px, 3.6vw, 20px) !important;
        padding-top: clamp(14px, 3.6vw, 20px) !important;
        border-top: 1px solid rgba(255,255,255,0.12) !important;
        border-left: 0 !important;
    }
}

@media screen and (max-width: 480px) {
    .sk-mobile-nav__drawer {
        max-height: calc(100dvh - 62px) !important;
        padding: 16px 22px !important;
    }

    .sk-mobile-nav__group + .sk-mobile-nav__group {
        margin-top: 13px !important;
        padding-top: 13px !important;
    }

    .sk-mobile-nav__label {
        margin-bottom: 7px !important;
    }

    .sk-mobile-nav__link {
        min-height: 36px !important;
        padding: 7px 0 !important;
        font-size: 15px !important;
        line-height: 1.22 !important;
    }
}

/* Hamburger label line adjustment 0813_1006
   Show divider lines only beside the gold group labels. */
.sk-mobile-nav__label,
.sk-mobile-nav[open] .sk-mobile-nav__label,
.sk-scroll-menu[open] .sk-mobile-nav__label {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
}

.sk-mobile-nav__label::after,
.sk-mobile-nav[open] .sk-mobile-nav__label::after,
.sk-scroll-menu[open] .sk-mobile-nav__label::after {
    content: "" !important;
    display: block !important;
    flex: 1 1 auto !important;
    width: auto !important;
    height: 1px !important;
    background: rgba(255,255,255,0.14) !important;
}

.sk-mobile-nav__group + .sk-mobile-nav__group,
.sk-mobile-nav[open] .sk-mobile-nav__group + .sk-mobile-nav__group,
.sk-scroll-menu[open] .sk-mobile-nav__group + .sk-mobile-nav__group {
    border-top: 0 !important;
}

.sk-mobile-nav__link,
.sk-mobile-nav[open] .sk-mobile-nav__link,
.sk-scroll-menu[open] .sk-mobile-nav__link {
    border-bottom: 0 !important;
    position: relative !important;
}

.sk-mobile-nav__link::before,
.sk-mobile-nav[open] .sk-mobile-nav__link::before,
.sk-scroll-menu[open] .sk-mobile-nav__link::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    bottom: 4px !important;
    width: 0 !important;
    height: 1px !important;
    background: #d4a820 !important;
    opacity: 0.9 !important;
    transition: width 0.25s ease !important;
}

.sk-mobile-nav__link:hover::before,
.sk-mobile-nav__link:focus-visible::before,
.sk-mobile-nav[open] .sk-mobile-nav__link:hover::before,
.sk-mobile-nav[open] .sk-mobile-nav__link:focus-visible::before,
.sk-scroll-menu[open] .sk-mobile-nav__link:hover::before,
.sk-scroll-menu[open] .sk-mobile-nav__link:focus-visible::before {
    width: min(42px, 100%) !important;
}

@media (prefers-reduced-motion: reduce) {
    body:not(.home):not(.page-template-front) .sk-lower-fade-in,
    body:not(.home):not(.page-template-front) .sk-lower-fade-in.is-fade-visible {
        opacity: 1;
        transform: translateY(0);
        animation: none;
        transition: none;
        will-change: auto;
    }
}
