@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
*/




/* ----------------------------------------------------------
   Contact Form 7（お問い合わせフォーム）
   追加日: 2026-07-12
---------------------------------------------------------- */
.wpcf7 .CF7_table {
	width: 100%;
	max-width: 680px;
	margin: 0 auto;
	border: none;
	border-collapse: separate;
	border-spacing: 0;
	background: transparent;
}
.wpcf7 .CF7_table tbody,
.wpcf7 .CF7_table tr,
.wpcf7 .CF7_table th,
.wpcf7 .CF7_table td {
	display: block;
	width: 100%;
	border: none;
	background: transparent;
	padding: 0;
	text-align: left;
}
.wpcf7 .CF7_table tr { margin-bottom: 24px; }
.wpcf7 .CF7_table th { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.wpcf7 .CF7_table th p,
.wpcf7 .CF7_table td p { margin: 0; }

/* 必須・任意バッジ */
.CF7_req,
.CF7_unreq {
	display: inline-block;
	font-size: 11px;
	font-weight: 500;
	line-height: 1;
	padding: 4px 8px;
	border-radius: 4px;
	margin-left: 8px;
	vertical-align: 2px;
}
.CF7_req { color: #fff; background: var(--color_main, #e06d53); }
.CF7_unreq { color: #777; background: transparent; border: 1px solid #d9d4c8; }

/* 入力欄 */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	width: 100%;
	background: #fff;
	border: 1px solid #ddd8cc;
	border-radius: 6px;
	padding: 16px;
	font-size: 16px;
	box-sizing: border-box;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: var(--color_main, #e06d53);
	box-shadow: 0 0 0 3px rgba(224, 109, 83, .15);
}
.wpcf7 ::placeholder { color: #b5b0a4; }
.wpcf7 textarea { min-height: 180px; resize: vertical; }

/* チェックボックス（項目） */
.wpcf7 .wpcf7-checkbox { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.wpcf7 .wpcf7-checkbox .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-checkbox input[type="checkbox"] {
	accent-color: var(--color_main, #e06d53);
	width: 16px;
	height: 16px;
	margin-right: 8px;
}

/* 送信ボタン */
.wpcf7 input[type="submit"] {
	display: block;
	width: 100%;
	max-width: 320px;
	margin: 8px auto 0;
	background: var(--color_main, #e06d53);
	color: #fff;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .08em;
	padding: 16px 32px;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	transition: opacity .15s ease;
}
.wpcf7 input[type="submit"]:hover { opacity: .85; }

@media (max-width: 600px) {
	.wpcf7 .CF7_table tr { margin-bottom: 16px; }
}

/* ------------------------------------------------------------
       Header nav font-size: 16px -> 26px (spec ref: 14-16px, adjusted per request)
   Added: 2026-07-13
 * ------------------------------------------------------------ */
.l-header__gnav .c-gnav > li > a .ttl {
	      font-size: 16px;
	letter-spacing: 0.08em;
}

/* ------------------------------------------------------------
 *    Space between main visual and WORKS section: +40px
 *    Added: 2026-07-13
 * ------------------------------------------------------------ */
.p-postSlider {
	  margin-top: 40px;
}

/* ------------------------------------------------------------
 *    Header nav item spacing: widen gap after font-size increase
 *    Added: 2026-07-14
 * ------------------------------------------------------------ */
.l-header__gnav .c-gnav > li > a {
	  padding: 0 24px;
}

/* ------------------------------------------------------------
 *    Cap main visual height on very wide screens
 *    Added: 2026-07-14
 * ------------------------------------------------------------ */
.p-mainVisual {
	      max-height: clamp(500px, 56.22vw, 2200px);
	  overflow: hidden;
}

/* ------------------------------------------------------------
 *    SERVICE item title font-size: 16px -> 24px; add spacing before desc
 *    Added: 2026-07-14
 * ------------------------------------------------------------ */
.swell-block-box-menu__text {
	    font-size: 24px;
}
.swell-block-box-menu__desc {
	    display: block;
	    margin-top: 24px;
	    font-size: 16px;
	    line-height: 1.8;
}

/* ------------------------------------------------------------
 *    Section headings (WORKS/SERVICE/FLOW/FAQ/CONTACT): 22.4px/24px -> 32px for stronger hierarchy
 *    Added: 2026-07-15
 * ------------------------------------------------------------ */
.wp-block-heading.is-style-section_ttl,
.wp-block-heading.has-text-align-center,
.p-postSlider__title {
    font-size: 32px;
}

/* ------------------------------------------------------------
 *    SERVICE cards: 2col x 3row -> 3col x 2row grid, even split, 8px-multiple gap
 *    Added: 2026-07-15
 * ------------------------------------------------------------ */
.swell-block-box-menu__inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
@media (max-width: 768px) {
    .swell-block-box-menu__inner {
        grid-template-columns: 1fr;
    }
}

/* ------------------------------------------------------------
 *    SERVICE item width: override theme's 2col --the-box-width calc
 *    so cards fill the new 3-column grid cell (grid overrides needed above)
 *    Added: 2026-07-15
 * ------------------------------------------------------------ */
.swell-block-box-menu .swell-block-box-menu__item {
    width: 100%;
}

/* ------------------------------------------------------------
 *    SERVICE cards: equalize height across all 6 cards (was 201px/169px by row)
 *    Added: 2026-07-15
 * ------------------------------------------------------------ */
.swell-block-box-menu__item {
    min-height: 208px;
}
.swell-block-box-menu__item .swell-block-box-menu__link {
    height: 100%;
}

/* ------------------------------------------------------------
 *    SERVICE desc text: left-align for readability (title stays centered)
 *    Added: 2026-07-15
 * ------------------------------------------------------------ */
.swell-block-box-menu__desc {
    text-align: left;
}

/* ------------------------------------------------------------
 *    SERVICE card: subtle translucent shadow on edge
 *    SERVICE title-to-desc spacing: 16px -> 24px (see edit above)
 *    Added: 2026-07-15
 * ------------------------------------------------------------ */
.swell-block-box-menu__item {
    box-shadow: rgba(0, 0, 0, 0.08) 0px 4px 12px;
}

/* ------------------------------------------------------------
 *    WHY 3 cards: same drop shadow as SERVICE cards
 *    Added: 2026-07-16
 * ------------------------------------------------------------ */
.why-cards .wp-block-column {
    box-shadow: rgba(0, 0, 0, 0.08) 0px 4px 12px;
    padding: 24px;
}
.swell-block-box-menu__link {
    padding: 24px;
}
.swell-block-box-menu[data-direction="vertical"] .swell-block-box-menu__figure {
    margin-bottom: 16px;
}

/* ------------------------------------------------------------
 *    FAQ separators: 1px bottom border (#eceae4) + 24px vertical padding
 *    Added: 2026-07-16
 * ------------------------------------------------------------ */
.swell-block-faq .swell-block-faq__item {
    margin-bottom: 0;
    padding: 24px 0;
    border-bottom: 1px solid #eceae4;
}
.swell-block-faq__item:last-child {
    border-bottom: none;
}

/* ------------------------------------------------------------
 *    Nav revised for Japanese labels: 26px -> 16px + letter-spacing 0.08em,
 *    item padding 20px -> 24px (ref sites: 14-17px nav)
 *    Added: 2026-07-16
 * ------------------------------------------------------------ */

/* ------------------------------------------------------------
 *    WHY card description text: add 8px inner padding
 *    Added: 2026-07-17
 * ------------------------------------------------------------ */
.why-cards .wp-block-column p {
    padding: 0;
}
.why-cards h3 {
    margin-bottom: 24px;
}

/* ------------------------------------------------------------
 *    英字にFutura PT適用（Adobe Fonts経由）
 *    PC・モバイル共通。日本語は自動でNoto Sans JPにフォールバック
 *    Added: 2026-07-21
 * ------------------------------------------------------------ */
:root {
    --swl-font_family: "futura-pt", "Noto Sans JP", sans-serif;
}


/* ------------------------------------------------------------
 *    FLOW: ミニマルなドット+ラインのコネクター表現に統一
 *    仕様書のコネクター仕様（線幅1px・rgba(28,28,28,0.28-0.4)・4-6pxドット）を適用
 *    Added: 2026-07-21
 * ------------------------------------------------------------ */
.swell-block-step__item {
    padding-left: 40px;
}
.swell-block-step__item::before {
    left: 5px;
    top: 19px;
    bottom: -19px;
    border-left-width: 1px;
    border-left-style: solid;
    border-left-color: rgba(28, 28, 28, 0.32);
}
.swell-block-step__number {
    width: 12px;
    height: 12px;
    top: 13px;
    left: 0;
    background-color: #e06d53;
    display: block;
}
.swell-block-step__number .__label {
    display: none;
}
.swell-block-step__number::after {
    content: none;
}
.swell-block-step:not(.is-style-big):not(.is-style-small) > .swell-block-step__item > .swell-block-step__title {
    min-height: 0;
    display: block;
}


/* ------------------------------------------------------------
 *    PC/Tab限定の改行用ユーティリティ（<br class="u-hidden-sp">）
 *    599px以下では非表示（改行なし）、600px以上で改行として機能
 *    Added: 2026-07-21
 * ------------------------------------------------------------ */
.u-hidden-sp {
    display: none;
}
@media (min-width: 600px) {
    .u-hidden-sp {
        display: inline;
    }
}


/* ------------------------------------------------------------
 *    デザイン原則レビュー対応（reference_design_principles.md）
 *    ①本文段落の行長を20-40文字に収める（原則4・8）
 *    ②WHY 3カラムのgapを8の倍数に統一（原則6・12）
 *    Added: 2026-07-21
 * ------------------------------------------------------------ */
.post_content > .wp-block-paragraph {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}
.post_content > .wp-block-paragraph.why-lead {
    max-width: 900px;
    text-align: center;
}
.post_content > .wp-block-paragraph.about-lead {
    max-width: 900px;
    text-align: center;
}
.wp-block-columns.why-cards {
    --wp-column-gap: 24px;
    gap: 24px;
}
.wp-block-button__link {
    padding: 16px 32px;
}
.post_content h3,
.entry-content h3 {
    font-size: 32px;
}

/* ------------------------------------------------------------
 *    ワイド画面でのコンテナ幅拡大（2026-07-22）
 * ------------------------------------------------------------ */
.l-container {
	max-width: clamp(1296px, 85vw, 1600px);
}

/* ------------------------------------------------------------
 * FV v2: ホームページ・LP制作を主役にしたファーストビュー
 * Blog Parts ID: 152
 * Added: 2026-07-25
 * ------------------------------------------------------------ */
:root {
    --wv-fv-accent: #a44732;
    --wv-fv-cream: #f7f4ed;
    --wv-fv-offwhite: #fcfbf8;
    --wv-fv-charcoal: #1c1c1c;
}

.p-mainVisual:has(.wv-fv) {
    max-height: none;
    overflow: visible;
    background: var(--wv-fv-cream);
}
.p-mainVisual:has(.wv-fv) .p-mainVisual__inner,
.p-mainVisual:has(.wv-fv) .p-mainVisual__slide {
    height: auto !important;
    min-height: 720px;
    background: var(--wv-fv-cream);
}
.p-mainVisual:has(.wv-fv) .p-mainVisual__imgLayer,
.p-mainVisual:has(.wv-fv) .p-mainVisual__scroll {
    display: none;
}
.p-mainVisual__textLayer:has(.wv-fv) {
    position: relative;
    inset: auto !important;
    transform: none !important;
    display: flex;
    align-items: center;
    width: 100%;
    max-width: none;
    min-height: 720px;
    padding: 0 24px;
    color: var(--wv-fv-charcoal) !important;
    text-align: left;
    text-shadow: none !important;
    background: var(--wv-fv-cream);
    box-sizing: border-box;
}

.wv-fv {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 96px 0 64px;
    color: var(--wv-fv-charcoal);
    text-align: left;
    text-shadow: none;
    box-sizing: border-box;
}
.wv-fv__grid {
    display: grid !important;
    grid-template-columns: 1fr 1.414fr;
    gap: 48px !important;
    align-items: center;
    margin: 0 !important;
}
.wv-fv__copy,
.wv-fv__art {
    min-width: 0;
    margin: 0 !important;
}
.wv-fv__eyebrow {
    margin: 0 0 24px !important;
    color: var(--wv-fv-accent);
    font-family: "futura-pt", "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.08em;
}
.wv-fv__eyebrow::after {
    content: "";
    display: block;
    width: 48px;
    height: 2px;
    margin-top: 16px;
    background: var(--wv-fv-accent);
}
.wv-fv__title {
    display: block !important;
    max-width: 520px;
    margin: 0 0 24px !important;
    color: var(--wv-fv-charcoal);
    font-family: "Noto Sans JP", sans-serif;
    font-size: 48px !important;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0 !important;
}
.wv-fv__lead {
    max-width: 520px;
    margin: 0 0 16px !important;
    color: rgba(28, 28, 28, 0.82);
    font-size: 18px;
    line-height: 1.8;
    letter-spacing: 0.02em !important;
}
.wv-fv__support {
    max-width: 520px;
    margin: 0 0 32px !important;
    padding-left: 16px;
    border-left: 2px solid var(--wv-fv-accent);
    color: rgba(28, 28, 28, 0.82);
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.02em !important;
}
.wv-fv__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin: 0 !important;
}
.wv-fv__button {
    margin: 0 !important;
}
.wv-fv__button .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 224px;
    min-height: 48px;
    padding: 16px 32px;
    border: 1px solid transparent;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.04em !important;
    text-decoration: none;
    box-shadow: none;
    box-sizing: border-box;
}
.wv-fv__button--primary .wp-block-button__link {
    color: var(--wv-fv-offwhite);
    background: var(--wv-fv-accent);
}
.wv-fv__button--secondary .wp-block-button__link {
    color: var(--wv-fv-charcoal);
    border-color: rgba(28, 28, 28, 0.4);
    background: transparent;
}
.wv-fv__button .wp-block-button__link:hover {
    opacity: 0.86;
}
.wv-fv__button .wp-block-button__link:focus-visible {
    outline: 3px solid rgba(164, 71, 50, 0.35);
    outline-offset: 3px;
}
.wv-fv__brandline {
    margin: 48px 0 0 !important;
    color: rgba(28, 28, 28, 0.82);
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.02em !important;
}
.wv-fv__art {
    color: rgba(28, 28, 28, 0.76);
}
.wv-fv__visual {
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
}
.wv-fv__visual svg {
    display: block;
    width: 100%;
    height: auto;
}

@media (min-width: 768px) and (max-width: 1023px) {
    .p-mainVisual:has(.wv-fv) .p-mainVisual__inner,
    .p-mainVisual:has(.wv-fv) .p-mainVisual__slide,
    .p-mainVisual__textLayer:has(.wv-fv) {
        min-height: 640px;
    }
    .wv-fv { padding: 64px 0; }
    .wv-fv__grid { gap: 32px !important; }
    .wv-fv__title { font-size: 40px !important; }
    .wv-fv__lead { font-size: 17px; }
    .wv-fv__button .wp-block-button__link {
        min-width: 192px;
        padding: 16px 24px;
    }
}

@media (max-width: 767px) {
    .p-mainVisual:has(.wv-fv) .p-mainVisual__inner,
    .p-mainVisual:has(.wv-fv) .p-mainVisual__slide,
    .p-mainVisual__textLayer:has(.wv-fv) {
        min-height: auto;
    }
    .p-mainVisual__textLayer:has(.wv-fv) { padding: 0 24px; }
    .wv-fv { padding: 48px 0; }
    .wv-fv__grid {
        grid-template-columns: 1fr;
        gap: 32px !important;
    }
    .wv-fv__eyebrow {
        margin-bottom: 24px !important;
        font-size: 14px;
    }
    .wv-fv__title {
        max-width: 100%;
        margin-bottom: 24px !important;
        font-size: 32px !important;
        line-height: 1.35;
    }
    .wv-fv__lead {
        max-width: 100%;
        font-size: 16px;
        line-height: 1.8;
    }
    .wv-fv__support {
        max-width: 100%;
        margin-bottom: 24px !important;
        font-size: 16px;
        line-height: 1.7;
    }
    .wv-fv__actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .wv-fv__button,
    .wv-fv__button .wp-block-button__link { width: 100%; }
    .wv-fv__visual { max-width: 360px; }
    .wv-fv__brandline {
        margin-top: 24px !important;
        font-size: 16px;
    }
}


/* ------------------------------------------------------------
 * フッタープライバシーポリシー導線：48px操作領域
 * Added: 2026-07-28
 * ------------------------------------------------------------ */
.l-footer__nav a {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0 8px;
    font-size: 14px;
}

/* ------------------------------------------------------------
 * プライバシーポリシー：ページ固有のH1表示
 * Added: 2026-07-28
 * ------------------------------------------------------------ */
#body_wrap.privacy-policy .c-pageTitle {
    display: block;
    max-width: 600px;
    margin: 0 auto 64px;
    color: #1c1c1c;
    font-size: 48px;
    font-weight: 700;
    line-height: 1.3;
    text-align: left;
}
#body_wrap.privacy-policy .c-pageTitle__inner {
    display: block;
}

/* ------------------------------------------------------------
 * プライバシーポリシー：箇条書きの本文幅・始点を統一
 * Added: 2026-07-28
 * ------------------------------------------------------------ */
#body_wrap.privacy-policy .post_content > .wp-block-list {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}


/* ------------------------------------------------------------
 * About詳細ページ：本文コンテナ幅を拡大
 * 600pxでは詳細本文の折り返しが細かくなるため、ページID 134に限定して800pxへ変更
 * Added: 2026-07-29
 * ------------------------------------------------------------ */
#body_wrap.page-id-134 .post_content > .wp-block-paragraph {
    max-width: 800px;
}


/* ------------------------------------------------------------
 * フッターブランド・Instagram導線
 * Added: 2026-07-29
 * ------------------------------------------------------------ */
.wv-footer-brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 0;
}
.wv-footer-brand__logo {
    color: #1c1c1c;
    font-family: "futura-pt", "Noto Sans JP", sans-serif;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .04em;
    text-decoration: none;
}
.wv-footer-brand__instagram {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    color: #1c1c1c;
    border: 1px solid rgba(28, 28, 28, .4);
    border-radius: 9999px;
    box-sizing: border-box;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.wv-footer-brand__instagram:hover {
    color: #fcfbf8;
    border-color: #1c1c1c;
    background: #1c1c1c;
}
.wv-footer-brand__instagram:focus-visible {
    outline: 3px solid rgba(224, 109, 83, .35);
    outline-offset: 3px;
}
.wv-footer-brand__instagram .fab {
    font-size: 20px;
    line-height: 1;
}
@media (max-width: 767px) {
    .wv-footer-brand {
        flex-direction: column;
        gap: 16px;
        padding: 32px 0;
        text-align: center;
    }
}


/* ------------------------------------------------------------
 * フッター：情報優先順位とナビゲーションを整理
 * Added: 2026-07-29
 * ------------------------------------------------------------ */
.l-footer__foot .l-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px 32px;
    padding-top: 24px;
    padding-bottom: 24px;
}
.l-footer__nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.l-footer__nav::before,
.l-footer__nav::after {
    display: none !important;
    content: none;
}
.l-footer__nav .menu-item {
    margin: 0 !important;
}
.l-footer__nav .menu-item:not(.menu-item-privacy-policy) {
    order: 1;
}
.l-footer__nav .menu-item-privacy-policy {
    order: 2;
    margin-left: 8px !important;
}
.l-footer__nav a {
    min-height: 48px;
    padding: 0;
    color: #1c1c1c;
    font-size: 14px;
    line-height: 1.6;
    text-decoration: none;
}
.l-footer__nav .menu-item-privacy-policy a {
    color: #5f5f5d;
    font-size: 12px;
}
.l-footer__nav a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}
.l-footer__nav a:focus-visible {
    outline: 3px solid rgba(224, 109, 83, .35);
    outline-offset: 3px;
}
.l-footer__foot .copyright {
    margin: 0;
    color: #5f5f5d;
    font-size: 12px;
    line-height: 1.6;
    letter-spacing: .02em;
    text-align: right;
}
@media (max-width: 767px) {
    .l-footer__foot .l-container {
        grid-template-columns: 1fr;
        gap: 16px;
        padding-top: 32px;
        padding-bottom: 32px;
    }
    .l-footer__nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px 24px;
    }
    .l-footer__nav .menu-item-privacy-policy {
        grid-column: 1 / -1;
        margin-left: 0 !important;
    }
    .l-footer__foot .copyright {
        text-align: left;
    }
}

/* フッターナビの既定区切り線を解除 */
.l-footer__nav a {
    border: 0 !important;
}


/* ------------------------------------------------------------
 * フッター：キャッチコピーと導線を分離
 * Added: 2026-07-30
 * ------------------------------------------------------------ */
.l-footer {
  background: #fcfbf8;
  border-top: 1px solid #eceae4;
}
.l-footer__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.414fr);
  gap: 64px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 32px 32px;
}
.l-footer__widgetArea,
.l-footer__foot {
  min-width: 0;
}
.l-footer__widgetArea .l-container,
.l-footer__foot .l-container {
  width: 100%;
  max-width: none;
  padding: 0;
}
.l-footer__widgetArea .w-footer {
  display: block;
}
.wv-footer-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 48px;
  padding: 0;
}
.wv-footer-brand__identity {
  display: grid;
  gap: 24px;
}
.wv-footer-brand__logo {
  font-size: 20px;
}
.wv-footer-brand__copy {
  max-width: 20em;
  margin: 0;
  color: #1c1c1c;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .02em;
}
.l-footer__foot {
  align-self: stretch;
}
.l-footer__foot .l-container {
  display: block;
}
.l-footer__nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 32px;
}
.l-footer__nav .menu-item {
  margin: 0 !important;
}
.l-footer__nav .menu-item:nth-child(2) {
  order: 1;
}
.l-footer__nav .menu-item:nth-child(3) {
  order: 2;
}
.l-footer__nav .menu-item:nth-child(4) {
  order: 3;
}
.l-footer__nav .menu-item:nth-child(6) {
  order: 4;
}
.l-footer__nav .menu-item:nth-child(5) {
  order: 5;
  grid-column: 1 / -1;
  margin-top: 16px !important;
}
.l-footer__nav .menu-item-privacy-policy {
  order: 6;
  grid-column: 1 / -1;
  margin-top: 32px !important;
}
.l-footer__nav a {
  justify-content: flex-start;
  min-height: 48px;
}
.l-footer__nav .menu-item:nth-child(5) a {
  color: #a85b47;
  font-weight: 600;
}
.l-footer__nav .menu-item-privacy-policy a {
  font-size: 12px;
}
.l-footer__foot .copyright {
  margin-top: 24px;
  padding-top: 24px;
  color: #5f5f5d;
  text-align: left;
}

@media (max-width: 767px) {
  .l-footer__inner {
    display: block;
    padding: 48px 24px 32px;
  }
  .wv-footer-brand {
    gap: 32px;
  }
  .wv-footer-brand__copy {
    max-width: 18em;
  }
  .l-footer__foot {
    margin-top: 48px;
  }
  .l-footer__nav {
    gap: 8px 24px;
  }
  .l-footer__foot .copyright {
    margin-top: 24px;
    padding-top: 24px;
  }
}


/* 将来のコラムは、料金プランと問い合わせの間に追加する */
.l-footer__nav .menu-item:not(.menu-item-privacy-policy) {
  order: 5;
}
.l-footer__nav .menu-item:nth-child(5) {
  order: 6;
}
.l-footer__nav .menu-item-privacy-policy {
  order: 7;
}


/* フッター：主メニューと法務情報の近接を調整 */
.l-footer__nav .menu-item-privacy-policy {
  margin-top: 64px !important;
}
.l-footer__foot .copyright {
  margin-top: 8px;
  padding-top: 0;
}
@media (max-width: 767px) {
  .l-footer__nav .menu-item-privacy-policy {
    margin-top: 48px !important;
  }
  .l-footer__foot .copyright {
    margin-top: 8px;
    padding-top: 0;
  }
}




/* Worksアーカイブ：カテゴリ見出し＋カード群 */
.works-category-group {
  margin-top: 64px;
}

.works-category-group:first-of-type {
  margin-top: 48px;
}

.works-category-group__title {
  margin: 0 0 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(28, 28, 28, 0.4);
  color: rgba(28, 28, 28, 0.83);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
}

.works-category-group .p-postList {
  margin-top: 0;
}

@media (max-width: 599px) {
  .works-category-group {
    margin-top: 48px;
  }

  .works-category-group:first-of-type {
    margin-top: 32px;
  }

  .works-category-group__title {
    margin-bottom: 16px;
    padding-bottom: 16px;
    font-size: 24px;
    line-height: 32px;
  }

  .works-category-group .p-postList__title {
    font-size: 16px;
    line-height: 24px;
    font-weight: 700;
  }

  .works-category-group .p-postList__excerpt {
    font-size: 16px;
    line-height: 24px;
  }

  .works-category-group .p-postList__item {
    margin-bottom: 24px;
  }
}








/* SP調整: 782px以下で統一適用 */
@media (max-width: 782px) {
  .c-pageTitle {
    font-size: 32px;
    line-height: 40px;
  }

  .works-category-group .works-category-group__title {
    font-size: 24px;
    line-height: 32px;
    margin-bottom: 16px;
  }

  .works-category-group .p-postList.-type-card.-sp-col1 .p-postList__title {
    font-size: 16px !important;
    line-height: 24px;
  }

  .works-category-group .p-postList__excerpt {
    font-size: 16px;
    line-height: 24px;
  }

  .post_content h2.is-style-section_ttl {
    font-size: 32px;
    line-height: 40px;
  }

  .post_content .why-cards h3 {
    font-size: 24px;
    line-height: 32px;
    margin-bottom: 16px;
  }

  .post_content .wp-block-image img[alt="西村あや"] {
    width: 320px !important;
    height: 320px !important;
    max-width: 100%;
  }

  .post_content .wp-block-image:has(img[alt="西村あや"]) {
    text-align: center;
  }

  .wv-footer-brand__copy {
    font-size: 24px;
    line-height: 32px;
  }
}


/* iPad mini等のタブレット幅: FVイラストを表示 */
@media (min-width: 600px) and (max-width: 959px) {
  .wv-homeHero__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.414fr) !important;
    gap: 24px;
    max-width: 1200px;
  }

  .wv-homeHero__content {
    min-height: 400px !important;
  }

  .wv-homeHero__visual {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 16px;
    transform: none;
  }

  .wv-homeHero__nav {
    grid-column: 1 / -1 !important;
  }
}
