@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ============================================
   Shinkousha リニューアル基盤CSS
   Step 0: フォント・カラー変数・全体トーン
   ============================================ */

/* ---------- Google Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&family=Shippori+Mincho:wght@400;500;600;700&display=swap');

/* ---------- カラーパレット & 変数 ---------- */
:root {
    /* Brand Colors */
    --shk-gofun: #FFFFFF;          /* 地色（純白） */
    --shk-sumi: #222222;           /* 墨色（本文・濃背景） */
    --shk-sumi-soft: #1a1a1a;      /* 濃い墨（Craftセクション用） */
    --shk-artisan: #B0925B;        /* 燻し金（アクセント） */
    --shk-artisan-light: #D4AF37;  /* 明るい金（ホバー） */
    --shk-line-default: #DDDDDD;   /* 罫線 */
    --shk-line-soft: #E5E5E5;      /* 淡い罫線 */
    --shk-text-sub: #6b7280;       /* 副次テキスト */
    --shk-bg-section: #F5F5F5;     /* セクション背景（Works用） */
    --shk-bg-warm: #F5F3EE;        /* 薄ウォームグレー（下層ページ用） */

    /* Fonts */
    --shk-font-serif: "Shippori Mincho", "Yu Mincho", "游明朝", "Hiragino Mincho ProN", serif;
    --shk-font-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;

    /* Letter spacing */
    --shk-ls-normal: 0.05em;
    --shk-ls-wide: 0.15em;
    --shk-ls-widest: 0.2em;
    --shk-ls-section: 0.3em;

    /* Easing（語彙集 Part 2-3 準拠） */
    --shk-ease: cubic-bezier(.17, .47, .6, .87);
    --shk-ease-sharp: cubic-bezier(.12, .52, .15, .97);
}

/* ---------- Base：地のトーン（純白） ---------- */
body,
#body_wrap,
#content,
#main_content,
.l-content,
.l-mainContent {
    background-color: #ffffff;
}

body {
    color: var(--shk-sumi);
    font-family: var(--shk-font-sans);
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: var(--shk-ls-normal);
}

/* ---------- 見出しは明朝で統一 ---------- */
h1, h2, h3, h4, h5, h6,
.wp-block-heading,
.c-pageTitle__main,
.c-postTitle__ttl,
.p-postList__title {
    font-family: var(--shk-font-serif);
    font-weight: 500;
    letter-spacing: var(--shk-ls-normal);
    line-height: 1.5;
}

/* ---------- SWELLの section_ttl スタイル上書き（トップページ用） ---------- */
.is-style-section_ttl {
    text-align: center;
    border: none !important;
    padding: 0 !important;
    margin-bottom: 2.5rem !important;
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    line-height: 1.6;
}

.is-style-section_ttl .swl-fz.u-fz-xs {
    display: block;
    font-family: var(--shk-font-sans);
    font-size: 0.75rem !important;
    letter-spacing: var(--shk-ls-section);
    margin-bottom: 1rem;
    font-weight: 500;
    text-transform: uppercase;
}

.is-style-section_ttl .has-swl-main-color,
.swl-inline-color.has-swl-main-color {
    color: var(--shk-artisan) !important;
}

/* ---------- リンクカラー ---------- */
a {
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

a:hover {
    color: var(--shk-artisan);
}

/* ---------- カスタムスクロールバー ---------- */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: var(--shk-gofun);
}
::-webkit-scrollbar-thumb {
    background: var(--shk-line-default);
}
::-webkit-scrollbar-thumb:hover {
    background: var(--shk-artisan);
}

/* ---------- 段落の行間 ---------- */
.post_content .wp-block-paragraph {
    line-height: 2.0;
    font-weight: 300;
    letter-spacing: 0.03em;
}

/* ---------- 全幅セクションの余白統一 ---------- */
.swell-block-fullWide {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

@media (max-width: 768px) {
    .swell-block-fullWide {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }
}

/* ============================================
   Step 1-B: ヘッダーCTAボタンの化粧
   ============================================ */

.w-header {
    margin-left: 1.5rem;
}

.w-header__inner {
    display: flex;
    align-items: center;
}

.w-header__item {
    margin: 0;
}

.w-header .p-blogParts {
    margin: 0;
    padding: 0;
}

.w-header .swell-block-button {
    margin: 0;
}

.w-header .swell-block-button__link {
    background-color: var(--shk-sumi) !important;
    color: var(--shk-gofun) !important;
    font-family: var(--shk-font-serif);
    font-size: 0.875rem;
    font-weight: 500;
    letter-spacing: var(--shk-ls-wide);
    padding: 0.75em 1.6em;
    border-radius: 0;
    border: none;
    box-shadow: none;
    min-width: auto;
    line-height: 1.4;
    transition: background-color 0.3s ease, color 0.3s ease, transform 0.3s ease;
}

.w-header .swell-block-button__link:hover {
    background-color: var(--shk-artisan) !important;
    color: var(--shk-gofun) !important;
    opacity: 1;
    transform: translateY(-1px);
}

.w-header .swell-block-button__link::before,
.w-header .swell-block-button__link::after {
    display: none !important;
}

/* ============================================
   Step 2: ヒーローセクション (.shk-hero)
   ============================================ */

.shk-hero {
    position: relative;
    min-height: 100vh;
    height: 100vh;
    min-height: 700px;
    padding-top: 80px !important;
    padding-bottom: 0 !important;
    background-color: #ffffff !important;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.shk-hero .swell-block-fullWide__inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 2rem;
    position: relative;
    z-index: 2;
}

.shk-hero .swell-block-columns {
    align-items: center;
}

.shk-hero .swell-block-columns__inner {
    align-items: center;
}

.shk-hero .swell-block-column:first-child {
    z-index: 3;
}

/* ---------- PC：右60%に画像を敷き、白のグラデで文字を保護 ---------- */
@media (min-width: 769px) {
    .shk-hero .swell-block-column:nth-child(2) {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 60%;
        height: 100%;
        margin: 0 !important;
        z-index: 1;
    }

    .shk-hero .shk-hero-image {
        width: 100% !important;
        height: 100% !important;
        margin: 0 !important;
    }

    .shk-hero .shk-hero-image img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover;
        object-position: center;
        max-width: none !important;
    }

    .shk-hero::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 60%;
        background: linear-gradient(
            to right,
            rgba(255, 255, 255, 1) 0%,
            rgba(255, 255, 255, 0.85) 22%,
            rgba(255, 255, 255, 0.25) 60%,
            rgba(255, 255, 255, 0) 100%
        );
        z-index: 2;
        pointer-events: none;
    }
}

/* ---------- SP：テキスト→画像の縦積み（背景敷き・半透明は廃止） ---------- */
@media (max-width: 768px) {
    .shk-hero {
        height: auto !important;
        min-height: 0 !important;
        padding-top: 90px !important;
        padding-bottom: 48px !important;
        display: block !important;
    }

    .shk-hero .swell-block-column:nth-child(2) {
        position: static !important;
        inset: auto !important;
        opacity: 1 !important;
        margin: 2.5rem 0 0 0 !important;
        z-index: auto !important;
    }

    .shk-hero .shk-hero-image {
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
    }

    .shk-hero .shk-hero-image img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 4 / 3;
        object-fit: cover;
        object-position: center;
        display: block;
    }

    .shk-hero::before {
        content: none !important;
        display: none !important;
    }

    .shk-hero .swell-block-column:first-child {
        z-index: auto !important;
    }
}

.shk-hero-eyebrow {
    color: var(--shk-artisan) !important;
    font-family: var(--shk-font-sans);
    font-size: 0.875rem;
    letter-spacing: 0.2em;
    font-weight: 500;
    margin-bottom: 1.5rem;
}

.shk-hero-eyebrow .swl-inline-color.has-swl-main-color {
    color: var(--shk-artisan) !important;
}

.shk-hero-catch {
    font-family: var(--shk-font-serif) !important;
    font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    color: var(--shk-sumi) !important;
    letter-spacing: 0.05em;
    margin-bottom: 2rem !important;
}

.shk-hero-lead {
    font-family: var(--shk-font-sans);
    font-weight: 300;
    font-size: 1rem;
    line-height: 2.2;
    color: var(--shk-text-sub);
    letter-spacing: 0.05em;
    margin-bottom: 2.5rem !important;
    max-width: 28rem;
}

.shk-hero .wp-block-columns {
    gap: 1rem;
    flex-wrap: wrap;
}

.shk-hero .wp-block-columns .wp-block-column {
    flex-basis: auto !important;
    flex-grow: 0;
}

.shk-hero .is-style-btn_normal .swell-block-button__link {
    background-color: var(--shk-artisan) !important;
    color: #ffffff !important;
    font-family: var(--shk-font-serif);
    letter-spacing: var(--shk-ls-wide);
    padding: 1.1em 2.2em;
    border-radius: 0;
    border: none;
    box-shadow: 0 8px 20px rgba(176, 146, 91, 0.25);
    transition: all 0.3s ease;
}

.shk-hero .is-style-btn_normal .swell-block-button__link:hover {
    background-color: var(--shk-artisan-light) !important;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(176, 146, 91, 0.35);
    opacity: 1;
}

.shk-hero .is-style-btn_line .swell-block-button__link {
    background-color: rgba(255, 255, 255, 0.8) !important;
    backdrop-filter: blur(4px);
    color: var(--shk-sumi) !important;
    font-family: var(--shk-font-serif);
    letter-spacing: var(--shk-ls-wide);
    padding: 1.1em 2.2em;
    border-radius: 0;
    border: 1px solid rgba(34, 34, 34, 0.3) !important;
    box-shadow: none;
    transition: all 0.3s ease;
}

.shk-hero .is-style-btn_line .swell-block-button__link:hover {
    background-color: rgba(34, 34, 34, 0.05) !important;
    border-color: var(--shk-sumi) !important;
    color: var(--shk-sumi) !important;
    opacity: 1;
}

.shk-hero .is-style-btn_line .__icon {
    transition: transform 0.3s ease;
}

.shk-hero .is-style-btn_line .swell-block-button__link:hover .__icon {
    transform: translateX(4px);
}

.shk-hero .swell-block-fullWide__inner > .wp-block-paragraph:empty {
    display: none;
}

.shk-hero::after {
    content: "SCROLL";
    position: absolute;
    bottom: 2.5rem;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--shk-font-sans);
    font-size: 0.625rem;
    letter-spacing: 0.3em;
    color: var(--shk-sumi);
    opacity: 0.5;
    z-index: 5;
    padding-bottom: 3.5rem;
    background-image: linear-gradient(to bottom, var(--shk-sumi), var(--shk-sumi));
    background-size: 1px 3rem;
    background-position: bottom center;
    background-repeat: no-repeat;
    animation: shk-scroll-bounce 2s ease-in-out infinite;
}

@keyframes shk-scroll-bounce {
    0%, 100% {
        transform: translateX(-50%) translateY(0);
    }
    50% {
        transform: translateX(-50%) translateY(-8px);
    }
}

@media (max-width: 768px) {
    .shk-hero::after {
        display: none;
    }
}

/* ============================================
   Step 3-3: Philosophy バッジ（トップページ）
   ============================================ */

.shk-philosophy .wp-block-columns .wp-block-column:nth-child(2) {
    position: relative;
}

.shk-philosophy-badge {
    position: absolute;
    bottom: -1.5rem;
    left: -1.5rem;
    z-index: 5;
    background-color: #ffffff;
    padding: 1.5rem 1.75rem;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
    border-top: 2px solid var(--shk-artisan);
    min-width: 180px;
    margin: 0 !important;
}

.shk-philosophy-badge .wp-block-group__inner-container {
    padding: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

.shk-philosophy-badge .wp-block-paragraph:first-child {
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    color: var(--shk-text-sub);
    letter-spacing: 0.1em;
    margin: 0 0 0.5rem 0;
    line-height: 1.2;
    font-weight: 400;
}

.shk-philosophy-badge .wp-block-paragraph:last-child {
    font-family: var(--shk-font-serif);
    font-size: 1.25rem;
    color: var(--shk-sumi);
    letter-spacing: 0.05em;
    margin: 0;
    line-height: 1.5;
    font-weight: 500;
}

@media (max-width: 768px) {
    .shk-philosophy-badge {
        position: absolute;
        bottom: -1rem;
        left: 0.5rem;
        padding: 1rem 1.25rem;
        min-width: 150px;
    }

    .shk-philosophy-badge .wp-block-paragraph:last-child {
        font-size: 1.1rem;
    }
}

.shk-philosophy .wp-block-columns .wp-block-column:nth-child(2) {
    padding-bottom: 1.5rem;
}

/* ============================================
   Step 4: The Craft セクション（トップページ）
   ============================================ */

.shk-craft {
    position: relative;
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
    background-color: #1a1a1a !important;
    color: #ffffff !important;
    overflow: hidden;
}

@media (min-width: 769px) {
    .shk-craft {
        padding-top: 8rem !important;
        padding-bottom: 8rem !important;
    }
}

.shk-craft::before {
    content: "";
    position: absolute;
    top: 0;
    right: -10%;
    width: 70%;
    height: 100%;
    background-color: #222222;
    transform: skewX(-12deg);
    opacity: 0.5;
    z-index: 0;
    pointer-events: none;
}

.shk-craft .swell-block-fullWide__inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

.shk-craft .is-style-section_ttl {
    text-align: left !important;
    font-family: var(--shk-font-serif) !important;
    font-size: clamp(2rem, 4.5vw, 3rem) !important;
    line-height: 1.4 !important;
    color: #ffffff !important;
    border: none !important;
    padding: 0 !important;
    margin-bottom: 3rem !important;
}

.shk-craft .is-style-section_ttl .swl-fz.u-fz-xs {
    display: block;
    font-family: var(--shk-font-sans);
    font-size: 0.75rem !important;
    letter-spacing: 0.3em;
    margin-bottom: 1.25rem;
    font-weight: 500;
    text-transform: uppercase;
}

.shk-craft .is-style-section_ttl .swl-inline-color.has-swl-main-color {
    color: var(--shk-artisan) !important;
}

.shk-craft .u-mb-ctrl.u-mb-5 {
    margin-bottom: 3rem !important;
}

.shk-craft-video {
    position: relative;
    margin: 0 !important;
    border: 1px solid rgba(176, 146, 91, 0.3);
    overflow: hidden;
    background-color: #000000;
}

.shk-craft-video video {
    width: 100%;
    height: auto;
    display: block;
}

.shk-craft-video:hover {
    border-color: rgba(176, 146, 91, 0.6);
    transition: border-color 0.5s ease;
}

/* ============================================
   Step 5: Service セクション（トップページ）
   ============================================ */

.shk-service {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

@media (min-width: 769px) {
    .shk-service {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }
}

.shk-service > .wp-block-group__inner-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

.shk-service > .wp-block-group__inner-container > .is-style-section_ttl {
    text-align: center !important;
    font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
    line-height: 1.6 !important;
    margin-bottom: 4rem !important;
    border: none !important;
    padding: 0 !important;
}

.shk-service .is-style-section_ttl .swl-fz.u-fz-xs {
    display: block;
    font-family: var(--shk-font-sans);
    font-size: 0.75rem !important;
    letter-spacing: 0.3em;
    margin-bottom: 1.25rem;
    font-weight: 500;
    text-transform: uppercase;
}

.shk-service .is-style-section_ttl .swl-inline-color.has-swl-main-color {
    color: var(--shk-artisan) !important;
}

.shk-service .wp-block-spacer {
    height: 1rem !important;
}

.shk-service-cards {
    margin-bottom: 3rem !important;
}

.shk-service-cards .swell-block-columns__inner {
    gap: 2rem !important;
}

@media (max-width: 768px) {
    .shk-service-cards .swell-block-columns__inner {
        gap: 2.5rem !important;
    }
}

.shk-service-card {
    cursor: pointer;
    margin-bottom: 0 !important;
}

.shk-service-card > .wp-block-group > .wp-block-group__inner-container {
    padding: 0 !important;
    max-width: none !important;
}

.shk-service-card figure.wp-block-image {
    margin: 0 0 1.5rem 0 !important;
    overflow: hidden;
    position: relative;
    aspect-ratio: 4 / 5;
    background-color: #f5f5f5;
}

.shk-service-card figure.wp-block-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.7s ease;
    max-height: none !important;
}

.shk-service-card figure.wp-block-image img[style*="height"] {
    height: 100% !important;
}

.shk-service-card:hover figure.wp-block-image img {
    transform: scale(1.1);
}

.shk-service-card figure.wp-block-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(34, 34, 34, 0);
    transition: background-color 0.5s ease;
    pointer-events: none;
    z-index: 1;
}

.shk-service-card:hover figure.wp-block-image::after {
    background-color: rgba(34, 34, 34, 0.1);
}

.shk-service-card > .wp-block-group > .wp-block-group__inner-container {
    border-left: 2px solid var(--shk-line-default);
    padding-left: 1.5rem !important;
    transition: border-color 0.5s ease;
}

.shk-service-card:hover > .wp-block-group > .wp-block-group__inner-container {
    border-left-color: var(--shk-artisan);
}

.shk-service-card .wp-block-paragraph:first-of-type {
    margin-bottom: 0.75rem !important;
}

.shk-service-card .swl-fz.u-fz-xl {
    display: block;
    font-family: var(--shk-font-serif);
    font-size: 1.625rem !important;
    font-weight: 500;
    color: var(--shk-sumi);
    line-height: 1.3;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
}

.shk-service-card .swl-fz.u-fz-xs {
    display: block;
    font-family: var(--shk-font-sans);
    font-size: 0.75rem !important;
    color: var(--shk-text-sub);
    letter-spacing: 0.2em;
    line-height: 1.4;
    margin-bottom: 0;
}

.shk-service-card .wp-block-paragraph:nth-of-type(2) {
    font-family: var(--shk-font-sans);
    font-size: 0.875rem;
    font-weight: 300;
    color: var(--shk-text-sub);
    line-height: 1.9;
    letter-spacing: 0.03em;
    margin-bottom: 1.25rem !important;
}

.shk-service-card .wp-block-paragraph:nth-of-type(3) {
    margin: 0 !important;
}

.shk-service-card .wp-block-paragraph:nth-of-type(3) .swl-inline-color.has-swl-main-color {
    font-family: var(--shk-font-serif);
    font-size: 1.125rem;
    color: var(--shk-artisan) !important;
    letter-spacing: 0.05em;
    font-weight: 500;
}

.shk-service-button {
    text-align: center !important;
    margin: 0 auto !important;
    display: block;
}

.shk-service-button .swell-block-button__link {
    background-color: transparent !important;
    color: var(--shk-sumi) !important;
    font-family: var(--shk-font-serif);
    letter-spacing: var(--shk-ls-widest);
    padding: 1em 3em !important;
    border-radius: 0;
    border: 1px solid var(--shk-sumi) !important;
    box-shadow: none;
    transition: all 0.3s ease;
    min-width: auto;
}

.shk-service-button .swell-block-button__link:hover {
    background-color: var(--shk-sumi) !important;
    color: #ffffff !important;
    border-color: var(--shk-sumi) !important;
    opacity: 1;
}

.shk-service-button .swell-block-button__link::before,
.shk-service-button .swell-block-button__link::after {
    display: none !important;
}

.shk-service > .wp-block-group__inner-container > .wp-block-spacer:last-of-type {
    height: 4rem !important;
}

/* Step 5-3: Service カード 3カラム強制 + 画像表示の改善 */
@media (min-width: 769px) {
    .shk-service-cards .swell-block-columns__inner {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2rem !important;
        align-items: start;
    }

    .shk-service-cards .swell-block-column {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        margin: 0 !important;
    }
}

@media (max-width: 768px) {
    .shk-service-cards .swell-block-columns__inner {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 2.5rem !important;
    }

    .shk-service-cards .swell-block-column {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }
}

.shk-service-card figure.wp-block-image {
    aspect-ratio: 4 / 5 !important;
    background-color: #f5f5f5;
    width: 100% !important;
}

.shk-service-card figure.wp-block-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center;
    max-height: none !important;
}

.shk-service-card figure.wp-block-image img[style] {
    height: 100% !important;
    width: 100% !important;
}

/* ============================================
   Step 7: Artisan セクション（トップページ）
   ============================================ */

.shk-artisan {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

@media (min-width: 769px) {
    .shk-artisan {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }
}

.shk-artisan > .wp-block-group__inner-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

@media (min-width: 769px) {
    .shk-artisan .swell-block-columns__inner {
        display: grid !important;
        grid-template-columns: 5fr 7fr !important;
        gap: 4rem !important;
        align-items: center;
    }

    .shk-artisan .swell-block-column {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }
}

@media (max-width: 768px) {
    .shk-artisan .swell-block-columns__inner {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 2.5rem !important;
    }

    .shk-artisan .swell-block-column {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }
}

.shk-artisan-image-col {
    position: relative;
}

.shk-artisan-image {
    position: relative;
    margin: 0 !important;
    width: 100% !important;
    z-index: 2;
}

.shk-artisan-image img {
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: center;
    display: block;
    filter: sepia(0.75) saturate(0.7) contrast(1.3) brightness(0.92) hue-rotate(-5deg);
    transition: filter 0.5s ease;
}

@media (min-width: 769px) {
    .shk-artisan-image-col::after {
        content: "";
        position: absolute;
        bottom: -2rem;
        right: -2rem;
        width: 12rem;
        height: 12rem;
        border: 2px solid rgba(176, 146, 91, 0.3);
        z-index: 1;
        pointer-events: none;
    }
}

.shk-artisan .is-style-section_ttl {
    text-align: left !important;
    font-family: var(--shk-font-serif) !important;
    font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
    line-height: 1.5 !important;
    color: var(--shk-sumi) !important;
    border: none !important;
    padding: 0 !important;
    margin-bottom: 2.5rem !important;
}

.shk-artisan .is-style-section_ttl .swl-fz.u-fz-xs {
    display: block;
    font-family: var(--shk-font-sans);
    font-size: 0.75rem !important;
    letter-spacing: 0.3em;
    margin-bottom: 1.5rem;
    font-weight: 500;
    text-transform: uppercase;
}

.shk-artisan .is-style-section_ttl .swl-inline-color.has-swl-main-color {
    color: var(--shk-artisan) !important;
}

.shk-artisan .swell-block-column:nth-child(2) .wp-block-paragraph:not(.shk-artisan-name):not(.shk-artisan-title) {
    font-family: var(--shk-font-sans);
    font-weight: 300;
    font-size: 1rem;
    line-height: 2.2;
    color: rgba(34, 34, 34, 0.8);
    letter-spacing: 0.05em;
    margin-bottom: 1.75rem !important;
}

.shk-artisan-name {
    font-family: var(--shk-font-serif) !important;
    font-size: 1.25rem !important;
    color: var(--shk-sumi) !important;
    letter-spacing: 0.05em;
    line-height: 1.5 !important;
    padding-top: 2rem !important;
    border-top: 1px solid var(--shk-line-default);
    margin-top: 2rem !important;
    margin-bottom: 0.25rem !important;
}

.shk-artisan-title {
    font-family: var(--shk-font-sans) !important;
    font-size: 0.8125rem !important;
    color: var(--shk-text-sub) !important;
    letter-spacing: 0.05em;
    line-height: 1.7 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    font-weight: 400;
}

.shk-artisan .wp-block-spacer:last-of-type {
    height: 2rem !important;
}

/* ============================================
   Step 8: フッター Access & CTA
   ============================================ */

.l-footer {
    background-color: #222222 !important;
    color: #ffffff;
}

.l-footer__widgetArea {
    background-color: #222222;
    padding: 5rem 0 4rem;
}

@media (max-width: 768px) {
    .l-footer__widgetArea {
        padding: 3rem 0 2rem;
    }
}

.l-footer .w-footer {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

.l-footer .w-footer__box {
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.l-footer .widget_custom_html {
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.l-footer .textwidget.custom-html-widget {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}

@media (max-width: 768px) {
    .l-footer .textwidget.custom-html-widget {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
}

.shk-footer-block {
    color: #ffffff;
}

.shk-footer-heading {
    font-family: var(--shk-font-serif);
    font-size: clamp(1.5rem, 3vw, 1.875rem);
    font-weight: 500;
    color: #ffffff;
    line-height: 1.5;
    margin: 0 0 2rem 0;
    letter-spacing: 0.05em;
}

.shk-footer-info {
    margin-bottom: 2.5rem;
}

.shk-footer-info p {
    color: #d0d0d0;
    font-family: var(--shk-font-sans);
    font-weight: 300;
    line-height: 1.9;
    margin: 0 0 1.25rem 0;
    letter-spacing: 0.03em;
}

.shk-footer-name {
    font-family: var(--shk-font-serif) !important;
    font-size: 1.0625rem !important;
    color: #ffffff !important;
    font-weight: 500 !important;
    margin-bottom: 0.75rem !important;
}

.shk-footer-address {
    font-size: 0.9375rem;
}

.shk-footer-label {
    display: inline-block;
    font-size: 0.7rem;
    color: var(--shk-artisan);
    letter-spacing: 0.2em;
    margin-right: 0.75rem;
    text-transform: uppercase;
    font-weight: 500;
}

.shk-footer-hours,
.shk-footer-tel {
    font-size: 0.9375rem;
}

.shk-footer-tel a {
    color: #ffffff;
    text-decoration: none;
    font-family: var(--shk-font-serif);
    font-size: 1.125rem;
    letter-spacing: 0.05em;
    transition: color 0.3s ease;
}

.shk-footer-tel a:hover {
    color: var(--shk-artisan);
}

.shk-footer-map {
    margin-top: -0.5rem !important;
}

.shk-footer-map a {
    color: var(--shk-artisan);
    font-size: 0.8125rem;
    text-decoration: none;
    letter-spacing: 0.05em;
    border-bottom: 1px solid rgba(176, 146, 91, 0.3);
    padding-bottom: 0.15rem;
    transition: all 0.3s ease;
}

.shk-footer-map a:hover {
    color: var(--shk-artisan-light);
    border-bottom-color: var(--shk-artisan-light);
}

.shk-footer-shipping {
    border: 1px solid rgba(255, 255, 255, 0.15);
    background-color: rgba(255, 255, 255, 0.03);
    padding: 1.5rem 1.5rem;
    margin-top: 1.5rem;
}

.shk-footer-shipping-heading {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    color: #ffffff;
    font-weight: 500;
    margin: 0 0 0.75rem 0;
    letter-spacing: 0.05em;
}

.shk-footer-shipping-desc {
    color: #a0a0a0 !important;
    font-size: 0.8125rem !important;
    line-height: 1.8 !important;
    margin: 0 !important;
    letter-spacing: 0.02em;
}

.shk-footer-cta {
    padding-top: 0.5rem;
}

.shk-footer-eyebrow {
    color: var(--shk-artisan);
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0 0 1rem 0 !important;
}

.shk-footer-cta-desc {
    color: #a0a0a0;
    font-size: 0.875rem;
    line-height: 1.8;
    margin: 0 0 2rem 0 !important;
}

.shk-footer-btn {
    display: block;
    width: 100%;
    text-align: center;
    padding: 1.1em 1.5em;
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    letter-spacing: 0.15em;
    text-decoration: none;
    border-radius: 0;
    margin-bottom: 1rem;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.shk-footer-btn:last-child {
    margin-bottom: 0;
}

.shk-footer-btn-primary {
    background-color: var(--shk-artisan);
    color: #ffffff !important;
    border: 1px solid var(--shk-artisan);
}

.shk-footer-btn-primary:hover {
    background-color: var(--shk-artisan-light);
    border-color: var(--shk-artisan-light);
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(176, 146, 91, 0.3);
}

.shk-footer-btn-secondary {
    background-color: transparent;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.shk-footer-btn-secondary:hover {
    background-color: rgba(255, 255, 255, 0.05);
    border-color: #ffffff;
    color: #ffffff !important;
}

.l-footer__foot {
    background-color: #1a1a1a;
    padding: 2rem 0;
    margin-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.l-footer__foot .l-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

@media (min-width: 769px) {
    .l-footer__foot .l-container {
        flex-direction: row-reverse;
        justify-content: space-between;
        align-items: center;
        gap: 2rem;
    }
}

.l-footer__nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem 1.75rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.l-footer__nav .menu-item a {
    color: #a0a0a0;
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-decoration: none;
    transition: color 0.3s ease;
}

.l-footer__nav .menu-item a:hover {
    color: var(--shk-artisan);
}

.l-footer__foot .copyright {
    color: #707070;
    font-size: 0.7rem;
    font-family: var(--shk-font-sans);
    letter-spacing: 0.05em;
    margin: 0;
    line-height: 1.5;
    text-align: center;
}

@media (min-width: 769px) {
    .l-footer__foot .copyright {
        text-align: left;
    }
}

/* ============================================
   下層ページ共通CSS（語彙集 v2.3 準拠）
   - eyebrow型見出しに統一
   - 装飾は最小限・擬似要素で
   - 黒背景セクションは使わない（CTAのみ）
   ============================================ */

/* ---------- SWELLデフォルトのページタイトル非表示 ---------- */
.page .l-pageTitle,
.page .c-pageTitle {
    display: none !important;
}

/* ---------- 固定ページの不要な余白を削除 ---------- */
.page #main_content {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.page #content {
    padding: 0 !important;
    max-width: 100% !important;
}

.page .l-mainContent__inner {
    padding: 0 !important;
}

/* ---------- ページヒーロー（共通） ---------- */
.shk-subpage-hero {
    padding-top: 10rem !important;
    padding-bottom: 6rem !important;
}

@media (min-width: 769px) {
    .shk-subpage-hero {
        padding-top: 12rem !important;
        padding-bottom: 8rem !important;
    }
}

/* ---------- eyebrow型見出し（共通） ---------- */
.shk-eyebrow {
    display: block;
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    color: var(--shk-artisan);
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0 0 1.5rem 0;
    text-align: center;
}

.shk-eyebrow-left {
    text-align: left;
}

/* ---------- 大見出し（h1・ヒーロー用） ---------- */
.shk-hero-title {
    font-family: var(--shk-font-serif);
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-align: center;
    margin: 0 0 2rem 0;
    color: var(--shk-sumi);
}

/* ---------- ヒーロー直下のリード文 ---------- */
.shk-subpage-hero .shk-hero-lead {
    font-family: var(--shk-font-sans);
    font-weight: 300;
    font-size: 1rem;
    line-height: 2.2;
    letter-spacing: 0.05em;
    text-align: center;
    color: var(--shk-text-sub);
    max-width: 36rem;
    margin: 0 auto;
}

/* ---------- セクション見出し（h2・各セクション用） ---------- */
.shk-section-title {
    font-family: var(--shk-font-serif);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-align: center;
    margin: 0 0 3rem 0;
    color: var(--shk-sumi);
    /* SWELL section_ttl 干渉解除 */
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
}

.shk-section-title-left {
    text-align: left;
}

/* ---------- 本文段落（共通・きらくにの流儀: 両端揃え） ---------- */
.shk-body p {
    font-family: var(--shk-font-serif);
    font-size: 1.0625rem;
    line-height: 2.2;
    letter-spacing: 0.05em;
    margin: 0 0 1.75rem 0;
    color: var(--shk-text-sub);
    text-align: justify;
    word-break: normal;
    line-break: strict;
}

.shk-body p:last-child {
    margin-bottom: 0;
}

/* ---------- 中央寄せ本文 ---------- */
.shk-body-center {
    max-width: 36rem;
    margin: 0 auto;
}

.shk-body-center p {
    text-align: center;
}

/* ---------- スクロール出現アニメーション（語彙集 Part 2-3） ---------- */
.shk-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1.2s var(--shk-ease), transform 1.2s var(--shk-ease);
}

.shk-reveal.is-inview {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 768px) {
    .shk-reveal {
        transform: translateY(15px);
        transition-duration: 1.0s;
    }
}

@media (prefers-reduced-motion: reduce) {
    .shk-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ============================================
   Philosophy ページ専用CSS（語彙集 v2.3 準拠）
   ============================================ */

/* ---------- セクション余白 ---------- */
.shk-philosophy-section {
    padding: 6rem 1.5rem !important;
}

@media (min-width: 769px) {
    .shk-philosophy-section {
        padding: 8rem 2rem !important;
    }
}

/* ---------- 薄ウォームグレー背景（緩急用） ---------- */
.shk-philosophy-section-alt {
    background-color: var(--shk-bg-warm);
}

/* ---------- 内側コンテナ ---------- */
.shk-philosophy-section > .wp-block-group__inner-container {
    max-width: 920px;
    margin: 0 auto;
}

/* ---------- 経営方針：5枚カードのGrid 2列 ---------- */
.shk-principle-cards {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    margin-top: 3rem !important;
    max-width: 920px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.shk-principle-cards > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    max-width: none;
    margin: 0;
}

@media (min-width: 769px) {
    .shk-principle-cards,
    .shk-principle-cards > .wp-block-group__inner-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 2.5rem !important;
    }
}

/* ---------- カード本体（最小演出） ---------- */
.shk-principle-card {
    background-color: #ffffff;
    padding: 2.5rem 2rem !important;
    border-left: 2px solid var(--shk-artisan);
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box;
    transition: border-left-width 0.4s var(--shk-ease);
}

.shk-principle-card:hover {
    border-left-width: 4px;
}

.shk-principle-card > .wp-block-group__inner-container {
    padding: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

/* ---------- カード内：番号 ---------- */
.shk-principle-number {
    font-family: var(--shk-font-serif);
    font-size: 0.875rem;
    color: var(--shk-artisan);
    letter-spacing: 0.2em;
    margin: 0 0 0.75rem 0 !important;
    display: block;
}

/* ---------- カード内：見出し（h3） ---------- */
.shk-principle-heading {
    font-family: var(--shk-font-serif);
    font-size: 1.375rem;
    color: var(--shk-sumi);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.05em;
    margin: 0 0 1.25rem 0 !important;
    /* SWELL干渉解除 */
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

/* ---------- カード内：本文 ---------- */
.shk-principle-text {
    font-family: var(--shk-font-sans);
    font-size: 0.9375rem;
    color: var(--shk-text-sub);
    line-height: 2.0;
    font-weight: 300;
    margin: 0 !important;
    text-align: justify;
}

/* ---------- CTA セクション（黒背景はCTAのみ） ---------- */
.shk-cta-section {
    padding: 6rem 1.5rem !important;
    background-color: var(--shk-sumi-soft);
    color: #ffffff;
    text-align: center;
}

@media (min-width: 769px) {
    .shk-cta-section {
        padding: 8rem 2rem !important;
    }
}

.shk-cta-section > .wp-block-group__inner-container {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.shk-cta-title {
    font-family: var(--shk-font-serif);
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: 0.05em;
    color: #ffffff !important;
    margin: 0 0 1.5rem 0 !important;
    text-align: center;
    /* SWELL干渉解除 */
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

.shk-cta-lead {
    font-family: var(--shk-font-sans);
    font-weight: 300;
    font-size: 0.9375rem;
    line-height: 2.0;
    color: rgba(255, 255, 255, 0.75);
    margin: 0 0 2.5rem 0 !important;
    text-align: center;
}

/* CTAボタン（SWELLボタン上書き） */
.shk-cta-section .swell-block-button__link {
    background-color: var(--shk-artisan) !important;
    color: #ffffff !important;
    font-family: var(--shk-font-serif);
    letter-spacing: 0.15em;
    padding: 1.1em 2.5em !important;
    border-radius: 0;
    border: none;
    transition: background-color 0.3s var(--shk-ease);
}

.shk-cta-section .swell-block-button__link:hover {
    background-color: var(--shk-artisan-light) !important;
    opacity: 1;
}

/* ============================================
   工房について ページ専用CSS（語彙集 v2.3 準拠）
   ============================================ */

/* ---------- セクション余白（Philosophyと共通の設計） ---------- */
.shk-workshop-section {
    padding: 6rem 1.5rem !important;
}

@media (min-width: 769px) {
    .shk-workshop-section {
        padding: 8rem 2rem !important;
    }
}

.shk-workshop-section-alt {
    background-color: var(--shk-bg-warm);
}

.shk-workshop-section > .wp-block-group__inner-container {
    max-width: 920px;
    margin: 0 auto;
}

/* ---------- 代表プロフィール：左写真+右テキストの2カラム ---------- */
.shk-profile-columns {
    margin-top: 3rem !important;
}

.shk-profile-columns .wp-block-columns {
    align-items: flex-start;
    gap: 3rem !important;
}

@media (min-width: 769px) {
    .shk-profile-columns .wp-block-columns {
        display: grid !important;
        grid-template-columns: 5fr 7fr !important;
        gap: 4rem !important;
    }

    .shk-profile-columns .wp-block-column {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        flex: none !important;
    }
}

@media (max-width: 768px) {
    .shk-profile-columns .wp-block-columns {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }
}

/* ---------- プロフィール写真 ---------- */
.shk-profile-image {
    margin: 0 !important;
    width: 100% !important;
}

.shk-profile-image img {
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* ---------- プロフィール：名前 ---------- */
.shk-profile-name {
    font-family: var(--shk-font-serif) !important;
    font-size: 1.75rem !important;
    color: var(--shk-sumi) !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    margin: 0 0 0.5rem 0 !important;
    letter-spacing: 0.05em;
    /* SWELL section_ttl 干渉解除 */
    background: none !important;
    border: none !important;
    padding: 0 !important;
    text-align: left !important;
}

/* ---------- プロフィール：英字名 ---------- */
.shk-profile-name-en {
    font-family: var(--shk-font-sans) !important;
    font-size: 0.875rem !important;
    color: var(--shk-text-sub) !important;
    letter-spacing: 0.2em !important;
    margin: 0 0 1.5rem 0 !important;
    font-weight: 400;
}

/* ---------- プロフィール：肩書き ---------- */
.shk-profile-title {
    font-family: var(--shk-font-sans) !important;
    font-size: 0.875rem !important;
    color: var(--shk-text-sub) !important;
    letter-spacing: 0.05em;
    line-height: 1.9 !important;
    margin: 0 0 2rem 0 !important;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--shk-line-default);
}

/* ---------- プロフィール本文 ---------- */
.shk-profile-body p {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    line-height: 2.2;
    letter-spacing: 0.05em;
    color: var(--shk-text-sub);
    margin: 0 0 1.5rem 0;
    text-align: justify;
}

.shk-profile-body p:last-child {
    margin-bottom: 0;
}

/* ---------- 資格・受賞歴：縦タイムライン ---------- */
.shk-awards-list {
    margin-top: 2rem !important;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.shk-awards-item {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 2rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--shk-line-default);
    align-items: baseline;
}

.shk-awards-item:first-child {
    border-top: 1px solid var(--shk-line-default);
}

@media (max-width: 768px) {
    .shk-awards-item {
        grid-template-columns: 80px 1fr;
        gap: 1.25rem;
        padding: 1.25rem 0;
    }
}

.shk-awards-year {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    color: var(--shk-artisan);
    letter-spacing: 0.1em;
    font-weight: 500;
}

.shk-awards-content {
    font-family: var(--shk-font-sans);
    font-size: 0.9375rem;
    color: var(--shk-sumi);
    line-height: 1.8;
    font-weight: 400;
}

/* ---------- 資格リスト（受賞歴の前） ---------- */
.shk-qualifications {
    margin: 0 auto 3rem auto;
    max-width: 720px;
    background-color: #ffffff;
    padding: 2rem 2.5rem;
    border-left: 2px solid var(--shk-artisan);
}

.shk-qualifications-title {
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    color: var(--shk-artisan);
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0 0 1rem 0 !important;
    display: block;
}

.shk-qualifications-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.shk-qualifications-list li {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    color: var(--shk-sumi);
    line-height: 1.8;
    padding: 0.25rem 0;
    letter-spacing: 0.05em;
}

/* ---------- 工房の歴史：縦タイムライン ---------- */
.shk-history-timeline {
    margin-top: 3rem !important;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    padding-left: 2rem;
}

.shk-history-timeline::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.5rem;
    bottom: 0.5rem;
    width: 1px;
    background-color: var(--shk-line-default);
}

.shk-history-item {
    position: relative;
    padding: 0 0 2.5rem 1.5rem;
}

.shk-history-item:last-child {
    padding-bottom: 0;
}

.shk-history-item::before {
    content: "";
    position: absolute;
    left: -2.3rem;
    top: 0.5rem;
    width: 0.5rem;
    height: 0.5rem;
    background-color: var(--shk-artisan);
    border-radius: 50%;
}

.shk-history-year {
    font-family: var(--shk-font-serif);
    font-size: 0.9375rem;
    color: var(--shk-artisan);
    letter-spacing: 0.1em;
    font-weight: 500;
    margin: 0 0 0.5rem 0 !important;
    display: block;
}

.shk-history-text {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    color: var(--shk-sumi);
    line-height: 1.9;
    letter-spacing: 0.05em;
    margin: 0 !important;
    text-align: justify;
}

/* ---------- 宝飾品への想い：3つの小セクション ---------- */
.shk-craft-philosophy {
    margin-top: 3rem !important;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.shk-craft-philosophy-item {
    margin-bottom: 4rem;
}

.shk-craft-philosophy-item:last-child {
    margin-bottom: 0;
}

.shk-craft-philosophy-subtitle {
    font-family: var(--shk-font-serif) !important;
    font-size: 1.375rem !important;
    color: var(--shk-sumi) !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    margin: 0 0 1.5rem 0 !important;
    letter-spacing: 0.05em;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--shk-line-default);
    /* SWELL section_ttl 干渉解除 */
    background: none !important;
    border-top: none !important;
    padding-top: 0 !important;
}

.shk-craft-philosophy-item .shk-body p {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    line-height: 2.2;
    letter-spacing: 0.05em;
    color: var(--shk-text-sub);
    margin: 0 0 1.5rem 0;
    text-align: justify;
}

.shk-craft-philosophy-item .shk-body p:last-child {
    margin-bottom: 0;
}

/* ============================================
   鍛造について ページ専用CSS（語彙集 v2.3 準拠）
   ============================================ */

/* ---------- セクション余白（Philosophy/Workshopと共通） ---------- */
.shk-forging-section {
    padding: 6rem 1.5rem !important;
}

@media (min-width: 769px) {
    .shk-forging-section {
        padding: 8rem 2rem !important;
    }
}

.shk-forging-section-alt {
    background-color: var(--shk-bg-warm);
}

.shk-forging-section > .wp-block-group__inner-container {
    max-width: 1080px;
    margin: 0 auto;
}

/* ---------- 鍛造の魅力：4枚カード（2列グリッド） ---------- */
.shk-appeal-cards {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    margin-top: 3rem !important;
    max-width: 920px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.shk-appeal-cards > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    max-width: none;
    margin: 0;
}

@media (min-width: 769px) {
    .shk-appeal-cards,
    .shk-appeal-cards > .wp-block-group__inner-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 2.5rem !important;
    }
}

/* ---------- 魅力カード本体 ---------- */
.shk-appeal-card {
    background-color: #ffffff;
    padding: 2.5rem 2rem !important;
    border-left: 2px solid var(--shk-artisan);
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box;
    transition: border-left-width 0.4s var(--shk-ease);
}

.shk-appeal-card:hover {
    border-left-width: 4px;
}

.shk-appeal-card > .wp-block-group__inner-container {
    padding: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

.shk-appeal-number {
    font-family: var(--shk-font-serif);
    font-size: 0.875rem;
    color: var(--shk-artisan);
    letter-spacing: 0.2em;
    margin: 0 0 0.75rem 0 !important;
    display: block;
}

.shk-appeal-heading {
    font-family: var(--shk-font-serif) !important;
    font-size: 1.375rem !important;
    color: var(--shk-sumi) !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    margin: 0 0 1.25rem 0 !important;
    letter-spacing: 0.05em;
    /* SWELL section_ttl 干渉解除 */
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

.shk-appeal-text {
    font-family: var(--shk-font-sans);
    font-size: 0.9375rem;
    color: var(--shk-text-sub);
    line-height: 2.0;
    font-weight: 300;
    margin: 0 !important;
    text-align: justify;
}

/* ---------- 鋳造との比較：冒頭文 ---------- */
.shk-comparison-intro {
    max-width: 720px;
    margin: 0 auto 3rem auto !important;
    text-align: center;
}

.shk-comparison-intro p {
    font-family: var(--shk-font-serif);
    font-size: 1.0625rem;
    line-height: 2.2;
    color: var(--shk-sumi);
    letter-spacing: 0.05em;
    margin: 0;
}

/* ---------- 比較表 ---------- */
.shk-comparison-table {
    max-width: 920px;
    margin: 0 auto;
    background-color: #ffffff;
}

.shk-comparison-table-header {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    background-color: var(--shk-sumi);
    color: #ffffff;
}

.shk-comparison-table-header-cell {
    padding: 1.25rem 1.5rem;
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    letter-spacing: 0.1em;
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.15);
}

.shk-comparison-table-header-cell:last-child {
    border-right: none;
}

.shk-comparison-table-header-cell.is-artisan {
    background-color: var(--shk-artisan);
    color: #ffffff;
}

.shk-comparison-table-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    border-bottom: 1px solid var(--shk-line-default);
}

.shk-comparison-table-row:last-child {
    border-bottom: none;
}

.shk-comparison-table-cell {
    padding: 1.5rem;
    font-family: var(--shk-font-sans);
    font-size: 0.875rem;
    line-height: 1.8;
    color: var(--shk-sumi);
    border-right: 1px solid var(--shk-line-default);
}

.shk-comparison-table-cell:last-child {
    border-right: none;
}

.shk-comparison-table-cell-label {
    background-color: #f9f9f7;
    font-family: var(--shk-font-serif);
    font-weight: 500;
    color: var(--shk-sumi);
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
}

@media (max-width: 768px) {
    .shk-comparison-table-header,
    .shk-comparison-table-row {
        grid-template-columns: 1fr;
    }

    .shk-comparison-table-cell,
    .shk-comparison-table-header-cell {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15);
        text-align: left;
    }

    .shk-comparison-table-row .shk-comparison-table-cell {
        border-bottom: 1px dashed var(--shk-line-default);
    }

    .shk-comparison-table-row .shk-comparison-table-cell:last-child {
        border-bottom: none;
    }

    .shk-comparison-table-cell-label {
        background-color: #f9f9f7;
        font-size: 0.875rem;
    }

    .shk-comparison-table-cell-label::before {
        content: "▼ ";
        color: var(--shk-artisan);
        margin-right: 0.5rem;
    }
}

/* ---------- 比較セクションの締めの一文 ---------- */
.shk-comparison-conclusion {
    max-width: 720px;
    margin: 3rem auto 0 auto !important;
    text-align: center;
}

.shk-comparison-conclusion p {
    font-family: var(--shk-font-serif);
    font-size: 1.125rem;
    line-height: 2.0;
    color: var(--shk-sumi);
    letter-spacing: 0.05em;
    margin: 0;
    font-weight: 500;
}

/* ---------- 工程セクション ---------- */
.shk-process-intro {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 3rem auto !important;
}

.shk-process-intro p {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    line-height: 2.0;
    color: var(--shk-text-sub);
    letter-spacing: 0.05em;
    margin: 0;
}

/* ---------- 工程グリッド（3列） ---------- */
.shk-process-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 2rem !important;
    margin-top: 3rem !important;
    max-width: 1080px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.shk-process-grid > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    max-width: none;
    margin: 0;
}

@media (min-width: 769px) {
    .shk-process-grid,
    .shk-process-grid > .wp-block-group__inner-container {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2.5rem !important;
    }
}

@media (max-width: 480px) {
    .shk-process-grid,
    .shk-process-grid > .wp-block-group__inner-container {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }
}

/* ---------- 工程カード ---------- */
.shk-process-item {
    background-color: transparent;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

.shk-process-item > .wp-block-group__inner-container {
    padding: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

.shk-process-item-image {
    margin: 0 0 1rem 0 !important;
    overflow: hidden;
    position: relative;
    aspect-ratio: 1 / 1;
    background-color: #f0ede5;
    width: 100% !important;
}

.shk-process-item-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    display: block;
    max-height: none !important;
}

.shk-process-item-image[data-empty]::before,
.shk-process-item-image:has(img:not([src]))::before {
    content: "STEP";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--shk-text-sub);
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    letter-spacing: 0.3em;
    opacity: 0.5;
}

.shk-process-step {
    font-family: var(--shk-font-serif);
    font-size: 0.875rem;
    color: var(--shk-artisan);
    letter-spacing: 0.2em;
    margin: 0 0 0.5rem 0 !important;
    display: block;
}

.shk-process-caption {
    font-family: var(--shk-font-sans);
    font-size: 0.9375rem;
    color: var(--shk-sumi);
    line-height: 1.8;
    margin: 0 !important;
    letter-spacing: 0.03em;
    text-align: left;
}

/* ---------- 工程セクション内 サブセクション（リサイクル）の見出し ---------- */
.shk-process-subsection-title {
    font-family: var(--shk-font-serif) !important;
    font-size: clamp(1.375rem, 2.5vw, 1.625rem) !important;
    color: var(--shk-sumi) !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    text-align: center;
    margin: 5rem 0 1rem 0 !important;
    letter-spacing: 0.05em;
    /* SWELL section_ttl 干渉解除 */
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

.shk-process-subsection-intro {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 2rem auto !important;
}

.shk-process-subsection-intro p {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    line-height: 2.0;
    color: var(--shk-text-sub);
    letter-spacing: 0.05em;
    margin: 0;
}

/* ============================================
   Service / MENU ページ専用CSS（語彙集 v2.3 準拠）
   ============================================ */

/* ---------- セクション余白（他下層ページと共通の設計） ---------- */
.shk-service-page-section {
    padding: 6rem 1.5rem !important;
}

@media (min-width: 769px) {
    .shk-service-page-section {
        padding: 8rem 2rem !important;
    }
}

.shk-service-page-section-alt {
    background-color: var(--shk-bg-warm);
}

.shk-service-page-section > .wp-block-group__inner-container {
    max-width: 1080px;
    margin: 0 auto;
}

/* ---------- サービス概要：3つのサマリーカード ---------- */
.shk-service-summary {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    margin-top: 3rem !important;
    max-width: 1080px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.shk-service-summary > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    max-width: none;
    margin: 0;
}

@media (min-width: 769px) {
    .shk-service-summary,
    .shk-service-summary > .wp-block-group__inner-container {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2.5rem !important;
    }
}

/* ---------- サマリーカード ---------- */
.shk-summary-card {
    background-color: #ffffff;
    padding: 2.5rem 2rem !important;
    border-left: 2px solid var(--shk-artisan);
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box;
    transition: border-left-width 0.4s var(--shk-ease);
    text-align: center;
}

.shk-summary-card:hover {
    border-left-width: 4px;
}

.shk-summary-card > .wp-block-group__inner-container {
    padding: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

.shk-summary-card-number {
    font-family: var(--shk-font-serif);
    font-size: 0.875rem;
    color: var(--shk-artisan);
    letter-spacing: 0.2em;
    margin: 0 0 0.75rem 0 !important;
    display: block;
    text-align: center;
}

.shk-summary-card-name {
    font-family: var(--shk-font-serif) !important;
    font-size: 1.75rem !important;
    color: var(--shk-sumi) !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    margin: 0 0 0.5rem 0 !important;
    letter-spacing: 0.05em;
    text-align: center;
    /* SWELL section_ttl 干渉解除 */
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

.shk-summary-card-subtitle {
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    color: var(--shk-text-sub);
    letter-spacing: 0.2em;
    margin: 0 0 1.5rem 0 !important;
    text-align: center;
}

.shk-summary-card-price {
    font-family: var(--shk-font-serif);
    font-size: 1.125rem;
    color: var(--shk-artisan);
    font-weight: 500;
    letter-spacing: 0.1em;
    margin: 0 !important;
    padding-top: 1.5rem;
    border-top: 1px solid var(--shk-line-default);
    text-align: center;
}

/* ---------- サービス詳細：見出し ---------- */
.shk-service-detail-name {
    font-family: var(--shk-font-serif) !important;
    font-size: clamp(1.75rem, 3.5vw, 2.25rem) !important;
    color: var(--shk-sumi) !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.05em;
    margin: 0 0 2.5rem 0 !important;
    text-align: center;
    /* SWELL section_ttl 干渉解除 */
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

/* ---------- サービス詳細：本文（語彙集 流儀: text-align justify） ---------- */
.shk-service-detail-body {
    max-width: 720px;
    margin: 0 auto 3rem auto !important;
}

.shk-service-detail-body p {
    font-family: var(--shk-font-serif);
    font-size: 1.0625rem;
    line-height: 2.2;
    letter-spacing: 0.05em;
    color: var(--shk-text-sub);
    margin: 0 0 1.5rem 0;
    text-align: justify;
}

.shk-service-detail-body p:last-child {
    margin-bottom: 0;
}

/* ---------- 対応例リスト（Revive用） ---------- */
.shk-service-features {
    max-width: 720px;
    margin: 3rem auto !important;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 2rem;
}

@media (max-width: 768px) {
    .shk-service-features {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
}

.shk-service-features li {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    color: var(--shk-sumi);
    line-height: 1.8;
    padding: 0.5rem 0 0.5rem 1.5rem;
    position: relative;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--shk-line-default);
}

.shk-service-features li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.2rem;
    width: 0.5rem;
    height: 1px;
    background-color: var(--shk-artisan);
}

/* ---------- 依頼の流れ（Remodel用） ---------- */
.shk-service-flow {
    max-width: 720px;
    margin: 3rem auto !important;
    position: relative;
    padding-left: 2.5rem;
}

.shk-service-flow::before {
    content: "";
    position: absolute;
    left: 0.5rem;
    top: 0.75rem;
    bottom: 0.75rem;
    width: 1px;
    background-color: var(--shk-line-default);
}

.shk-flow-item {
    position: relative;
    padding-bottom: 2rem;
}

.shk-flow-item:last-child {
    padding-bottom: 0;
}

.shk-flow-item::before {
    content: "";
    position: absolute;
    left: -2.25rem;
    top: 0.65rem;
    width: 0.625rem;
    height: 0.625rem;
    background-color: var(--shk-artisan);
    border-radius: 50%;
}

.shk-flow-step {
    font-family: var(--shk-font-serif);
    font-size: 0.8125rem;
    color: var(--shk-artisan);
    letter-spacing: 0.2em;
    margin: 0 0 0.25rem 0 !important;
    display: block;
}

.shk-flow-title {
    font-family: var(--shk-font-serif);
    font-size: 1.125rem;
    color: var(--shk-sumi);
    line-height: 1.6;
    letter-spacing: 0.05em;
    margin: 0 !important;
    font-weight: 500;
}

/* ---------- 料金・対応素材 ボックス ---------- */
.shk-service-meta {
    max-width: 720px;
    margin: 3rem auto 0 auto !important;
    background-color: #ffffff;
    padding: 2rem 2.5rem;
    border-left: 2px solid var(--shk-artisan);
}

.shk-service-page-section-alt .shk-service-meta {
    background-color: #ffffff;
}

.shk-service-meta-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 1.5rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--shk-line-default);
}

.shk-service-meta-row:last-child {
    border-bottom: none;
}

.shk-service-meta-row:first-child {
    padding-top: 0;
}

@media (max-width: 768px) {
    .shk-service-meta-row {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }
}

.shk-service-meta-label {
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    color: var(--shk-artisan);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 500;
    align-self: center;
}

.shk-service-meta-value {
    font-family: var(--shk-font-serif);
    font-size: 1.125rem;
    color: var(--shk-sumi);
    line-height: 1.6;
    letter-spacing: 0.05em;
    font-weight: 500;
}

/* ---------- BASE製品ギャラリー ---------- */
.shk-collection-intro {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 3rem auto !important;
}

.shk-collection-intro p {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    line-height: 2.0;
    color: var(--shk-text-sub);
    letter-spacing: 0.05em;
    margin: 0;
}

.shk-collection-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    margin-top: 3rem !important;
    max-width: 1080px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.shk-collection-grid > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    max-width: none;
    margin: 0;
}

@media (min-width: 769px) {
    .shk-collection-grid,
    .shk-collection-grid > .wp-block-group__inner-container {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2.5rem !important;
    }
}

@media (max-width: 768px) and (min-width: 481px) {
    .shk-collection-grid,
    .shk-collection-grid > .wp-block-group__inner-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1.5rem !important;
    }
}

/* ---------- BASE製品カード ---------- */
.shk-collection-item {
    background-color: #ffffff;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    transition: transform 0.4s var(--shk-ease);
}

.shk-collection-item:hover {
    transform: translateY(-4px);
}

.shk-collection-item > .wp-block-group__inner-container {
    padding: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

.shk-collection-item-image {
    margin: 0 !important;
    overflow: hidden;
    position: relative;
    aspect-ratio: 1 / 1;
    background-color: #f5f3ee;
    width: 100% !important;
}

.shk-collection-item-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    display: block;
    max-height: none !important;
    transition: transform 0.7s var(--shk-ease);
}

.shk-collection-item:hover .shk-collection-item-image img {
    transform: scale(1.05);
}

.shk-collection-item-body {
    padding: 1.5rem 1.5rem 1.75rem 1.5rem;
}

.shk-collection-item-body > .wp-block-group__inner-container {
    padding: 0 !important;
    max-width: none !important;
    margin: 0 !important;
}

.shk-collection-item-name {
    font-family: var(--shk-font-serif);
    font-size: 1.0625rem;
    color: var(--shk-sumi);
    line-height: 1.5;
    letter-spacing: 0.05em;
    margin: 0 0 0.5rem 0 !important;
    font-weight: 500;
}

.shk-collection-item-price {
    font-family: var(--shk-font-sans);
    font-size: 0.9375rem;
    color: var(--shk-text-sub);
    letter-spacing: 0.05em;
    margin: 0 0 1.25rem 0 !important;
}

/* BASE製品カードのリンクボタン */
.shk-collection-item-link a {
    display: inline-block;
    font-family: var(--shk-font-sans);
    font-size: 0.8125rem;
    color: var(--shk-sumi);
    letter-spacing: 0.15em;
    text-decoration: none;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--shk-sumi);
    transition: color 0.3s var(--shk-ease), border-color 0.3s var(--shk-ease);
}

.shk-collection-item-link a:hover {
    color: var(--shk-artisan);
    border-bottom-color: var(--shk-artisan);
}

/* ---------- BASE全製品リンク（コレクション末尾）---------- */
.shk-collection-more {
    text-align: center;
    margin-top: 4rem !important;
}

.shk-collection-more a {
    display: inline-block;
    font-family: var(--shk-font-serif);
    font-size: 0.9375rem;
    color: var(--shk-sumi);
    letter-spacing: 0.2em;
    text-decoration: none;
    padding: 1em 3em;
    border: 1px solid var(--shk-sumi);
    transition: all 0.3s var(--shk-ease);
}

.shk-collection-more a:hover {
    background-color: var(--shk-sumi);
    color: #ffffff;
}

/* ---------- 関連リンク（Remodel → 鍛造についてへの誘導）---------- */
.shk-related-link {
    text-align: center;
    margin-top: 2.5rem !important;
}

.shk-related-link a {
    display: inline-block;
    font-family: var(--shk-font-sans);
    font-size: 0.875rem;
    color: var(--shk-artisan);
    letter-spacing: 0.15em;
    text-decoration: none;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--shk-artisan);
    transition: color 0.3s var(--shk-ease), border-color 0.3s var(--shk-ease);
}

.shk-related-link a::after {
    content: " →";
    margin-left: 0.25rem;
}

.shk-related-link a:hover {
    color: var(--shk-artisan-light);
    border-bottom-color: var(--shk-artisan-light);
}

/* ============================================
   LINE 友だち追加ボタン（フッターCTA）
   - LINEブランドカラーで認識性を確保
   - 周囲のミニマル世界観の中で「機能的アクセント」として機能
   ============================================ */

.shk-footer-btn-line {
    background-color: #06C755;
    color: #ffffff !important;
    border: 1px solid #06C755;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.shk-footer-btn-line:hover {
    background-color: #05B048;
    border-color: #05B048;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(6, 199, 85, 0.3);
}

/* ---------- LINE アイコン ---------- */
.shk-footer-btn-line-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
}

.shk-footer-btn-line-icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* ---------- ホバー時のアイコンの動き（軽い演出） ---------- */
.shk-footer-btn-line .shk-footer-btn-line-icon {
    transition: transform 0.3s var(--shk-ease);
}

.shk-footer-btn-line:hover .shk-footer-btn-line-icon {
    transform: scale(1.05);
}

/* ============================================
   お問い合わせ ページ専用CSS（語彙集 v2.3 準拠）
   ============================================ */

/* ---------- フォームセクション全体 ---------- */
.shk-contact-section {
    padding: 6rem 1.5rem !important;
}

@media (min-width: 769px) {
    .shk-contact-section {
        padding: 8rem 2rem !important;
    }
}

.shk-contact-section > .wp-block-group__inner-container {
    max-width: 920px;
    margin: 0 auto;
}

/* ---------- 注意事項ボックス ---------- */
.shk-contact-info {
    margin-bottom: 3rem !important;
}

.shk-contact-notice {
    background-color: var(--shk-bg-warm);
    padding: 2rem 2.5rem;
    border-left: 2px solid var(--shk-artisan);
}

.shk-contact-notice-title {
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    color: var(--shk-artisan);
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0 0 1.25rem 0;
    display: block;
}

.shk-contact-notice-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.shk-contact-notice-list li {
    font-family: var(--shk-font-serif);
    font-size: 0.9375rem;
    color: var(--shk-sumi);
    line-height: 2.0;
    padding: 0.25rem 0 0.25rem 1.5rem;
    position: relative;
    letter-spacing: 0.03em;
}

.shk-contact-notice-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1.05rem;
    width: 0.5rem;
    height: 1px;
    background-color: var(--shk-artisan);
}

.shk-contact-notice-list li a {
    color: var(--shk-artisan);
    text-decoration: none;
    border-bottom: 1px solid var(--shk-artisan);
    padding-bottom: 0.1rem;
    transition: color 0.3s var(--shk-ease), border-color 0.3s var(--shk-ease);
}

.shk-contact-notice-list li a:hover {
    color: var(--shk-artisan-light);
    border-bottom-color: var(--shk-artisan-light);
}

/* ---------- フォーム本体 ---------- */
.shk-contact-form {
    margin: 0 auto;
}

/* CF7のラッパー */
.shk-contact-form .wpcf7 {
    margin: 0;
}

/* CF7のフォーム全体 */
.shk-contact-form form {
    margin: 0;
}

/* ---------- フォームフィールド ---------- */
.shk-form-field {
    margin-bottom: 2rem;
}

/* ---------- ラベル ---------- */
.shk-form-label {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    color: var(--shk-sumi);
    font-weight: 500;
    letter-spacing: 0.05em;
    margin: 0 0 0.75rem 0;
}

/* 必須・任意ラベル */
.shk-form-required {
    display: inline-block;
    font-family: var(--shk-font-sans);
    font-size: 0.6875rem;
    color: #ffffff;
    background-color: var(--shk-artisan);
    padding: 0.2em 0.7em;
    letter-spacing: 0.1em;
    line-height: 1.4;
    font-weight: 500;
}

.shk-form-optional {
    display: inline-block;
    font-family: var(--shk-font-sans);
    font-size: 0.6875rem;
    color: var(--shk-text-sub);
    background-color: transparent;
    border: 1px solid var(--shk-line-default);
    padding: 0.2em 0.7em;
    letter-spacing: 0.1em;
    line-height: 1.4;
    font-weight: 500;
}

/* ---------- 入力欄（共通） ---------- */
.shk-contact-form input[type="text"],
.shk-contact-form input[type="email"],
.shk-contact-form input[type="tel"],
.shk-contact-form textarea {
    width: 100%;
    padding: 1em 1.25em;
    background-color: #ffffff;
    border: 1px solid var(--shk-line-default);
    border-radius: 0;
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    color: var(--shk-sumi);
    line-height: 1.6;
    letter-spacing: 0.03em;
    box-sizing: border-box;
    transition: border-color 0.3s var(--shk-ease), background-color 0.3s var(--shk-ease);
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
}

.shk-contact-form input[type="text"]:focus,
.shk-contact-form input[type="email"]:focus,
.shk-contact-form input[type="tel"]:focus,
.shk-contact-form textarea:focus {
    outline: none;
    border-color: var(--shk-artisan);
    background-color: #fdfcfa;
}

/* ---------- placeholder ---------- */
.shk-contact-form input::placeholder,
.shk-contact-form textarea::placeholder {
    color: #b8b5af;
    font-family: var(--shk-font-sans);
    font-weight: 300;
}

/* ---------- textarea ---------- */
.shk-contact-form textarea {
    min-height: 200px;
    resize: vertical;
    font-family: var(--shk-font-serif);
}

/* ---------- 送信ボタン ---------- */
.shk-form-submit {
    margin-top: 3rem;
    text-align: center;
}

.shk-contact-form input[type="submit"] {
    display: inline-block;
    background-color: var(--shk-artisan);
    color: #ffffff;
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    padding: 1.1em 4em;
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: background-color 0.3s var(--shk-ease), transform 0.3s var(--shk-ease), box-shadow 0.3s var(--shk-ease);
    -webkit-appearance: none;
    appearance: none;
    box-shadow: 0 8px 20px rgba(176, 146, 91, 0.25);
}

.shk-contact-form input[type="submit"]:hover {
    background-color: var(--shk-artisan-light);
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(176, 146, 91, 0.35);
}

.shk-contact-form input[type="submit"]:active {
    transform: translateY(0);
}

/* ---------- 送信中の状態 ---------- */
.shk-contact-form .wpcf7-spinner {
    margin-left: 1rem;
    vertical-align: middle;
}

/* ---------- CF7のメッセージ表示（成功・エラー） ---------- */
.shk-contact-form .wpcf7-response-output {
    margin: 2rem 0 0 0 !important;
    padding: 1.25rem 1.5rem !important;
    border-radius: 0;
    font-family: var(--shk-font-sans);
    font-size: 0.9375rem;
    line-height: 1.8;
    letter-spacing: 0.03em;
}

/* 成功メッセージ */
.shk-contact-form .wpcf7 form.sent .wpcf7-response-output {
    background-color: #f0f7f2;
    border: 1px solid #c5dfca !important;
    color: #2e6b54;
}

/* バリデーションエラー */
.shk-contact-form .wpcf7 form.invalid .wpcf7-response-output,
.shk-contact-form .wpcf7 form.unaccepted .wpcf7-response-output {
    background-color: #fdf4f0;
    border: 1px solid #e8c5b8 !important;
    color: #a04a2e;
}

/* 個別フィールドのエラーメッセージ */
.shk-contact-form .wpcf7-not-valid-tip {
    color: #a04a2e !important;
    font-family: var(--shk-font-sans);
    font-size: 0.8125rem;
    margin-top: 0.5rem;
    display: block;
}

/* エラー時の入力欄のスタイル */
.shk-contact-form .wpcf7-not-valid {
    border-color: #d18a6e !important;
    background-color: #fdf4f0 !important;
}

/* ---------- 他のご連絡方法（OTHER CHANNELS）セクション ---------- */
.shk-contact-alt {
    background-color: var(--shk-bg-warm);
    padding: 6rem 1.5rem !important;
}

@media (min-width: 769px) {
    .shk-contact-alt {
        padding: 8rem 2rem !important;
    }
}

.shk-contact-alt > .wp-block-group__inner-container {
    max-width: 1080px;
    margin: 0 auto;
}

/* ---------- 他のチャネル：3カラム ---------- */
.shk-contact-channels {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-top: 3rem;
}

@media (min-width: 769px) {
    .shk-contact-channels {
        grid-template-columns: repeat(3, 1fr);
        gap: 2.5rem;
    }
}

.shk-channel-item {
    background-color: #ffffff;
    padding: 2.5rem 2rem;
    border-left: 2px solid var(--shk-artisan);
    text-align: center;
}

.shk-channel-label {
    font-family: var(--shk-font-sans);
    font-size: 0.75rem;
    color: var(--shk-artisan);
    letter-spacing: 0.3em;
    text-transform: uppercase;
    font-weight: 500;
    margin: 0 0 1rem 0 !important;
}

.shk-channel-value {
    font-family: var(--shk-font-serif);
    font-size: 1.375rem;
    color: var(--shk-sumi);
    line-height: 1.5;
    letter-spacing: 0.05em;
    margin: 0 0 0.75rem 0 !important;
    font-weight: 500;
}

.shk-channel-value a {
    color: var(--shk-sumi);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    padding-bottom: 0.15rem;
    transition: color 0.3s var(--shk-ease), border-color 0.3s var(--shk-ease);
}

.shk-channel-value a:hover {
    color: var(--shk-artisan);
    border-bottom-color: var(--shk-artisan);
}

.shk-channel-note {
    font-family: var(--shk-font-sans);
    font-size: 0.8125rem;
    color: var(--shk-text-sub);
    line-height: 1.7;
    margin: 0 !important;
    letter-spacing: 0.03em;
}

/* ============================================
   プライバシーポリシー ページ専用CSS（語彙集 v2.3 準拠）
   - 法律文書として読みやすさを最優先
   - 装飾は最小限
   ============================================ */

/* ---------- ポリシー本体セクション ---------- */
.shk-policy-section {
    padding: 6rem 1.5rem !important;
    background-color: #ffffff;
}

@media (min-width: 769px) {
    .shk-policy-section {
        padding: 8rem 2rem !important;
    }
}

.shk-policy-section > .wp-block-group__inner-container {
    max-width: 800px;
    margin: 0 auto;
}

/* ---------- 前文（リード文） ---------- */
.shk-policy-lead {
    margin: 0 auto 4rem auto !important;
    max-width: 720px;
}

.shk-policy-lead p {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    line-height: 2.2;
    color: var(--shk-text-sub);
    letter-spacing: 0.05em;
    margin: 0 0 1.5rem 0;
    text-align: justify;
}

.shk-policy-lead p:last-child {
    margin-bottom: 0;
}

/* ---------- 章立て見出し ---------- */
.shk-policy-article {
    margin-bottom: 3.5rem;
}

.shk-policy-article:last-child {
    margin-bottom: 0;
}

.shk-policy-article-num {
    font-family: var(--shk-font-serif);
    font-size: 0.8125rem;
    color: var(--shk-artisan);
    letter-spacing: 0.3em;
    font-weight: 500;
    margin: 0 0 0.5rem 0 !important;
    display: block;
}

.shk-policy-article-title {
    font-family: var(--shk-font-serif) !important;
    font-size: 1.375rem !important;
    color: var(--shk-sumi) !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    margin: 0 0 1.5rem 0 !important;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--shk-line-default);
    letter-spacing: 0.05em;
    /* SWELL section_ttl 干渉解除 */
    background: none !important;
    border-top: none !important;
    padding-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: left !important;
}

/* ---------- 本文段落 ---------- */
.shk-policy-article p {
    font-family: var(--shk-font-serif);
    font-size: 0.9375rem;
    line-height: 2.0;
    color: var(--shk-sumi);
    letter-spacing: 0.05em;
    margin: 0 0 1.25rem 0;
    text-align: justify;
}

.shk-policy-article p:last-child {
    margin-bottom: 0;
}

/* ---------- リスト ---------- */
.shk-policy-article ul,
.shk-policy-article ol {
    margin: 1rem 0 1.5rem 0;
    padding-left: 1.5rem;
}

.shk-policy-article ul li,
.shk-policy-article ol li {
    font-family: var(--shk-font-serif);
    font-size: 0.9375rem;
    line-height: 2.0;
    color: var(--shk-sumi);
    letter-spacing: 0.05em;
    padding-left: 0.5rem;
    margin-bottom: 0.5rem;
}

.shk-policy-article ul li {
    list-style: none;
    position: relative;
    padding-left: 1.5rem;
}

.shk-policy-article ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 1rem;
    width: 0.5rem;
    height: 1px;
    background-color: var(--shk-artisan);
}

.shk-policy-article ol {
    list-style: decimal;
    counter-reset: item;
}

.shk-policy-article ol li {
    list-style-type: decimal;
}

/* ---------- 強調（小見出し） ---------- */
.shk-policy-subheading {
    font-family: var(--shk-font-serif);
    font-size: 1rem !important;
    color: var(--shk-sumi) !important;
    font-weight: 500 !important;
    margin: 2rem 0 0.75rem 0 !important;
    letter-spacing: 0.05em;
    /* SWELL section_ttl 干渉解除 */
    background: none !important;
    border: none !important;
    padding: 0 !important;
    text-align: left !important;
}

/* ---------- 制定日・改訂日のフッター ---------- */
.shk-policy-meta {
    margin-top: 5rem !important;
    padding-top: 2.5rem;
    border-top: 1px solid var(--shk-line-default);
    text-align: right;
}

.shk-policy-meta p {
    font-family: var(--shk-font-sans);
    font-size: 0.8125rem;
    color: var(--shk-text-sub);
    letter-spacing: 0.05em;
    line-height: 1.8;
    margin: 0 0 0.25rem 0;
}

.shk-policy-meta-org {
    font-family: var(--shk-font-serif) !important;
    font-size: 0.9375rem !important;
    color: var(--shk-sumi) !important;
    margin-top: 0.5rem !important;
    font-weight: 500;
}

/* ============================================
   Philosophy ページ 表示崩れ修正パッチ
   （SWELL is-layout-constrained 干渉解除）
   ============================================ */

/* ---------- SWELLが挿入する layout-constrained を打ち消す ---------- */
/* Philosophyセクションの inner-container に付く constrained を無効化 */
.shk-philosophy-section > .wp-block-group__inner-container.is-layout-constrained {
    max-width: 920px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

/* Principle カードGrid の中の constrained も打ち消す */
.shk-principle-cards.is-layout-constrained,
.shk-principle-cards > .wp-block-group__inner-container.is-layout-constrained {
    max-width: 920px !important;
    padding: 0 !important;
}

/* ---------- Principle カードGrid：詳細度を極限まで上げて2列を強制 ---------- */
.shk-philosophy-section .shk-principle-cards,
.shk-philosophy-section .shk-principle-cards > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    max-width: 920px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
}

@media (min-width: 769px) {
    .shk-philosophy-section .shk-principle-cards,
    .shk-philosophy-section .shk-principle-cards > .wp-block-group__inner-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 2.5rem !important;
    }
}

/* ---------- カード自身の幅と内側 constrained を完全リセット ---------- */
.shk-philosophy-section .shk-principle-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    flex: none !important;
}

.shk-philosophy-section .shk-principle-card > .wp-block-group__inner-container,
.shk-philosophy-section .shk-principle-card > .wp-block-group__inner-container.is-layout-constrained {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ---------- 100年セクション見出しの視認性を確保 ---------- */
.shk-philosophy-section.shk-philosophy-section-alt .shk-section-title,
.shk-philosophy-section.shk-philosophy-section-alt h2.wp-block-heading {
    color: var(--shk-sumi) !important;
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    padding: 0 !important;
    margin: 0 0 3rem 0 !important;
    text-align: center !important;
}

/* ---------- PRINCIPLES見出し（および全ての shk-section-title）の SWELL金色ライン除去 ---------- */
.shk-philosophy-section .shk-section-title,
.shk-philosophy-section h2.wp-block-heading.shk-section-title {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    padding: 0 !important;
    color: var(--shk-sumi) !important;
    text-align: center !important;
}

/* ---------- カード内 H3 見出しの装飾除去 ---------- */
.shk-philosophy-section .shk-principle-card h3.wp-block-heading,
.shk-philosophy-section .shk-principle-heading {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    padding: 0 !important;
    color: var(--shk-sumi) !important;
    text-align: left !important;
    font-family: var(--shk-font-serif) !important;
    font-size: 1.375rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.05em !important;
    margin: 0 0 1.25rem 0 !important;
}

/* ---------- CTAセクションを確実に黒背景に ---------- */
.shk-cta-section {
    background-color: var(--shk-sumi-soft) !important;
    color: #ffffff !important;
    text-align: center !important;
}

.shk-cta-section > .wp-block-group__inner-container,
.shk-cta-section > .wp-block-group__inner-container.is-layout-constrained {
    max-width: 720px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
}

/* CTA内の要素すべて中央寄せ */
.shk-cta-section .shk-eyebrow {
    text-align: center !important;
    color: var(--shk-artisan) !important;
}

.shk-cta-section .shk-cta-title,
.shk-cta-section h2.wp-block-heading {
    color: #ffffff !important;
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    text-align: center !important;
    margin: 0 0 1.5rem 0 !important;
}

.shk-cta-section .shk-cta-lead {
    color: rgba(255, 255, 255, 0.75) !important;
    text-align: center !important;
    margin: 0 0 2.5rem 0 !important;
}

/* CTAボタンを中央配置 */
.shk-cta-section .swell-block-button {
    display: flex !important;
    justify-content: center !important;
    margin: 0 auto !important;
}

/* ============================================
   Philosophy ページ 余白調整パッチ
   見出し・本文間の余白を詰める
   ============================================ */

/* ---------- eyebrow と見出しの間を詰める ---------- */
.shk-philosophy-section .shk-eyebrow {
    margin: 0 0 1rem 0 !important;
}

/* ---------- 見出しと本文の間を詰める（3rem → 1.5rem） ---------- */
.shk-philosophy-section .shk-section-title,
.shk-philosophy-section h2.wp-block-heading.shk-section-title {
    margin: 0 0 2rem 0 !important;
}

/* ---------- 本文グループの上マージンを削除 ---------- */
.shk-philosophy-section .shk-body,
.shk-philosophy-section .shk-body-center {
    margin-top: 0 !important;
}

/* ---------- 段落間の余白も少し詰める ---------- */
.shk-philosophy-section .shk-body p,
.shk-philosophy-section .shk-body-center p {
    margin-bottom: 1.25rem !important;
}

.shk-philosophy-section .shk-body p:last-child,
.shk-philosophy-section .shk-body-center p:last-child {
    margin-bottom: 0 !important;
}

/* ---------- カード内の段落間隔も調整 ---------- */
.shk-philosophy-section .shk-principle-number {
    margin: 0 0 0.5rem 0 !important;
}

.shk-philosophy-section .shk-principle-heading {
    margin: 0 0 1rem 0 !important;
}

/* ---------- 100年セクション見出しの改行時のline-heightを調整 ---------- */
.shk-philosophy-section.shk-philosophy-section-alt .shk-section-title {
    line-height: 1.7 !important;
    margin: 0 0 2rem 0 !important;
}

/* ============================================
   Philosophy カードGrid 二重適用の解除
   Grid は inner-container のみに適用する
   ============================================ */

/* ---------- 外側（.shk-principle-cards）は素の block に戻す ---------- */
.shk-philosophy-section .shk-principle-cards,
.shk-principle-cards {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    max-width: 920px !important;
    width: 100% !important;
    margin: 3rem auto 0 auto !important;
    padding: 0 !important;
}

/* ---------- 内側（inner-container）だけを Grid にする ---------- */
.shk-philosophy-section .shk-principle-cards > .wp-block-group__inner-container,
.shk-principle-cards > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (min-width: 769px) {
    .shk-philosophy-section .shk-principle-cards > .wp-block-group__inner-container,
    .shk-principle-cards > .wp-block-group__inner-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 2.5rem !important;
    }
}

/* ---------- カード自身は Grid セルいっぱいに ---------- */
.shk-philosophy-section .shk-principle-card,
.shk-principle-card {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

/* ============================================
   全下層ページ共通：Grid 二重適用の解除
   ============================================ */

/* ---------- 鍛造ページ：魅力カード ---------- */
.shk-appeal-cards {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    max-width: 920px !important;
    width: 100% !important;
    margin: 3rem auto 0 auto !important;
    padding: 0 !important;
}

.shk-appeal-cards > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (min-width: 769px) {
    .shk-appeal-cards > .wp-block-group__inner-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 2.5rem !important;
    }
}

.shk-appeal-card {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

/* ---------- 鍛造ページ：工程グリッド ---------- */
.shk-process-grid {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    max-width: 1080px !important;
    width: 100% !important;
    margin: 3rem auto 0 auto !important;
    padding: 0 !important;
}

.shk-process-grid > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 2rem !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (min-width: 769px) {
    .shk-process-grid > .wp-block-group__inner-container {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2.5rem !important;
    }
}

@media (max-width: 480px) {
    .shk-process-grid > .wp-block-group__inner-container {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }
}

.shk-process-item {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

/* ---------- Serviceページ：サマリー3カード ---------- */
.shk-service-summary {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    max-width: 1080px !important;
    width: 100% !important;
    margin: 3rem auto 0 auto !important;
    padding: 0 !important;
}

.shk-service-summary > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (min-width: 769px) {
    .shk-service-summary > .wp-block-group__inner-container {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2.5rem !important;
    }
}

.shk-summary-card {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

/* ---------- Serviceページ：BASE製品グリッド ---------- */
.shk-collection-grid {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    max-width: 1080px !important;
    width: 100% !important;
    margin: 3rem auto 0 auto !important;
    padding: 0 !important;
}

.shk-collection-grid > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (min-width: 769px) {
    .shk-collection-grid > .wp-block-group__inner-container {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2.5rem !important;
    }
}

@media (max-width: 768px) and (min-width: 481px) {
    .shk-collection-grid > .wp-block-group__inner-container {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1.5rem !important;
    }
}

.shk-collection-item {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
}

/* ---------- 工房ページ：プロフィール2カラム ---------- */
.shk-profile-columns > .wp-block-group__inner-container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ============================================
   全下層ページ共通 表示崩れ修正（一般化版）
   philosophy / workshop / forging / service / contact / policy
   ============================================ */

/* ---------- 対象セクションの inner-container から constrained を解除 ---------- */
.shk-philosophy-section > .wp-block-group__inner-container,
.shk-workshop-section > .wp-block-group__inner-container,
.shk-forging-section > .wp-block-group__inner-container,
.shk-service-page-section > .wp-block-group__inner-container,
.shk-contact-section > .wp-block-group__inner-container,
.shk-contact-alt > .wp-block-group__inner-container,
.shk-policy-section > .wp-block-group__inner-container {
    max-width: 920px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

/* 鍛造の工程・Serviceは少し広め */
.shk-forging-section > .wp-block-group__inner-container,
.shk-service-page-section > .wp-block-group__inner-container,
.shk-contact-alt > .wp-block-group__inner-container {
    max-width: 1080px !important;
}

/* プライバシーポリシーは読みやすさ優先で狭め */
.shk-policy-section > .wp-block-group__inner-container {
    max-width: 800px !important;
}

/* ---------- eyebrow の余白統一 ---------- */
.shk-philosophy-section .shk-eyebrow,
.shk-workshop-section .shk-eyebrow,
.shk-forging-section .shk-eyebrow,
.shk-service-page-section .shk-eyebrow,
.shk-contact-section .shk-eyebrow,
.shk-contact-alt .shk-eyebrow,
.shk-policy-section .shk-eyebrow {
    margin: 0 0 1rem 0 !important;
    color: var(--shk-artisan) !important;
    text-align: center !important;
}

/* ---------- セクション見出し：SWELL装飾を完全除去 ---------- */
.shk-philosophy-section .shk-section-title,
.shk-workshop-section .shk-section-title,
.shk-forging-section .shk-section-title,
.shk-service-page-section .shk-section-title,
.shk-contact-alt .shk-section-title,
.shk-philosophy-section h2.wp-block-heading.shk-section-title,
.shk-workshop-section h2.wp-block-heading.shk-section-title,
.shk-forging-section h2.wp-block-heading.shk-section-title,
.shk-service-page-section h2.wp-block-heading.shk-section-title,
.shk-contact-alt h2.wp-block-heading.shk-section-title {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    padding: 0 !important;
    margin: 0 0 2rem 0 !important;
    color: var(--shk-sumi) !important;
    text-align: center !important;
    line-height: 1.7 !important;
}

/* ---------- 下位見出し（h3）のSWELL装飾除去 ---------- */
.shk-workshop-section h3.wp-block-heading,
.shk-forging-section h3.wp-block-heading,
.shk-service-page-section h3.wp-block-heading,
.shk-policy-section h3.wp-block-heading {
    background: none !important;
    background-color: transparent !important;
    border-top: none !important;
    padding-top: 0 !important;
}

/* ============================================
   工房について ページ 個別調整
   ============================================ */

/* ---------- プロフィール2カラム：inner-container を経由して grid 化 ---------- */
.shk-profile-columns {
    margin-top: 2rem !important;
}

.shk-profile-columns > .wp-block-group__inner-container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

.shk-profile-columns .wp-block-columns {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    margin: 0 !important;
}

@media (min-width: 769px) {
    .shk-profile-columns .wp-block-columns {
        grid-template-columns: 5fr 7fr !important;
        gap: 3.5rem !important;
        align-items: start !important;
    }
}

.shk-profile-columns .wp-block-column {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    flex: none !important;
    margin: 0 !important;
}

/* ---------- プロフィール写真 ---------- */
.shk-profile-image {
    margin: 0 !important;
    width: 100% !important;
}

.shk-profile-image img {
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: center top;
    display: block;
}

/* ---------- プロフィール名まわり ---------- */
.shk-profile-name,
.shk-workshop-section h3.shk-profile-name {
    text-align: left !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 0.35rem 0 !important;
    font-size: 1.75rem !important;
    color: var(--shk-sumi) !important;
}

.shk-profile-name-en {
    margin: 0 0 1.25rem 0 !important;
}

.shk-profile-title {
    margin: 0 0 1.75rem 0 !important;
    padding-bottom: 1.25rem !important;
}

.shk-profile-body > .wp-block-group__inner-container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.shk-profile-body p {
    margin-bottom: 1.25rem !important;
}

.shk-profile-body p:last-child {
    margin-bottom: 0 !important;
}

/* ---------- 資格ボックス・受賞歴の余白調整 ---------- */
.shk-qualifications {
    margin: 0 auto 2.5rem auto !important;
}

.shk-awards-list {
    margin-top: 0 !important;
}

/* ---------- 歴史タイムラインの余白調整 ---------- */
.shk-history-timeline {
    margin-top: 2rem !important;
}

/* ---------- 宝飾品への想い：3小セクション ---------- */
.shk-craft-philosophy {
    margin-top: 2rem !important;
}

.shk-craft-philosophy > .wp-block-group__inner-container {
    max-width: 720px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

.shk-craft-philosophy-item > .wp-block-group__inner-container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.shk-craft-philosophy-subtitle,
.shk-workshop-section h3.shk-craft-philosophy-subtitle {
    text-align: left !important;
    background: none !important;
    border-top: none !important;
    border-bottom: 1px solid var(--shk-line-default) !important;
    padding: 0 0 1rem 0 !important;
    margin: 0 0 1.25rem 0 !important;
    color: var(--shk-sumi) !important;
    font-size: 1.375rem !important;
}

.shk-craft-philosophy-item .shk-body > .wp-block-group__inner-container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.shk-craft-philosophy-item .shk-body p {
    margin-bottom: 1.25rem !important;
}

.shk-craft-philosophy-item .shk-body p:last-child {
    margin-bottom: 0 !important;
}

/* ============================================
   鍛造ページ PROCESS 縦タイムライン
   （番号章立て型・語彙集 Part 3-5 準拠）
   ============================================ */

.shk-process-timeline {
    max-width: 720px;
    margin: 2.5rem auto 0 auto;
}

.shk-process-step-item {
    display: grid;
    grid-template-columns: 4.5rem 1fr;
    gap: 1.5rem;
    padding: 1.75rem 0;
    border-bottom: 1px solid var(--shk-line-default);
    align-items: baseline;
}

.shk-process-step-item:first-child {
    border-top: 1px solid var(--shk-line-default);
}

@media (max-width: 768px) {
    .shk-process-step-item {
        grid-template-columns: 3rem 1fr;
        gap: 1rem;
        padding: 1.25rem 0;
    }
}

/* ---------- 番号：大きく薄く（視線誘導としての番号） ---------- */
.shk-process-step-num {
    font-family: var(--shk-font-serif);
    font-size: 1.75rem;
    color: var(--shk-artisan);
    opacity: 0.5;
    letter-spacing: 0.05em;
    line-height: 1;
    font-weight: 400;
}

@media (max-width: 768px) {
    .shk-process-step-num {
        font-size: 1.25rem;
    }
}

/* ---------- 工程の説明 ---------- */
.shk-process-step-text {
    font-family: var(--shk-font-serif);
    font-size: 1rem;
    color: var(--shk-sumi);
    line-height: 1.9;
    letter-spacing: 0.05em;
    margin: 0;
    text-align: justify;
}

/* ---------- 動画まわりの余白 ---------- */
.shk-forging-section .wp-block-video,
.shk-forging-section video {
    margin: 0 auto 1rem auto;
    max-width: 720px;
    width: 100%;
    display: block;
}

/* ---------- サブセクション見出し（受け継いだ宝石も〜） ---------- */
.shk-forging-section h3.shk-process-subsection-title {
    margin: 5rem 0 1rem 0 !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    color: var(--shk-sumi) !important;
    text-align: center !important;
}

/* ============================================
   SWELL 見出し装飾（擬似要素）の一括除去
   下層ページの全見出しに適用
   ============================================ */

.shk-subpage-hero h1::before,
.shk-subpage-hero h1::after,
.shk-philosophy-section h2::before,
.shk-philosophy-section h2::after,
.shk-philosophy-section h3::before,
.shk-philosophy-section h3::after,
.shk-workshop-section h2::before,
.shk-workshop-section h2::after,
.shk-workshop-section h3::before,
.shk-workshop-section h3::after,
.shk-forging-section h2::before,
.shk-forging-section h2::after,
.shk-forging-section h3::before,
.shk-forging-section h3::after,
.shk-service-page-section h2::before,
.shk-service-page-section h2::after,
.shk-service-page-section h3::before,
.shk-service-page-section h3::after,
.shk-contact-section h2::before,
.shk-contact-section h2::after,
.shk-contact-alt h2::before,
.shk-contact-alt h2::after,
.shk-policy-section h2::before,
.shk-policy-section h2::after,
.shk-policy-section h3::before,
.shk-policy-section h3::after,
.shk-cta-section h2::before,
.shk-cta-section h2::after {
    content: none !important;
    display: none !important;
    background: none !important;
    border: none !important;
    width: 0 !important;
    height: 0 !important;
}

/* ============================================
   Service ページ 個別調整
   ============================================ */

/* ---------- サマリーカードの見出し（Revive / Remodel / Bespoke） ---------- */
.shk-service-page-section h3.shk-summary-card-name,
.shk-summary-card-name {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 0.5rem 0 !important;
    text-align: center !important;
    font-family: var(--shk-font-serif) !important;
    font-size: 1.75rem !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    letter-spacing: 0.05em !important;
    color: var(--shk-sumi) !important;
}

/* ---------- サービス詳細の見出し（諦めていた宝石に〜 など） ---------- */
.shk-service-page-section h2.shk-service-detail-name,
.shk-service-detail-name {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    padding: 0 !important;
    margin: 0 0 2rem 0 !important;
    text-align: center !important;
    color: var(--shk-sumi) !important;
    line-height: 1.7 !important;
}

/* ---------- カード内の余白調整 ---------- */
.shk-summary-card > .wp-block-group__inner-container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.shk-summary-card-number {
    margin: 0 0 0.75rem 0 !important;
}

.shk-summary-card-subtitle {
    margin: 0 0 1.5rem 0 !important;
}

.shk-summary-card-price {
    margin: 0 !important;
}

/* ---------- 詳細本文の余白 ---------- */
.shk-service-detail-body > .wp-block-group__inner-container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.shk-service-detail-body p {
    margin-bottom: 1.25rem !important;
}

.shk-service-detail-body p:last-child {
    margin-bottom: 0 !important;
}

/* ---------- コレクション見出しの装飾除去 ---------- */
.shk-service-page-section .shk-collection-item-name {
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

.shk-collection-intro > .wp-block-group__inner-container {
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ============================================
   Service ページ アンカーリンク
   （スムーススクロールは SWELL 標準JSに委ねる）
   ============================================ */

#revive,
#remodel,
#bespoke,
#collection {
    scroll-margin-top: 100px;
}

@media (max-width: 768px) {
    #revive,
    #remodel,
    #bespoke,
    #collection {
        scroll-margin-top: 70px;
    }
}

/* ---------- カード全体をクリック可能にする ---------- */
.shk-summary-card {
    position: relative;
    cursor: pointer;
}

.shk-summary-card-link {
    margin: 1.5rem 0 0 0 !important;
    text-align: center;
}

.shk-summary-card-link a {
    display: inline-block;
    font-family: var(--shk-font-sans);
    font-size: 0.8125rem;
    color: var(--shk-text-sub);
    letter-spacing: 0.15em;
    text-decoration: none;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--shk-line-default);
    transition: color 0.3s var(--shk-ease), border-color 0.3s var(--shk-ease);
}

.shk-summary-card-link a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.shk-summary-card:hover .shk-summary-card-link a {
    color: var(--shk-artisan);
    border-bottom-color: var(--shk-artisan);
}

/* ============================================
   BASE製品画像：実寸比（1535:1024）で表示
   ============================================ */

.shk-collection-item-image {
    aspect-ratio: 1535 / 1024 !important;
    background-color: #f5f3ee;
}

.shk-collection-item-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center;
}

/* ============================================
   BASE製品：商品名を小さく・2行で表示
   ============================================ */

.shk-collection-item-name,
.shk-service-page-section .shk-collection-item-name {
    font-size: 0.9rem !important;
    line-height: 1.6 !important;
    letter-spacing: 0.03em !important;
    margin: 0 0 0.5rem 0 !important;

    /* 2行で切って、はみ出したら「…」 */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;

    /* 1行の商品名でも高さを揃える */
    min-height: calc(0.9rem * 1.6 * 2);
}

/* ============================================
   固定ページ：ページタイトル背景エリアを非表示
   （下層ページは独自ヒーローを持つため不要）
   ============================================ */

.page #top_title_area,
.page .c-pageTitle,
.page .l-topTitleArea,
.page .p-mainVisual--page {
    display: none !important;
}

/* ---------- パンくずの上余白を調整 ---------- */
.page .p-breadcrumb {
    margin-top: 0 !important;
    padding-top: 1rem !important;
}

/* ============================================
   note フィードセクション（トップページ）
   Feedzy RSS Feeds + 独自クラスで note風リストに
   ============================================ */

.shk-note {
    padding: 6rem 1.5rem !important;
    background-color: var(--shk-bg-warm);
}

@media (min-width: 769px) {
    .shk-note {
        padding: 8rem 2rem !important;
    }
}

.shk-note > .wp-block-group__inner-container {
    max-width: 920px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

/* ---------- 見出し（SWELL装飾除去） ---------- */
.shk-note h2::before,
.shk-note h2::after {
    content: none !important;
    display: none !important;
}

.shk-note .shk-eyebrow {
    margin: 0 0 1rem 0 !important;
    color: var(--shk-artisan) !important;
    text-align: center !important;
}

.shk-note .shk-section-title,
.shk-note h2.wp-block-heading {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 3rem 0 !important;
    color: var(--shk-sumi) !important;
    text-align: center !important;
}

/* ============================================
   Feedzy 出力の整形
   ============================================ */

.shk-note-feed .rss_header {
    display: none !important;
}

.shk-note-feed ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ---------- 記事1件：flex禁止・float で組む ---------- */
.shk-note-feed .rss_item {
    display: block !important;
    overflow: hidden;
    padding: 2rem 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--shk-line-default) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: none;
}

.shk-note-feed .rss_item:first-child {
    border-top: 1px solid var(--shk-line-default) !important;
}

/* ---------- 画像：左に float ---------- */
.shk-note-feed .rss_image {
    float: left;
    margin: 0 2rem 0 0 !important;
    border-radius: 0 !important;
    overflow: hidden;
    background-color: #ffffff;
}

.shk-note-feed .rss_image img {
    border-radius: 0 !important;
    object-fit: cover;
    display: block;
}

/* ---------- タイトル（明朝） ---------- */
.shk-note-feed .title {
    display: block;
    margin: 0 0 0.5rem 0 !important;
}

.shk-note-feed .title a {
    display: table-cell;   /* 1文字ずつ折り返す不具合の対処 */
    font-family: var(--shk-font-serif) !important;
    font-weight: 500;
    font-size: 1.0625rem;
    line-height: 1.7;
    letter-spacing: 0.05em;
    color: var(--shk-sumi) !important;
    text-decoration: none;
    transition: color 0.3s var(--shk-ease);
}

.shk-note-feed .title a:hover {
    color: var(--shk-artisan) !important;
}

/* ---------- 日付（非表示） ---------- */
.shk-note-feed .rss_content small {
    display: none !important;
}

/* ---------- 抜粋：3行で切る ---------- */
.shk-note-feed .rss_content p {
    margin: 0 !important;
    font-family: var(--shk-font-sans);
    font-size: 0.875rem;
    font-weight: 300;
    line-height: 1.9;
    color: var(--shk-text-sub);
    letter-spacing: 0.03em;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---------- スマホ：縦積み ---------- */
@media (max-width: 767px) {
    .shk-note-feed .rss_item {
        padding: 1.75rem 0 !important;
    }

    .shk-note-feed .rss_image {
        float: none;
        margin: 0 0 1rem 0 !important;
        width: 100% !important;
        height: auto !important;
    }

    .shk-note-feed .rss_image img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 16 / 9;
    }

    .shk-note-feed .title a {
        font-size: 1rem;
    }
}

/* ---------- note へのリンクボタン ---------- */
.shk-note-more {
    text-align: center;
    margin-top: 3rem !important;
}

.shk-note-more a {
    display: inline-block;
    font-family: var(--shk-font-serif);
    font-size: 0.9375rem;
    color: var(--shk-sumi);
    letter-spacing: 0.2em;
    text-decoration: none;
    padding: 1em 3em;
    border: 1px solid var(--shk-sumi);
    transition: all 0.3s var(--shk-ease);
}

.shk-note-more a:hover {
    background-color: var(--shk-sumi);
    color: #ffffff;
}

/* ============================================
   SP ヒーロー：指輪画像を見出しの右隣に配置
   ============================================ */

@media (max-width: 768px) {
    /* 左右の余白を少し詰めて横幅を確保 */
    .shk-hero .swell-block-fullWide__inner {
        padding: 0 1.25rem !important;
    }

    /* カラムの内側をグリッド化 */
    .shk-hero .swell-block-columns__inner {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 40%;
        grid-template-areas:
            "eyebrow image"
            "catch   image"
            "lead    lead"
            "buttons buttons";
        column-gap: 1rem;
        row-gap: 0;
        align-items: start;
    }

    /* 左カラムの箱を透過して中身を直接グリッドに乗せる */
    .shk-hero .swell-block-column:first-child {
        display: contents !important;
    }

    .shk-hero .shk-hero-eyebrow {
        grid-area: eyebrow;
        margin-bottom: 0.75rem !important;
        font-size: 0.6875rem;
    }

    .shk-hero .shk-hero-catch {
        grid-area: catch;
        font-size: clamp(1.625rem, 7.5vw, 2.25rem) !important;
        line-height: 1.35 !important;
        margin-bottom: 0 !important;
        align-self: center;
    }

    .shk-hero .shk-hero-lead {
        grid-area: lead;
        margin-top: 1.75rem !important;
        margin-bottom: 1.75rem !important;
        max-width: none;
    }

    .shk-hero .swell-block-column:first-child > .wp-block-columns {
        grid-area: buttons;
    }

    /* 右カラム（画像） */
    .shk-hero .swell-block-column:nth-child(2) {
        grid-area: image;
        position: static !important;
        margin: 0 !important;
        align-self: center;
    }

    .shk-hero .shk-hero-image {
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
    }

    .shk-hero .shk-hero-image img {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        object-position: center;
        display: block;
    }
}
/* ============================================
   SP ヒーロー：SWELLカラムの負マージンを解除（はみ出し修正）
   ============================================ */

@media (max-width: 768px) {
    /* SWELLの列間隔変数を無効化（インラインstyleより優先） */
    .shk-hero .swell-block-columns {
        --swl-clmn-mrgn--x: 0 !important;
        --swl-clmn-mrgn--y: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* 内側コンテナの負マージンを打ち消す */
    .shk-hero .swell-block-columns__inner {
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* 各列のパディングをゼロに */
    .shk-hero .swell-block-column {
        padding: 0 !important;
        min-width: 0 !important;
    }

    .shk-hero .swell-block-column:nth-child(2) {
        width: auto !important;
        max-width: 100% !important;
    }

    /* 外枠も念のため境界内に収める */
    .shk-hero .swell-block-fullWide__inner {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}
/* ============================================
   SP：全セクションの左右余白を確保
   SWELLは全幅ブロックの内側をSPで端まで広げるため明示する
   ============================================ */

@media (max-width: 768px) {
    /* ---------- SWELL 全幅ブロックの内側（全ページ共通） ---------- */
    .swell-block-fullWide__inner {
        padding-left: 1.25rem !important;
        padding-right: 1.25rem !important;
        box-sizing: border-box !important;
    }

    /* ---------- トップページ：グループブロック型セクション ---------- */
    .shk-philosophy > .wp-block-group__inner-container,
    .shk-service > .wp-block-group__inner-container,
    .shk-artisan > .wp-block-group__inner-container,
    .shk-note > .wp-block-group__inner-container {
        padding-left: 1.25rem !important;
        padding-right: 1.25rem !important;
        box-sizing: border-box !important;
    }

    /* ---------- SWELLカラムの負マージンをSPでは全面的に無効化 ---------- */
    .shk-philosophy .swell-block-columns,
    .shk-service .swell-block-columns,
    .shk-artisan .swell-block-columns,
    .shk-craft .swell-block-columns {
        --swl-clmn-mrgn--x: 0 !important;
        --swl-clmn-mrgn--y: 2rem !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .shk-philosophy .swell-block-columns__inner,
    .shk-service .swell-block-columns__inner,
    .shk-artisan .swell-block-columns__inner,
    .shk-craft .swell-block-columns__inner {
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .shk-philosophy .swell-block-column,
    .shk-service .swell-block-column,
    .shk-artisan .swell-block-column,
    .shk-craft .swell-block-column {
        padding-left: 0 !important;
        padding-right: 0 !important;
        min-width: 0 !important;
    }

    /* ---------- 下層ページのセクション（念のため統一） ---------- */
    .shk-subpage-hero,
    .shk-philosophy-section,
    .shk-workshop-section,
    .shk-forging-section,
    .shk-service-page-section,
    .shk-contact-section,
    .shk-contact-alt,
    .shk-policy-section,
    .shk-cta-section {
        padding-left: 1.25rem !important;
        padding-right: 1.25rem !important;
    }

    /* ---------- Philosophyバッジの位置を余白内に収める ---------- */
    .shk-philosophy-badge {
        left: 0 !important;
    }
}
/* ============================================
   トップ Service カード：画像枠のグレー下地を除去
   ============================================ */

.shk-service-card figure.wp-block-image {
    aspect-ratio: auto !important;
    background-color: transparent !important;
    height: auto !important;
}

.shk-service-card figure.wp-block-image img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    max-height: none !important;
}

.shk-service-card figure.wp-block-image img[style] {
    height: auto !important;
}
/* ============================================
   鍛造ページ 比較表：SPをカード形式に
   各セルに「鋳造」「鍛造」ラベルを付与して判別可能にする
   ============================================ */

@media (max-width: 768px) {
    /* ヘッダー行はSPでは不要 */
    .shk-comparison-table-header {
        display: none !important;
    }

    .shk-comparison-table {
        background: transparent !important;
    }

    /* 1行＝1カード */
    .shk-comparison-table-row {
        display: block !important;
        background-color: #ffffff;
        border: 1px solid var(--shk-line-default) !important;
        margin-bottom: 1.25rem;
    }

    .shk-comparison-table-row:last-child {
        margin-bottom: 0;
    }

    /* 項目名：カードの見出しとして墨色帯に */
    .shk-comparison-table-cell-label {
        display: block !important;
        background-color: var(--shk-sumi) !important;
        color: #ffffff !important;
        font-family: var(--shk-font-serif);
        font-size: 0.9375rem;
        letter-spacing: 0.1em;
        padding: 0.75rem 1rem !important;
        border: none !important;
    }

    .shk-comparison-table-cell-label::before {
        content: none !important;
    }

    /* 鋳造・鍛造セル：左にタグ、右に本文 */
    .shk-comparison-table-cell:nth-child(2),
    .shk-comparison-table-cell:nth-child(3) {
        display: grid !important;
        grid-template-columns: 3.25rem 1fr;
        gap: 0.75rem;
        align-items: start;
        padding: 0.9rem 1rem !important;
        border-right: none !important;
        border-bottom: 1px solid var(--shk-line-default) !important;
        font-size: 0.875rem;
        line-height: 1.7;
    }

    .shk-comparison-table-cell:nth-child(3) {
        border-bottom: none !important;
        background-color: #fbfaf6;
    }

    /* タグ共通 */
    .shk-comparison-table-cell:nth-child(2)::before,
    .shk-comparison-table-cell:nth-child(3)::before {
        display: inline-block;
        font-family: var(--shk-font-serif);
        font-size: 0.75rem;
        letter-spacing: 0.1em;
        line-height: 1;
        padding: 0.35em 0;
        text-align: center;
        border: 1px solid currentColor;
    }

    /* 鋳造：グレー */
    .shk-comparison-table-cell:nth-child(2)::before {
        content: "鋳造";
        color: var(--shk-text-sub);
    }

    /* 鍛造：燻し金で強調 */
    .shk-comparison-table-cell:nth-child(3)::before {
        content: "鍛造";
        color: var(--shk-artisan);
        border-color: var(--shk-artisan);
    }
}
/* ============================================
   長文リードは両端揃え（きらくにの流儀）
   短文・改行入りコピーは中央のまま
   ============================================ */

/* 鍛造ページ：工程セクションの導入文 */
.shk-process-intro p,
.shk-process-subsection-intro p {
    text-align: justify !important;
    word-break: normal;
    line-break: strict;
}

.shk-process-intro,
.shk-process-subsection-intro {
    text-align: left !important;
}

/* 見出し直下でリードが1行に収まる場合は中央に戻す（PCの短文用） */
@media (min-width: 769px) {
    .shk-process-intro p {
        text-align: center !important;
    }
}
/* ============================================
   Philosophy 基本理念：両端揃え
   ============================================ */

.shk-body-center {
    text-align: left !important;
}

.shk-body-center p,
.shk-philosophy-section .shk-body-center p {
    text-align: justify !important;
    word-break: normal;
    line-break: strict;
}
/* ============================================
   SWELL 著者ボックス：説明文を両端揃えに
   ============================================ */

.p-authorBox__r,
.p-authorBox__desc {
    text-align: left !important;
}

.p-authorBox__desc {
    text-align: justify !important;
    word-break: normal;
    line-break: strict;
    font-family: var(--shk-font-sans);
    font-size: 0.9375rem;
    line-height: 1.9;
    letter-spacing: 0.03em;
    color: var(--shk-text-sub);
}

/* 著者名も左寄せに揃える */
.p-authorBox__name {
    text-align: left !important;
    font-family: var(--shk-font-serif);
    font-weight: 500;
    color: var(--shk-sumi);
}
/* ============================================
   下層ページ ヒーロー：上下余白の調整
   （ページタイトル画像エリア廃止に伴い詰める）
   ============================================ */

.shk-subpage-hero {
    padding-top: 5rem !important;
    padding-bottom: 3.5rem !important;
}

@media (min-width: 769px) {
    .shk-subpage-hero {
        padding-top: 7rem !important;
        padding-bottom: 5rem !important;
    }
}

/* ヒーロー内の要素間も少し詰める */
.shk-subpage-hero .shk-eyebrow {
    margin-bottom: 1rem !important;
}

.shk-subpage-hero .shk-hero-title {
    margin-bottom: 1.5rem !important;
}

/* ヒーロー直後のセクションの上余白を軽くする */
.shk-subpage-hero + .shk-contact-section,
.shk-subpage-hero + .shk-philosophy-section,
.shk-subpage-hero + .shk-workshop-section,
.shk-subpage-hero + .shk-forging-section,
.shk-subpage-hero + .shk-service-page-section,
.shk-subpage-hero + .shk-policy-section {
    padding-top: 3rem !important;
}

@media (min-width: 769px) {
    .shk-subpage-hero + .shk-contact-section,
    .shk-subpage-hero + .shk-philosophy-section,
    .shk-subpage-hero + .shk-workshop-section,
    .shk-subpage-hero + .shk-forging-section,
    .shk-subpage-hero + .shk-service-page-section,
    .shk-subpage-hero + .shk-policy-section {
        padding-top: 4rem !important;
    }
}
/* ============================================
   下層ページ ヒーロー：SPの折り返し調整
   ============================================ */

/* ---------- 見出し：行の長さを均等に割る（対応ブラウザのみ） ---------- */
.shk-subpage-hero .shk-hero-title {
    text-wrap: balance;
}

@media (max-width: 768px) {
    .shk-subpage-hero .shk-hero-title {
        font-size: clamp(1.5rem, 6.4vw, 1.875rem) !important;
        line-height: 1.55 !important;
        letter-spacing: 0.04em !important;
    }

    /* ---------- リード文：<br> を無効化して1段落に、両端揃え ---------- */
    .shk-subpage-hero .shk-hero-lead {
        text-align: justify !important;
        word-break: normal;
        line-break: strict;
        max-width: none !important;
        margin: 0 !important;
    }

    .shk-subpage-hero .shk-hero-lead br {
        display: none;
    }
}
/* ============================================
   下層ページ 見出し：SPの折り返しを均等化
   ============================================ */

.shk-section-title,
.shk-service-detail-name,
.shk-cta-title,
.shk-process-subsection-title,
.shk-craft-philosophy-subtitle,
.shk-appeal-heading,
.shk-principle-heading {
    text-wrap: balance;
}

@media (max-width: 768px) {
    /* セクション見出し（h2） */
    .shk-section-title,
    .shk-service-detail-name,
    .shk-cta-title,
    .shk-philosophy-section h2.wp-block-heading.shk-section-title,
    .shk-workshop-section h2.wp-block-heading.shk-section-title,
    .shk-forging-section h2.wp-block-heading.shk-section-title,
    .shk-service-page-section h2.wp-block-heading.shk-section-title,
    .shk-service-page-section h2.shk-service-detail-name,
    .shk-contact-alt h2.wp-block-heading.shk-section-title,
    .shk-cta-section h2.wp-block-heading {
        font-size: clamp(1.375rem, 5.8vw, 1.625rem) !important;
        line-height: 1.6 !important;
        letter-spacing: 0.04em !important;
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }

    /* 小見出し（h3） */
    .shk-process-subsection-title,
    .shk-craft-philosophy-subtitle,
    .shk-appeal-heading,
    .shk-principle-heading,
    .shk-forging-section h3.shk-process-subsection-title,
    .shk-workshop-section h3.shk-craft-philosophy-subtitle {
        font-size: 1.1875rem !important;
        line-height: 1.6 !important;
        letter-spacing: 0.03em !important;
    }
}
/* ============================================
   SP専用の改行（span.shk-sp-break）
   ============================================ */

.shk-sp-break {
    display: none;
}

@media (max-width: 768px) {
    .shk-sp-break {
        display: block;
        height: 0;
    }
}