@charset "utf-8";

/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/

html, body, div, span, iframe,
h1, h2, h3, p, code, img, var,
b, i, ul, li, form, label,
table, tbody, tr, th, td,
article,
footer, header, nav, section {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}

article,
footer, header, nav, section {
    display: block;
}

input {
    vertical-align: middle;
}

.fs12 {
    font-size: 12px;
}

.mt5 {
    margin-top: 5px !important;
}

/* SP Only */
@media screen and (min-width: 800px) {
    .sp-only {
        display: none !important;
    }
}

/* PC Only */
@media screen and (max-width: 799px) {
    .pc-only {
        display: none !important;
    }
}

/* ----------------------------------------------
    marketing (2026 redesign): header / SP menu
-------------------------------------------------*/
:root {
    --marketing-text: #343434;
    --marketing-link: #1A4D6F;
    --marketing-yellow: #F8D649;
    --marketing-gradient-blue: linear-gradient(135deg, #2B6198 0%, #32A787 100%);
    --marketing-gradient-pink: linear-gradient(118deg, #EF377E 0%, #D99940 100%);
    --marketing-gradient-blue-hover: linear-gradient(-74.327deg, #2B6198 19.561%, #32A787 76.898%);
    --marketing-gradient-pink-hover: linear-gradient(-59.756deg, #EF377E 17.449%, #D99940 94.908%);
}

/* PC/SP共通: bodyには幅の上限を設けず、画面幅いっぱいに広げる。
   各セクションの背景は画面幅いっぱいに広げ、コンテンツはデザイン幅（PC:1366px / SP:780px）で中央寄せする
   headerはfixedでhero上に重なる配置のため、bodyの高さには含めない（padding-topは付けない） */
body {
    margin-left: auto;
    margin-right: auto;
}

.marketing__header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10;
    background: #FFFFFF;
}

.marketing__header-inner {
    display: flex;
    align-items: center;
    max-width: 1366px;
    height: 82px;
    margin: 0 auto;
    padding: 0 24px;
}

.marketing__header-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    background: none;
    padding: 0;
    margin-right: 12px;
    cursor: pointer;
}

.marketing__header-hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--marketing-text);
}

.marketing__header-hamburger span + span {
    margin-top: 6px;
}

.marketing__header-logo img {
    height: 40px;
}

.marketing__header-logo-sp {
    display: none;
}

.marketing__header-nav {
    display: flex;
    align-items: center;
    margin-left: 32px;
    margin-right: 45px;
}

.marketing__header-nav-list {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 45px;
}

.marketing__header-nav-list a {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 1.4px;
    color: var(--marketing-text);
    text-decoration: none;
}

.marketing__header-nav-list a:hover {
    text-decoration: underline;
}

.marketing__header-divider {
    display: inline-block;
    width: 1px;
    height: 14px;
    margin: 0 45px;
    background: var(--marketing-text);
}

.marketing__header-recruiter {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 1.4px;
    color: var(--marketing-link);
    text-decoration: underline;
    white-space: nowrap;
}

.marketing__header-recruiter:hover {
    text-decoration: none;
}

.marketing__header-actions {
    display: flex;
    align-items: center;
    margin-left: auto;
}

.marketing__header-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 109px;
    height: 35px;
    border-radius: 18px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    letter-spacing: 1.4px;
    color: #FFFFFF;
    text-decoration: none;
}

.marketing__header-btn-icon {
    display: none;
}

.marketing__header-btn--login {
    background: var(--marketing-gradient-blue);
    margin-right: 12px;
}

.marketing__header-btn--login:hover {
    background: var(--marketing-gradient-blue-hover);
}

.marketing__header-btn--register {
    background: var(--marketing-gradient-pink);
}

.marketing__header-btn--register:hover {
    background: var(--marketing-gradient-pink-hover);
}

/* 採用担当者リンクの逃がし先バナー。ヘッダーが1行に収まらない幅で表示する
   （表示の有無と縦位置だけを各ブレイクポイントで切り替える） */
.marketing__header-recruiter-banner {
    display: none;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 60px;
    right: 0;
    width: 185px;
    height: 34px;
    background: var(--marketing-yellow);
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 12px;
    letter-spacing: 0.6px;
    color: var(--marketing-text);
    text-decoration: none;
    text-align: center;
}

@media screen and (max-width: 799px) {
    .marketing__header-inner {
        max-width: 780px;
        margin: 0 auto;
        height: 60px;
        padding: 0 0 0 10px;
    }

    .marketing__header-hamburger {
        display: flex;
    }

    .marketing__header-logo {
        display: flex;
        align-items: center;
        height: 100%;
        /* ヘッダー高さいっぱいに広がって窮屈に見えるため、上下に余白を確保する */
        padding: 10px 0;
        box-sizing: border-box;
    }

    .marketing__header-logo img {
        height: 100%;
        width: auto;
    }

    .marketing__header-logo-pc {
        display: none;
    }

    .marketing__header-logo-sp {
        display: inline-block;
    }

    .marketing__header-nav {
        display: none;
    }

    .marketing__header-actions {
        margin-left: auto;
    }

    .marketing__header-btn {
        width: 62px;
        height: 60px;
        border-radius: 0;
        flex-direction: column;
        gap: 4px;
        font-size: 11px;
        letter-spacing: 0.6px;
    }

    .marketing__header-btn-icon {
        display: block;
        width: 16px;
        height: 16px;
    }

    .marketing__header-btn--login {
        margin-right: 0;
    }

    .marketing__header-recruiter-banner {
        display: flex;
    }
}

.marketing__sp-menu {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(255, 255, 255, 0.96);
    overflow-y: auto;
}

.marketing__sp-menu.is-open {
    display: block;
}

body.is-marketing-menu-open {
    overflow: hidden;
}

.marketing__sp-menu-head {
    display: flex;
    align-items: center;
    height: 60px;
    padding: 0 16px;
}

.marketing__sp-menu-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 0;
    background: none;
    padding: 0;
    margin-right: 16px;
    font-size: 22px;
    color: var(--marketing-text);
    cursor: pointer;
}

.marketing__sp-menu-logo img {
    height: 100%;
}

.marketing__sp-menu-list {
    list-style: none;
    margin: 0;
    padding: 40px 24px;
}

.marketing__sp-menu-list li + li {
    margin-top: 28px;
}

.marketing__sp-menu-list a {
    position: relative;
    display: block;
    text-align: left;
    padding-left: 50px;
    font-family: 'Outfit', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 20px;
    letter-spacing: 1.6px;
    color: var(--marketing-text);
    text-decoration: none;
}

.marketing__sp-menu-list a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 21px;
    background: url(/img/marketing_lp_img/sp_menu_bullet.svg) no-repeat center / contain;
}

.marketing__sp-menu-divider {
    border-top: 1px dashed #B4B4B4;
    margin:0 24px 40px;
}

.marketing__sp-menu-actions {
    display: flex;
    gap: 10px;
    padding: 0 24px;
}

.marketing__sp-menu-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 120px;
    border-radius: 10px;
    color: #FFFFFF;
    text-decoration: none;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 300;
    font-size: 16px;
    letter-spacing: 1px;
}

.marketing__sp-menu-btn img {
    width: 20%;
    height: auto;
}

.marketing__sp-menu-btn--login {
    background: var(--marketing-gradient-blue);
}

.marketing__sp-menu-btn--register {
    background: var(--marketing-gradient-pink);
}

.marketing__sp-menu-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 15px 24px;
    padding: 20px 0;
    border-radius: 5px;
    background: var(--marketing-yellow);
    color: var(--marketing-text);
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 300;
    font-size: 16px;
    text-decoration: none;
    text-align: center;
}

/* ----------------------------------------------
    marketing (2026 redesign): common
-------------------------------------------------*/
:root {
    --marketing-green: #32A787;
    --marketing-navy: #2B6198;
    --marketing-pink: #EF377E;
    --marketing-orange: #D99940;
    --marketing-bg-gray: transparent;
    --marketing-footer-bg: #22262B;
}

html {
    background-color: #F7F7F4;
}

/* ページ最背面に固定される背景（コンテンツはこの上をスクロールする）
   PCは画面幅いっぱいに広げ、SPは本文幅（780px）に合わせて中央寄せする
   背景画像差し替え用: public/img/marketing_lp_img/bg_fixed.webp を配置すると自動的に反映されます
   （未配置の間は下地色 #F7F7F4 のみが表示されます） */
.marketing__bg-fixed {
    position: fixed;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    height: 100vh;
    background-color: #F7F7F4;
    background-image: url(/img/marketing_lp_img/bg_fixed.webp);
    background-repeat: no-repeat;
    /* bg_fixed.webp は上端147px（画像高の約9.2%）が透明なため、
       cover のままだと画面上部に無地の帯が出る。縦に約10%引き伸ばして
       透明帯をボックス外へ逃がし、全面がテクスチャで埋まるようにする */
    background-size: 100% 110.2%;
    background-position: center bottom;
}

@media screen and (max-width: 799px) {
    .marketing__bg-fixed {
        background-color: #FFFFFF;
        background-image: url(/img/marketing_lp_img/bg_fixed_sp.webp);
        background-size: 100% 100%;
    }
}

.marketing__section-title {
    text-align: center;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    font-size: 28px;
    color: var(--marketing-text);
    margin: 0 0 12px;
}

.marketing__section-title--en {
    font-family: 'Outfit', sans-serif;
    font-weight: 100;
    font-size: 45px;
    /* 利用企業数の見出し（青→緑）と逆向きの緑→青。
       ブロック幅いっぱいに塗るとグラデ中央しか文字に乗らず単色に見えるため、
       塗り範囲を文字幅に合わせて中央寄せする */
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    background: linear-gradient(90deg, var(--marketing-green), var(--marketing-navy));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.marketing__section-title--white {
    color: #FFFFFF;
}

.marketing__section-lead {
    text-align: center;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    letter-spacing: 1.4px;
    color: var(--marketing-text);
    margin: 0 0 32px;
}

.marketing__section-lead--white {
    color: #FFFFFF;
}

.is-accent {
    font-family: 'Outfit', 'Noto Sans JP', sans-serif;
    background: linear-gradient(90deg, var(--marketing-pink), var(--marketing-orange));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 400;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.marketing__cta-button {
    position: relative;
    display: block;
    width: 453px;
    margin: 40px auto 0;
    padding: 20px 16px;
    border-radius: 30px;
    background: var(--marketing-gradient-pink);
    color: #FFFFFF;
    text-align: center;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    letter-spacing: 1.6px;
    text-decoration: none;
}

.marketing__cta-button::after {
    content: "";
    position: absolute;
    top: 6px;
    left: 9px;
    right: 9px;
    bottom: 6px;
    border: 1px solid #FFFFFF;
    border-radius: 24px;
    pointer-events: none;
}

.marketing__cta-button:hover {
    background: var(--marketing-gradient-pink-hover);
}

/* ----------------------------------------------
    marketing (2026 redesign): hero
-------------------------------------------------*/
.marketing__hero {
    position: relative;
    overflow: hidden;
}

.marketing__hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url(/img/marketing_lp_img/hero_photos_pc.webp) center / cover no-repeat;
    filter: blur(30px);
    transform: scale(1.15);
}

.marketing__hero-frame {
    position: relative;
    z-index: 1;
    max-width: 1366px;
    margin: 0 auto;
    aspect-ratio: 1366 / 799;
    overflow: hidden;
    background: #143C50;
}

.marketing__hero-bg {
    position: absolute;
    inset: 0;
    background: url(/img/marketing_lp_img/hero_photos_pc.webp) center / cover no-repeat;
}

.marketing__hero-bg::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 84.7%;
    height: 89.6%;
    background: url(/img/marketing_lp_img/hero_overlay_pc.svg) left top / 100% 100% no-repeat;
    opacity: 0.95;
}

.marketing__hero-inner {
    position: absolute;
    z-index: 2;
    left: 84px;
    top: 172px;
}

.marketing__hero-badge {
    position: absolute;
    z-index: 3;
    right: 0;
    bottom: 0;
    width: 27.2%;
    height: 13.4%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.marketing__hero-badge img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.marketing__hero-badge-sp {
    display: none;
}

.marketing__hero-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    font-size: 56px;
    line-height: 1.28;
    color: #FFFFFF;
    margin: 0 0 20px;
}

.marketing__hero-title-num {
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 1.31em;
}

.marketing__hero-lead {
    font: normal normal 20px/28px Noto Sans Japanese;
    letter-spacing: 2px;
    color: #FFFFFF;
    margin: 0;
}

/* ----------------------------------------------
    marketing (2026 redesign): registration form card
-------------------------------------------------*/
.marketing__form-card {
    position: absolute;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 25px 77px;
    text-align: center;
    top: 475px;
    left: 0;
    width: 450px;
    background: rgba(255, 255, 255, 0.94) 0% 0% no-repeat padding-box;
    box-shadow: 10px 0px 30px #00000029;
    border-radius: 0px 10px 10px 0px;
}

.marketing__form-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    letter-spacing: 0.8px;
    color: var(--marketing-text);
    margin: 0 0 16px;
    text-align: center;
}

.marketing__form-title::before,
.marketing__form-title::after {
    content: "";
    display: inline-block;
    width: 1px;
    height: 16px;
    vertical-align: middle;
    background: #585858;
}

.marketing__form-title::before {
    margin-right: 12.85px;
    transform: rotate(-32deg);
}

.marketing__form-title::after {
    margin-left: 12.85px;
    transform: rotate(32deg);
}

.marketing__form-title b {
    color: var(--marketing-pink);
    font-size: 20px;
    margin-left: 5.13px;
}

.marketing__form-title-suffix {
    margin-right: 6.43px;
}

.marketing__form {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.marketing__form-input {
    flex: 1 1 320px;
    min-width: 0;
    padding: 14px 16px;
    border: 1px solid #989898;
    border-radius: 6px;
    font-family: 'Outfit', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 14px;
    letter-spacing: 1.4px;
}

.marketing__form-input::placeholder {
    color: #C4C4C4;
}

.marketing__form-submit {
    position: relative;
    flex: 1 1 100%;
    height: 70px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 35px;
    background: linear-gradient(108deg, #EF377E 0%, #D99940 100%);
    color: #FFFFFF;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 16px;
    letter-spacing: 1.6px;
    cursor: pointer;
}

.marketing__form-submit::after {
    content: "";
    position: absolute;
    top: 6px;
    left: 9px;
    right: 9px;
    bottom: 6px;
    border: 1px solid #FFFFFF;
    border-radius: 29px;
    pointer-events: none;
}

.marketing__form-submit:hover {
    background: var(--marketing-gradient-pink-hover);
}

.marketing__form-links {
    margin: 16px 0 0;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 11px;
    line-height: 27px;
    letter-spacing: 1px;
}

.marketing__form-links a {
    color: #808080;
    text-decoration: underline;
    cursor: pointer;
}

.marketing__hero-note {
    position: absolute;
    z-index: 3;
    right: calc(27.2% + 10px);
    bottom: 0;
    margin: 0;
    padding: 0;
    text-align: right;
    font: normal normal normal 10px/42px Noto Sans Japanese;
    letter-spacing: 0;
    color: #FFFFFF;
    opacity: 1;
}



/* ----------------------------------------------
    marketing (2026 redesign): problem
    Figma: node 283:19696–283:20232（グレー背景 #F5F5F5 / コンテンツ幅1100px）
-------------------------------------------------*/
.marketing__problem {
    position: relative;
    margin: 0 auto;
    padding: 85px 24px 109px;
    text-align: center;
}

.marketing__problem::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(/img/marketing_lp_img/problem_bg.webp);
    background-size: cover;
    background-position: center;
    opacity: 0.3;
    pointer-events: none;
}

.marketing__problem > * {
    position: relative;
}

.marketing__problem-list {
    display: flex;
    flex-wrap: wrap;
    gap: 25px;
    max-width: 1100px;
    margin: 0 auto;
}

.marketing__problem-item {
    flex: 1 1 350px;
    max-width: 350px;
    margin: 0 auto;
    text-align: left;
}

.marketing__problem-photo img {
    width: 100%;
    height: auto;
    aspect-ratio: 350 / 283;
    object-fit: cover;
    display: block;
    border-radius: 3px;
}

.marketing__problem-body {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    margin-top: 16px;
}

.marketing__problem-no {
    font-family: 'Outfit', sans-serif;
    font-weight: 100;
    font-size: 48px;
    line-height: 1;
    letter-spacing: -2px;
    color: var(--marketing-text);
}

.marketing__problem-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    line-height: 1.6;
    letter-spacing: 1.2px;
    color: var(--marketing-text);
    margin: 0 0 4px;
}

.marketing__problem-badge {
    margin: 16px 0 0;
    text-align: center;
}

.marketing__problem-badge span {
    display: inline-block;
    min-width: 220px;
    padding: 10px 24px;
    background: var(--marketing-gradient-blue);
    color: #FFFFFF;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    font-size: 14px;
    text-align: center;
    letter-spacing: 1.2px;
    clip-path: polygon(3% 0, 100% 0, 97% 100%, 0 100%);
}

.marketing__section-title--problem {
    color: var(--marketing-green);
}

.marketing__section-title--problem .is-accent {
    background: linear-gradient(90deg, var(--marketing-navy), var(--marketing-green));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: bold;
    line-height: 1.5;
}

.marketing__problem-title-num {
    font-size: 1.3em;
    background: linear-gradient(90deg, var(--marketing-navy), var(--marketing-green));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.marketing__problem-title-medium {
    font-weight: 500;
}

.marketing__problem-title-digit {
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 52px;
}

.marketing__problem-title-quote {
    font-family: 'Noto Sans JP', sans-serif;
}

.marketing__problem-title-divider {
    width: 193px;
    height: 0;
    margin: 12px auto 55px;
    border-top: 2px solid #3B918C;
}

.marketing__problem-connector {
    max-width: 763px;
    margin: 0 auto;
    z-index: 2;
}

.marketing__problem-connector img {
    display: block;
    width: 100%;
    height: auto;
}


/* ----------------------------------------------
    marketing (2026 redesign): solution / tags
    Figma: node 283:19782（941px幅、背景透過）, 283:19789–19805（タグ）
    problemセクションと背景を統一するため、marketing__solutionは独立セクションにせず
    marketing__problem内のカード(marketing__solution-card)としてのみ扱う
-------------------------------------------------*/
.marketing__solution-card {
    position: relative;
    z-index: 1;
    max-width: 941px;
    margin: -90px auto 0;
    padding: 122px 24px 60px;
    text-align: center;
    background: #FFFFFF 0% 0% no-repeat padding-box;
    box-shadow: 20px 20px 30px #0000000D;
    border-radius: 20px;
}

.marketing__solution-lead {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15px;
    letter-spacing: 0.8px;
    color: var(--marketing-text);
    margin: 0;
}

.marketing__solution-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 28px;
    color: var(--marketing-orange);
    margin: 4px 0 28px;
}

.marketing__solution-title .is-accent {
    font-weight: bold;
}

.marketing__solution-divider {
    height: 1px;
    background: var(--marketing-green);
    margin: 0 0 32px;
}

.marketing__tag-wrap {
    position: relative;
    /* 左端がCMOタグ、上辺の右端がWEBコンサルタントの右端に合う比率。
       カード幅が縮んでも崩れないよう%で指定する（65% = 611px / 940px 相当） */
    background: url(/img/marketing_lp_img/solution_tag_fade.svg) 67.17% 32px / 65% auto no-repeat;
}

.marketing__tag-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 10px;
}

.marketing__tag {
    padding: 8px 18px;
    border-radius: 3px;
    background: #FFFFFF;
    border: 1px solid var(--marketing-navy);
    color: var(--marketing-navy);
    font-family: 'Outfit', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 13px;
    letter-spacing: 1px;
}

.marketing__tag--blue {
    border-color: var(--marketing-navy);
    color: var(--marketing-navy);
}

.marketing__tag--green {
    border-color: var(--marketing-green);
    color: var(--marketing-green);
}

/* CMO〜SaaSの17タグを青→緑へ1つずつ補間し、なめらかなグラデーションにする */
.marketing__tag-row:nth-child(1) .marketing__tag:nth-child(1) { color: #2B6198; border-color: #2B6198; }
.marketing__tag-row:nth-child(1) .marketing__tag:nth-child(2) { color: #2B6597; border-color: #2B6597; }
.marketing__tag-row:nth-child(1) .marketing__tag:nth-child(3) { color: #2C6A96; border-color: #2C6A96; }
.marketing__tag-row:nth-child(1) .marketing__tag:nth-child(4) { color: #2C6E95; border-color: #2C6E95; }
.marketing__tag-row:nth-child(2) .marketing__tag:nth-child(1) { color: #2D7394; border-color: #2D7394; }
.marketing__tag-row:nth-child(2) .marketing__tag:nth-child(2) { color: #2D7793; border-color: #2D7793; }
.marketing__tag-row:nth-child(2) .marketing__tag:nth-child(3) { color: #2E7B92; border-color: #2E7B92; }
.marketing__tag-row:nth-child(2) .marketing__tag:nth-child(4) { color: #2E8091; border-color: #2E8091; }
.marketing__tag-row:nth-child(3) .marketing__tag:nth-child(1) { color: #2F8490; border-color: #2F8490; }
.marketing__tag-row:nth-child(3) .marketing__tag:nth-child(2) { color: #2F888E; border-color: #2F888E; }
.marketing__tag-row:nth-child(3) .marketing__tag:nth-child(3) { color: #2F8D8D; border-color: #2F8D8D; }
.marketing__tag-row:nth-child(3) .marketing__tag:nth-child(4) { color: #30918C; border-color: #30918C; }
.marketing__tag-row:nth-child(4) .marketing__tag:nth-child(1) { color: #30968B; border-color: #30968B; }
.marketing__tag-row:nth-child(4) .marketing__tag:nth-child(2) { color: #319A8A; border-color: #319A8A; }
.marketing__tag-row:nth-child(4) .marketing__tag:nth-child(3) { color: #319E89; border-color: #319E89; }
.marketing__tag-row:nth-child(4) .marketing__tag:nth-child(4) { color: #32A388; border-color: #32A388; }
.marketing__tag-row:nth-child(4) .marketing__tag:nth-child(5) { color: #32A787; border-color: #32A787; }

/* ----------------------------------------------
    marketing (2026 redesign): projects
    Figma: node 283:19711（グレー背景 #E8E8E8）, 283:19728（リード文）, 283:19810–19848（カード）
-------------------------------------------------*/
/* グレー背景セクション（FLOW / FAQ）: 背面の固定背景を覆う形で不透明なテクスチャ画像を表示する
   画像差し替え用: public/img/marketing_lp_img/bg_gray_section.webp */
.marketing__flow-section,
.marketing__faq {
    position: relative;
    background-image: url(/img/marketing_lp_img/bg_gray_section.webp);
    background-size: cover;
    background-position: center;
}

.marketing__projects {
    position: relative;
    padding: 60px 24px;
    background-color: #E8E8E8;
    background-image: url(/img/marketing_lp_img/projects_bg.webp);
    background-size: cover;
    background-position: center;
}

.marketing__section-lead--projects {
    font-weight: normal;
    font-size: 15px;
    letter-spacing: 1.5px;
    margin-bottom: 0;
}

.marketing__projects-divider {
    width: 196px;
    height: 1px;
    margin: 12px auto 32px;
    background: linear-gradient(90deg, var(--marketing-green), var(--marketing-navy));
    -webkit-mask-image: repeating-linear-gradient(90deg, #000 0, #000 1px, transparent 1px, transparent 6px);
    mask-image: repeating-linear-gradient(90deg, #000 0, #000 1px, transparent 1px, transparent 6px);
}

.marketing__projects-list {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    max-width: 1120px;
    margin: 0 auto;
}

.marketing__project-card {
    flex: 1 1 350px;
    max-width: 350px;
    margin: 0 auto;
    background: #FFFFFF;
    border-radius: 0 0 3px 3px;
    border: 1px solid rgba(0, 0, 0, .08);
    border-top: none;
}

.marketing__project-photo {
    position: relative;
    margin-bottom: 23px;
}

.marketing__project-photo img {
    width: 100%;
    height: 144px;
    object-fit: cover;
    display: block;
    border-radius: 3px 3px 0 0;
}

.marketing__project-tag {
    position: absolute;
    left: 0;
    bottom: -23px;
    background: #000000;
    color: #FFFFFF;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    font-size: 14px;
    letter-spacing: 0;
    padding: 8px 16px;
}

.marketing__project-title {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0;
    font-weight: 500;
    color: #262626;
    padding: 0 16px 0 14px;
    margin: 46px 0 25px 28px;
}

.marketing__project-title::before {
    content: "";
    position: absolute;
    top: 26px;
    bottom: 26px;
    left: 0;
    width: 4px;
    background: #262626;
}

.marketing__project-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    padding: 0 16px 0 28px;
    margin: 0 0 16px;
}

.marketing__project-pills li {
    border: 1px solid #262626;
    border-radius: 1px;
    padding: 5.5px 14px;
    background: #FFFFFF;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    letter-spacing: 0;
    color: #262626;
}

.marketing__project-fee,
.marketing__project-day {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px 0 28px;
    margin: 0 0 8px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    letter-spacing: 0.7px;
    color: #262626;
}

.marketing__project-fee-label {
    font-weight: normal;
}

.marketing__project-fee-max {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.8px;
    color: #30847F;
    margin-left: 2px;
}

.marketing__project-fee b {
    font-family: 'Outfit', sans-serif;
    font-weight: 400;
    font-size: 38px;
    letter-spacing: -0.38px;
    color: #30847F;
    margin: 0 2px;
}

.marketing__project-fee-unit {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    font-size: 16px;
    letter-spacing: 0.8px;
    color: #30847F;
}

.marketing__project-day {
    padding: 12px 0 16px;
    margin: 0 16px 8px 28px;
    border-top: 1px dashed #DDDDDD;
}

/* ----------------------------------------------
    marketing (2026 redesign): triangle diagram
-------------------------------------------------*/
.marketing__triangle {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 24px 64px;
    text-align: center;
}

.marketing__triangle-heading {
    margin: 0 0 32px;
    --triangle-heading-size-main: 35px;
    --triangle-heading-size-sub: 26px;
}

.marketing__triangle-heading-main,
.marketing__triangle-heading-sub {
    display: block;
    font-family: 'Noto Sans JP', sans-serif;
    background: linear-gradient(191deg, #316FAD 0%, #358D75 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.marketing__triangle-heading-main {
    font-weight: bold;
    font-size: var(--triangle-heading-size-main);
    letter-spacing: 0.5px;
}

.marketing__triangle-heading-sub {
    font-weight: normal;
    font-size: var(--triangle-heading-size-sub);
    margin-top: 6px;
}

.marketing__triangle-illust {
    display: block;
    width: 100%;
    max-width: 1100px;
    height: auto;
    margin: 0 auto;
}

/* ----------------------------------------------
    marketing (2026 redesign): flow
-------------------------------------------------*/
.marketing__flow-section {
    padding: 48px 0;
    text-align: center;
}

.marketing__flow-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
}

.marketing__flow-heading-en {
    font-family: 'Outfit', sans-serif;
    font-weight: 100;
    font-size: 45px;
    text-align: center;
    background: linear-gradient(301deg, #316FAD 0%, #3E9B82 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin: 0 0 12px;
}

.marketing__flow-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 1.6px;
    color: var(--marketing-text);
    text-align: center;
    margin: 0 0 24px;
}

.marketing__flow-divider {
    width: 240px;
    height: 1px;
    margin: 0 auto 24px;
    background: linear-gradient(90deg, #316FAD, #3E9B82);
    -webkit-mask-image: repeating-linear-gradient(90deg, #000 0, #000 1px, transparent 1px, transparent 6px);
    mask-image: repeating-linear-gradient(90deg, #000 0, #000 1px, transparent 1px, transparent 6px);
}

.marketing__flow-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0 0 40px;
}

.marketing__flow-item {
    background: #ECECEC;
    border-radius: 4px;
    padding: 32px 24px 24px;
    text-align: left;
}

.marketing__flow-icon {
    text-align: center;
    margin-bottom: 20px;
}

.marketing__flow-icon img {
    height: 72px;
    width: auto;
}

.marketing__flow-head {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    color: var(--marketing-green);
    margin: 0 0 12px;
}

.marketing__flow-num {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
    font-family: 'Outfit', sans-serif;
    font-weight: 100;
    margin: 0;
    flex-shrink: 0;
}

.marketing__flow-num-label {
    font-size: 13px;
    letter-spacing: 1px;
}

.marketing__flow-num-value {
    font-size: 32px;
    letter-spacing: -1px;
}

.marketing__flow-head-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 1.5px;
    margin: 0;
}

.marketing__flow-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    letter-spacing: .65px;
    color: #505050;
    margin: 0;
}

@media screen and (min-width: 800px) {
    .marketing__flow-section {
        padding: 60px 0;
    }

    .marketing__flow-list {
        flex-direction: row;
        gap: 22px;
    }

    .marketing__flow-item {
        flex: 1 1 258px;
    }
}

/* ----------------------------------------------
    marketing (2026 redesign): merit / donut charts
-------------------------------------------------*/
.marketing__merit {
    max-width: 1000px;
    margin: 0 auto;
    padding: 72px 24px 64px;
    text-align: center;
}

.marketing__merit .marketing__section-lead {
    position: relative;
    display: inline-block;
    padding-bottom: 24px;
    font-size: 15px;
    letter-spacing: 1.5px;
}

.marketing__merit .marketing__section-lead::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 196px;
    height: 1px;
    background: linear-gradient(90deg, var(--marketing-green), var(--marketing-navy));
    -webkit-mask-image: repeating-linear-gradient(90deg, #000 0, #000 1px, transparent 1px, transparent 6px);
    mask-image: repeating-linear-gradient(90deg, #000 0, #000 1px, transparent 1px, transparent 6px);
    transform: translateX(-50%);
}

.marketing__merit-heading {
    position: relative;
    display: block;
    width: fit-content;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    font-size: 38px;
    background: linear-gradient(90deg, var(--marketing-pink), var(--marketing-orange));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin: 0 auto;
    padding: 0 32px;
}

.marketing__merit-heading-amp {
    font-size: 50px;
    font-weight: 500;
}

.marketing__merit-heading::before,
.marketing__merit-heading::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 2px;
    height: 34px;
    background: var(--marketing-gradient-pink);
}

.marketing__merit-heading::before {
    left: 0;
    transform: translateY(-50%) rotate(-20deg);
}

.marketing__merit-heading::after {
    right: 0;
    transform: translateY(-50%) rotate(20deg);
}

.marketing__donut-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 60px;
    margin-bottom: 40px;
}

.marketing__donut-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    margin: 40px 0;
}

/* 2枚のドーナツ画像は円の中心がキャンバス中心・円の直径も同一になるよう
   余白を正規化済み（980x739）。同じ幅で並べれば円の大きさと中心が揃う */
.marketing__donut-img {
    display: block;
    width: 440px;
    max-width: 100%;
    height: auto;
}

.marketing__donut-caption {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 258px;
    height: 56px;
    margin: 0;
    background: #FFFFFF;
    border: 1px solid #3A8A85;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    font-size: 15px;
    letter-spacing: 0.6px;
    color: #30847F;
}

.marketing__donut-caption-num {
    font-family: 'Outfit', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 1.2em;
    letter-spacing: 0.75px;
}

.marketing__merit-text {
    box-sizing: border-box;
    width: 1100px;
    max-width: 100%;
    margin: 32px auto 0;
    padding: 24px 144px;
    background: #FFFFFF;
    border: 0.8px solid #747474;
    text-align: left;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 14px;
    letter-spacing: 0.42px;
    line-height: 2.07;
    color: var(--marketing-text);
}

/* ----------------------------------------------
    marketing (2026 redesign): featured marketers
-------------------------------------------------*/
.marketing__marketers {
    position: relative;
    padding: 72px 24px 64px;
    background-color: var(--marketing-navy);
    background-image: url(/img/marketing_lp_img/final_cta_bg.webp);
    background-size: cover;
    background-position: center;
    text-align: center;
}

.marketing__marketers .marketing__section-title--en {
    font-size: 45px;
    background: none;
    -webkit-text-fill-color: #FFFFFF;
    color: #FFFFFF;
}

.marketing__marketers-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
    max-width: 1000px;
    margin: 32px auto 0;
}

.marketing__marketer-card {
    position: relative;
    flex: 1 1 260px;
    max-width: 300px;
    text-align: left;
}

.marketing__marketer-photo {
    position: relative;
    overflow: hidden;
    aspect-ratio: 295 / 234;
}

.marketing__marketer-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.marketing__marketer-role,
.marketing__marketer-name {
    display: block;
    width: fit-content;
    background: rgba(0, 0, 0, .85);
    color: #FFFFFF;
    font-family: 'Outfit', 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 13px;
    letter-spacing: 1.3px;
    padding: 6px 16px;
    text-align: left;
    clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
}

.marketing__marketer-role {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 1;
    /* 幅は文字数に合わせる（共通ルールの width: fit-content を使用） */
    padding: 10px 24px;
    text-align: center;
}

/* CMOは文字数が少なく詰まって見えるため、左右に余裕を持たせる */
.marketing__marketer-card:nth-child(3) .marketing__marketer-role {
    padding-left: 48px;
    padding-right: 48px;
}

.marketing__marketer-name {
    margin-top: 7px;
}

/* ----------------------------------------------
    marketing (2026 redesign): companies
-------------------------------------------------*/
.marketing__companies {
    background: #FFFFFF;
}

.marketing__companies-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 72px 24px 64px;
    text-align: center;
}

.marketing__companies .marketing__section-title {
    position: relative;
    display: inline-block;
    padding: 0 32px;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 40px;
    /* 見出し全体（数字部分を含む）を1本の青→緑グラデーションで塗る */
    background: linear-gradient(90deg, var(--marketing-navy), var(--marketing-green));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.marketing__companies .marketing__section-title::before,
.marketing__companies .marketing__section-title::after {
    content: '';
    position: absolute;
    bottom: 12px;
    width: 2px;
    height: 56px;
    background: var(--marketing-navy);
    /* 回転しても下端の位置が動かないようにする（見出し文字と下揃え） */
    transform-origin: bottom center;
}

.marketing__companies .marketing__section-title::before {
    left: 0;
    transform: rotate(-20deg);
}

.marketing__companies .marketing__section-title::after {
    right: 0;
    background: var(--marketing-green);
    transform: rotate(20deg);
}

.marketing__companies .marketing__section-title .is-accent {
    /* 見出し側のグラデーションを透過させるため、自前の塗りは持たせない */
    background: none;
    -webkit-text-fill-color: transparent;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: bold;
    font-size: 72px;
    margin: 0 8px;
    display: inline-block;
}

.marketing__companies-row {
    display: flex;
    align-items: center;
    /* ラベルとロゴ群は常に横1行に保つ（SPでは column に上書きする） */
    flex-wrap: nowrap;
    /* ロゴ間隔は固定のまま、行の内容（ラベル+ロゴ群）を中央寄せする。
       余白が右側だけに溜まって左寄りに見えるのを防ぐ */
    justify-content: center;
    gap: 16px;
    padding: 20px 0;
}

.marketing__companies-label {
    flex: 0 0 110px;
    border: 1px solid #646464;
    border-radius: 3px;
    padding: 4px 8px;
    text-align: center;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 11px;
    letter-spacing: 0.55px;
    color: #646464;
}

.marketing__companies-logos {
    /* 行側で中央寄せできるよう内容幅にし、狭いときはロゴが縮んで1行を保つ */
    flex: 0 1 auto;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

.marketing__companies-logos img {
    flex: 0 1 130px;
    min-width: 0;
    width: 130px;
    height: 70px;
    object-fit: contain;
}

/* ----------------------------------------------
    marketing (2026 redesign): FAQ
-------------------------------------------------*/
.marketing__faq-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 60px 24px;
}

.marketing__faq .marketing__section-lead {
    font-size: 16px;
    letter-spacing: 1.6px;
}

.marketing__faq-list {
    display: flex;
    flex-wrap: wrap;
    gap: 24px 52px;
    margin-top: 32px;
}

.marketing__faq-col {
    flex: 1 1 480px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.marketing__faq-item {
    background: #FFFFFF;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
    padding: 24px 28px;
    text-align: left;
}

.marketing__faq-q {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15px;
    letter-spacing: .6px;
    color: #30847F;
    text-align: left;
    padding-right: 28px;
}

.marketing__faq-q-mark {
    flex-shrink: 0;
    font-family: 'Outfit', sans-serif;
    font-weight: 100;
    font-size: 40px;
    line-height: 1;
    letter-spacing: -2px;
    color: #30847F;
}

.marketing__faq-q > span:not(.marketing__faq-q-mark) {
    flex: 1;
    min-width: 0;
}

.marketing__faq-arrow {
    position: absolute;
    top: 50%;
    right: 0;
    font-size: 12px;
    color: #30847F;
    transform: translateY(-50%);
    transition: transform .2s;
}

.marketing__faq-q.is-open .marketing__faq-arrow {
    transform: translateY(-50%) rotate(180deg);
}

.marketing__faq-a {
    display: none;
    margin-top: 12px;
    padding: 30px 27px 0 30px;
    border-top: 1px dotted #DDDDDD;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    letter-spacing: 1px;
    line-height: 1.7;
    color: #505050;
}

.marketing__faq-checklist {
    list-style: none;
    margin: 0 0 12px;
    padding: 16px 20px;
    background: #F5F5F5;
}

.marketing__faq-checklist li {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom:13px;
    color: #E66164;
}

.marketing__faq-checklist li:last-child {
    margin-bottom: 0;
}

.marketing__faq-checklist-icon {
    width: 16px;
    height: 16px;
    margin-top: 3px;
    flex-shrink: 0;
}

/* ----------------------------------------------
    marketing (2026 redesign): final CTA
-------------------------------------------------*/
/* 背景画像差し替え用: public/img/marketing_lp_img/bg_final_cta.jpg を配置すると自動的に反映されます
   （未配置の間は下地色 #143C50 のみが表示されます） */
.marketing__final-cta {
    position: relative;
    background-color: #143C50;
    background-image: url(/img/marketing_lp_img/final_cta_bg.webp);
    background-size: cover;
    background-position: center;
    padding: 60px 24px;
}

.marketing__final-cta-inner {
    position: relative;
    z-index: 1;
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-around;
    gap: 24px;
}

.marketing__final-cta-form-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    max-width: 534px;
}

.marketing__form-links--final {
    margin: 16px 0 0;
    text-align: right;
    color: #FFFFFF;
}

.marketing__form-links--final a {
    color: #FFFFFF;
    font-family: 'Zen Kaku Gothic New', sans-serif;
    font-weight: 500;
    font-size: 11px;
    letter-spacing: 0.55px;
    line-height: 1.4;
    text-decoration: underline;
}

.marketing__final-cta-title {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    font-size: 50px;
    line-height: 58px;
    color: #FFFFFF;
    margin: 0 0 12px;
}

.marketing__final-cta-sub {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 15px;
    letter-spacing: 1.5px;
    line-height: 1.5;
    color: #FFFFFF;
    margin: 0 0 24px;
}

.marketing__final-cta-logos {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #FFFFFF;
    border-radius: 12px;
    padding: 8px 24px;
    width: fit-content;
}

.marketing__final-cta-logos img {
    height: 48px;
}

.marketing__final-cta-logo-divider {
    width: 1px;
    height: 32px;
    background: #CCCCCC;
}

.marketing__form-card--final {
    position: static;
    width: auto;
    height: 230px;
    border-radius: 24px;
    padding: 25px 44px;
    margin: 0;
}

.marketing__form-card--final .marketing__form-title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 17px;
    letter-spacing: .85px;
    color: #3A3D4A;
}

.marketing__form-card--final .marketing__form-title::before,
.marketing__form-card--final .marketing__form-title::after {
    width: auto;
    height: auto;
    background: none;
    margin: 0;
    transform: none;
    color: #999999;
    font-weight: normal;
}

.marketing__form-card--final .marketing__form-title::before {
    content: "＼";
}

.marketing__form-card--final .marketing__form-title::after {
    content: "／";
}

.marketing__form-card--final .marketing__form .marketing__form-submit {
    margin: 0 30px;
}

/* ----------------------------------------------
    marketing (2026 redesign): footer
-------------------------------------------------*/
.marketing__footer {
    position: relative;
    height: 228px;
    background-color: var(--marketing-footer-bg);
    background-image: url(/img/marketing_lp_img/footer_bg_texture.webp);
    background-size: cover;
    background-position: center;
    padding: 40px 24px 16px;
}

.marketing__footer-inner {
    position: relative;
    z-index: 1;
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    align-content: center;
    gap: 80px;
    height: 100%;
}

.marketing__footer-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.marketing__footer-brand img {
    height: 56px;
    margin-bottom: 12px;
}

.marketing__footer-brand p {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 11px;
    letter-spacing: 1.1px;
    color: #FFFFFF;
    margin: 0;
}

.marketing__footer-recruit {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.marketing__footer-recruit-note {
    position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 13px;
    letter-spacing: 1.2px;
    color: var(--marketing-text);
    background: #FFFFFF;
    display: inline-block;
    padding: 8px 20px;
    border: 2px solid #3C3C3C;
    border-radius: 999px;
    margin: 0 0 -6px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}

.marketing__footer-recruit-note b {
    color: var(--marketing-navy);
}

.marketing__footer-recruit-note::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -6px;
    width: 12px;
    height: 12px;
    background: #FFFFFF;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    transform: translateX(-50%);
}

.marketing__footer-recruit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--marketing-gradient-blue);
    color: #FFFFFF;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: bold;
    font-size: 18px;
    letter-spacing: 1.44px;
    padding: 14px 60px;
    border-radius: 999px;
    text-decoration: none;
}

.marketing__footer-recruit-btn:hover {
    background: var(--marketing-gradient-blue-hover);
}

.marketing__footer-recruit-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #FFFFFF;
    color: var(--marketing-navy);
    font-size: 20px;
}

.marketing__footer-recruit-arrow {
    font-size: 14px;
}

.marketing__footer-links {
    position: relative;
    z-index: 1;
    text-align: center;
    margin-top: 24px;
}

.marketing__footer-links a {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 12px;
    letter-spacing: 1.2px;
    color: #AAAAAA;
}

@media screen and (max-width: 799px) {
    .marketing__hero::before {
        display: none;
    }

    .marketing__hero-frame {
        aspect-ratio: auto;
        height: auto;
        overflow: visible;
        background: none;
    }

    .marketing__final-cta-logos {
        max-width: 100%;
        flex-wrap: wrap;
    }

    .marketing__final-cta-logos img {
        max-width: unset;
        width: 40%;
        height: auto;
        max-height: unset;
    }

    .marketing__hero-bg {
        position: relative;
        inset: auto;
        aspect-ratio: 780 / 1260;
        width: 100%;
        background-image: url(/img/marketing_lp_img/hero_photos_sp.webp);
    }

    .marketing__hero-bg::after {
        top: 60px;
        width: 100%;
        height: 51.1%;
        background-image: url(/img/marketing_lp_img/hero_overlay_sp.png);
    }

    .marketing__hero-title {
        /* 基本は45px以上で画面幅に比例して拡大（上限72px）。
           ただし2行目「リモート案件紹介」は8文字=8emあり、枠幅94vwに収めるには
           11.75vw が上限になるため、小型端末では折り返さない範囲に抑える */
        font-size: min(clamp(45px, 11.5vw, 72px), 11.6vw);
        /* リード文との間隔を詰める（20px固定 → 幅に応じた間隔） */
        margin-bottom: 3vw;
    }

    .marketing__hero-lead {
        /* タイトルと同様に幅へ比例させる。字間はem基準にしてサイズに追従させる */
        letter-spacing: 0.1em;
        font-size: clamp(14px, 4.1vw, 24px);
        line-height: 1.5;
    }

    .marketing__hero-inner {
        left: 3%;
        /* FVの文言全体を上寄せにしつつ、上側に少し余白を残す */
        top: 15%;
        /* タイトル2行目「リモート案件紹介」は8文字=8em。45px時に360px必要なため
           折り返さないよう枠を広げる */
        width: 94%;
    }

    .marketing__hero-badge {
        display: none;
    }

    .marketing__hero-note {
        display: none;
    }

    .marketing__hero-badge-sp {
        display: block;
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 2;
        background: linear-gradient(270deg, rgba(248, 248, 248, 0.898039) 2.3%, #FFFFFF 48.17%, rgba(248, 248, 248, 0.898039) 92.71%);
        opacity: 0.97;
        text-align: center;
    }

    .marketing__hero-badge-sp-img {
        display: inline-block;
        height: 90px;
        width: auto;
        margin-top: -25px;
    }

    .marketing__hero-badge-sp-note {
        padding: 0 8px 5px;
        font-family: 'Inter', sans-serif;
        font-style: normal;
        font-weight: 400;
        font-size: 9px;
        line-height: 1rem;
        color: #39508E;
        text-decoration: underline;
        text-decoration-color: #38508E;
        text-decoration-thickness: 0.5px;
    }

    .marketing__form-card {
        position: static;
        width: auto;
        height: auto;
        display: block;
        margin: 0;
        padding: 24px 16px;
        background: rgba(255, 255, 255, 0.5);
        box-shadow: unset;
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        border-radius: 0;
    }

    /* 「登録者数60,000名！まずはEmailで無料登録」が狭い幅で折り返すため、
       画面幅に比例させて1行に収める（上限は元の16px相当より少し大きい20px） */
    .marketing__form-title {
        font-size: min(3.7vw, 20px);
    }

    .marketing__form-title b {
        font-size: 1.25em;
    }

    .marketing__problem::before {
        background-image: url(/img/marketing_lp_img/problem_bg_sp.webp);
        opacity: 1;
    }

    .marketing__problem-list {
        flex-direction: column;
        gap: 40px;
    }

    .marketing__problem-item {
        position: relative;
        max-width: 688px;
        width: 100%;
    }

    .marketing__solution-card {
        padding: 80px 20px 28px;
    }

    .marketing__problem-photo img {
        aspect-ratio: 688 / 360;
        object-position: center 30%;
    }

    .marketing__problem-body {
        display: block;
        margin-top: 24px;
        text-align: center;
    }

    .marketing__problem-no {
        position: absolute;
        top: 0;
        left: 0;
        font-size: 65px;
        font-weight: 100;
        letter-spacing: -8.9px;
    }

    .marketing__problem-text {
        margin: 0;
        font-size: 16px;
        letter-spacing: -0.56px;
        text-align: center;
    }

    .marketing__problem-connector img {
        width: 150px;
        height: auto;
        margin: 0 auto;
    }

    .marketing__solution-lead {
        max-width: 230px;
        margin: 0 auto;
    }

    .marketing__tag-wrap {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px;
        background: none;
    }

    .marketing__tag-row {
        display: contents;
    }

    .marketing__tag {
        padding: 8px 10px;
    }

    /* 高単価案件探しの見出しのみ拡大（以前は無限定の !important で
       problem/companies の .is-accent にも漏れていた） */
    .marketing__solution-title .is-accent {
        font-size: 35px;
    }

    .marketing__cta-button {
        width: auto;
        max-width: 453px;
        box-sizing: border-box;
    }

    .marketing__donut-list {
        gap: 0;
    }

    .marketing__donut-item + .marketing__donut-item {
        padding-top: 40px;
        border-top: 1px dashed #DDDDDD;
    }

    .marketing__merit-text {
        padding: 24px 20px;
        line-height: 1.2rem;
    }

    .marketing__project-title::before {
        top: 0;
        left: 0;
        height: 100%;
    }

    .marketing__project-pills {
        flex-wrap: nowrap;
    }

    .marketing__flow-item {
        position: relative;
        padding: 24px 24px 24px 72px;
        min-height: 130px;
    }

    .marketing__flow-icon {
        position: absolute;
        top: 32%;
        left: 3%;
        margin-bottom: 0;
    }

    .marketing__flow-icon img {
        height: 45px;
    }

    .marketing__flow-head {
        align-items: flex-end;
        gap: 6px;
        padding-bottom: 12px;
        margin-bottom: 12px;
        border-bottom: 1px dotted #30847F;
    }

    .marketing__flow-num-label {
        font-size: 17px;
    }

    .marketing__flow-num-value {
        font-size: 35px;
        font-weight: 100;
    }

    .marketing__flow-head-title {
        font-size: 20px;
    }

    .marketing__flow-text {
        font-size: 13px;
        color: #505050;
    }

    .marketing__triangle-heading {
        --triangle-heading-size-main: 22px;
        --triangle-heading-size-sub: 15px;
    }

    .marketing__faq-list {
        flex-direction: column;
        gap: 16px;
    }

    .marketing__faq-col {
        display: contents;
    }

    .marketing__projects-list {
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        max-width: none;
        margin: 0 -24px;
        padding: 4px 40px 16px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .marketing__projects-list::-webkit-scrollbar {
        display: none;
    }

    .marketing__project-card {
        flex: 0 0 98%;
        max-width: 98%;
        scroll-snap-align: center;
    }

    .marketing__final-cta-inner {
        flex-direction: column;
    }

    .marketing__footer {
        height: auto;
        padding: 32px 24px 24px;
    }

    .marketing__footer-inner {
        flex-direction: column;
        flex-wrap: nowrap;
        height: auto;
        gap: 24px;
        text-align: center;
    }

    .marketing__footer-recruit {
        width: 100%;
    }

    .marketing__footer-recruit-note {
        display: none;
    }

    .marketing__footer-recruit-btn {
        width: 100%;
        box-sizing: border-box;
    }

    .marketing__companies-row {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
    }

    .marketing__marketer-card {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .marketing__marketer-photo {
        aspect-ratio: 382 / 203;
    }

    .marketing__marketers-list {
        gap: 10px;
    }

    .marketing__marketer-role,
    .marketing__marketer-name {
        clip-path: none;
    }

    .marketing__marketer-role {
        bottom: 53px;
    }

    .marketing__marketer-name {
        position: absolute;
        left: 0;
        bottom: 20px;
        margin-top: 0;
        z-index: 1;
    }

    .marketing__marketer-card:nth-child(2) .marketing__marketer-role,
    .marketing__marketer-card:nth-child(2) .marketing__marketer-name {
        left: auto;
        right: 0;
    }

    .marketing__section-title {
        background: transparent linear-gradient(156deg, #2B6198 0%, #32A787 100%) 0% 0% no-repeat;
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
    }

    /* 英字セクション見出し（PROJECTS / MELIT / FLOW / FAQ / FEATURED MARKETERS）は
       最小32pxで画面幅に比例して拡大し、PCの45pxを上限とする。
       ウェイトはPCのThin(100)に対しSPはLight(300) */
    .marketing__section-title--en,
    .marketing__flow-heading-en,
    .marketing__marketers .marketing__section-title--en {
        font-size: clamp(32px, 8.2vw, 45px);
        font-weight: 300;
    }

    .marketing__companies .marketing__section-title {
        font-size: clamp(26px, 7.2vw, 34px);
    }

    .marketing__companies .marketing__section-title .is-accent {
        background: transparent linear-gradient(156deg, #2B6198 0%, #32A787 100%) 0% 0% no-repeat;
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        color: transparent;
        font-family: inherit;
        font-weight: inherit;
        /* 見出しサイズに追従させる（PCの 72/40 と同等の比率） */
        font-size: 1.6em;
        margin: 0;
    }

    .marketing__companies .marketing__section-title::before,
    .marketing__companies .marketing__section-title::after {
        width: 1px;
        height: 61px;
    }

    .marketing__companies-row {
        position: relative;
    }

    /* ラベル右側に伸びるドットライン。行いっぱいに敷き、ラベルの不透明な背景で
       左側を隠すことで「ラベルの右から線が始まる」見た目にする */
    .marketing__companies-row::before {
        content: "";
        position: absolute;
        top: 33px;
        left: 0;
        right: 0;
        height: 2px;
        background-image: repeating-linear-gradient(90deg, #333333 0 2px, transparent 2px 8px);
        z-index: 0;
    }

    .marketing__companies-label {
        position: relative;
        z-index: 1;
        flex: 0 0 auto;
        width: auto;
        border: none;
        border-radius: 999px;
        background: #1A1A1A;
        color: #FFFFFF;
        font-weight: bold;
        padding: 6px 20px;
    }

    .marketing__companies-logos {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px 16px;
        width: 100%;
    }

    .marketing__companies-logos img {
        width: 100%;
        height: 60px;
    }

    /* ユビレジのロゴは画像に余白がなく極端に横長（584x124）なため、
       contain が高さ60pxではなくセル幅基準で効いてしまい、
       他ロゴが固定サイズなのに対し画面幅に連動して伸縮してしまう。
       他ロゴの描画幅（75〜86px）に合わせて上限を固定する */
    .marketing__companies-logos img[src$="ubiregi-logo.png"] {
        max-width: 80px;
        margin: 0 auto;
    }

    .marketing__faq-item {
        padding: 20px;
    }

    .marketing__faq-a {
        padding: 15px 0 0 0;
    }

    .marketing__final-cta-title {
        font-size: 32px;
        line-height: 42px;
        letter-spacing: 3px;
        text-align: center;
    }

    .marketing__final-cta-sub {
        text-align: center;
    }

    .marketing__final-cta-logos {
        justify-content: center;
        border-radius: 5px;
    }

    .marketing__form-card--final {
        background: #FFFFFF;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        border-radius: 5px;
    }

    .marketing__form-card--final .marketing__form-title {
        font-size: 14px;
    }

    .marketing__form-card--final .marketing__form .marketing__form-submit {
        margin: 0;
    }

    .marketing__form-links--final {
        margin: 16px auto;
    }

    .marketing__form-links--final a {
        font-weight: 100;
        font-size: 14px;
    }

    .marketing__footer-brand {
        display: contents;
    }

    .marketing__footer-brand img {
        height: 45px;
        order: 1;
    }

    .marketing__footer-recruit {
        order: 2;
    }

    .marketing__footer-brand p {
        order: 3;
    }

    .marketing__footer-recruit-btn {
        font-weight: normal;
        font-size: 14px;
        padding: 14px 25px;
    }
}

.button {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.3;
    display: -ms-inline-flexbox;
    display: inline-flex;
    box-sizing: border-box;
    width: 80%;
    max-width: 344px;
    margin: 16px auto;
    padding: 16px 32px 18px;
    color: #fff;
    border: none;
    border-radius: 100px;
    outline: none;
    background: #f03b56;
    box-shadow: none;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer;
}

.button:hover, a.button:hover {
    transition: opacity .4s ease-out;
    opacity: .8;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
    color: #fff;
}

/* ----------------------------------------------
	footer
-------------------------------------------------*/
.footer {
    background-color: #222222;
    text-align: center;
    color: #fff;
    padding: 20px 0 30px;
    font-size: 14px;
}

/* Content */

@media screen and (min-width:769px) {
    .works {
        display: flex;
        justify-content: space-between;
    }
}

.works {
    margin-bottom: 100px;
}

@media screen and (max-width:768px) {
    .works {
        margin-bottom: 60px;
    }
}

/* ----------------------------------------------
    marketing: 注記モーダル（PurgeCSS適用時に誤って削除されたため復元）
-------------------------------------------------*/
.note_text {
    text-decoration: underline;
    cursor: pointer;
}

.note_modal {
    display: none;
    position: fixed;
    width: 800px;
    margin: 0 auto;
    top: 20%;
    left: 30%;
    z-index: 20;
}

.note_modal-inner {
    max-width: 800px;
    background-color: #FFF;
    padding: 30px;
    box-shadow: 2px 2px 3px rgba(0, 0, 0, 20%);
    position: relative;
    text-align: left;
    color: var(--marketing-text);
    font-family: 'Noto Sans JP', sans-serif;
}

.note_body {
    font-size: 14px;
    line-height: 1.5;
    text-align: left;
}

.close_btn {
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 20px;
    color: #999;
    font-weight: bold;
    cursor: pointer;
}

.overlay {
    display: none;
    position: fixed;
    top: 0px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    background-color: rgba(0, 0, 0, 80%);
    z-index: 10;
}

@media screen and (max-width: 768px) {
    .note_text {
        font-size: 11px;
    }

    .note_modal {
        top: 20px;
        left: 10px;
        right: 10px;
        width: auto;
    }
}

/* iziModal（利用規約・個人情報保護方針）関連（PurgeCSS適用時に誤って削除されたため復元） */
.iziModal.hasScroll .iziModal-wrap {
    overflow-y: auto;
    overflow-x: hidden;
}

.iziModal .iziModal-content {
    zoom: 1;
    width: 100%;
    -webkit-overflow-scrolling: touch;
}

.iziModal * {
    -webkit-font-smoothing: antialiased;
}

.component__container {
    text-align: left;
}

@media screen and (min-width: 1104px) {
    .component__container {
        padding: 32px;
    }
}

#regist_privacy_modal .closeBtn,
#terms_of_service_modal .closeBtn,
#privacy_policy_modal .closeBtn {
    position: fixed;
    right: 24px;
    top: 24px;
    cursor: pointer;
}

.closeBtn {
    content: "";
    background: url(https://itpropartners.com/imgs/ClosedBtn.svg) no-repeat;
    background-size: 16px 16px;
    display: inline-block;
    width: 16px;
    height: 16px;
    position: absolute;
    right: 32px;
    left: auto;
}

@media screen and (max-width: 768px) {
    .closeBtn {
        right: 10px;
        top: 17px;
        left: auto;
    }
}

/* PCデザイン調整（SPへの影響を避けるためPC幅のみに適用） */
@media screen and (min-width: 800px) {
    .marketing__section-title--en {
        font-weight: 300;
    }

    .marketing__flow-heading-en {
        font-weight: 300;
        letter-spacing: -1px;
    }

    .marketing__problem-badge {
        margin: 5px 0 0;
    }

    .marketing__solution-title .is-accent {
        font-size: 38px;
    }

    .marketing__solution-divider {
        margin: 0 auto 32px;
        width: 80%;
    }

    .marketing__solution-card {
        max-width: 900px;
    }

    .marketing__tag {
        padding: 8px 30px;
        font-size: 15px;
        letter-spacing: 0;
    }

    .marketing__project-title {
        font-size: 15px;
        line-height: 1.5;
        padding: 0 16px 0 18px;
        margin: 46px 0 19px 28px;
    }

    .marketing__project-title::before {
        top: 50%;
        bottom: auto;
        height: 90%;
        border-radius: 10%;
        transform: translateY(-50%);
    }

    .marketing__project-photo img {
        height: 158px;
    }

    .marketing__project-pills {
        margin: 0 0 10px;
    }

    .marketing__project-pills li {
        padding: 3.5px 14px;
        font-size: 12px;
    }

    .marketing__project-tag {
        font-size: 13px;
    }

    .marketing__project-fee {
        gap: 0;
        margin: 0;
    }

    .marketing__project-fee-label {
        padding: 0 5px;
    }

    .marketing__project-fee b {
        margin: 0;
        padding: 0 2px 8px 0;
    }

    .marketing__triangle {
        padding: 80px 25px;
    }

    .marketing__triangle-heading-sub {
        font-size: 24px;
    }

    .marketing__flow-divider {
        margin: 0 auto 45px;
    }

    .marketing__flow-item {
        background: rgba(217, 217, 217, 0.3);
        padding: 40px 25px;
    }

    .marketing__flow-icon {
        margin-bottom: 0;
    }

    .marketing__flow-head {
        gap: 9px;
        color: #30847F;
    }

    .marketing__flow-text {
        line-height: 1.5;
    }

    .marketing__merit {
        padding: 72px 24px 90px;
    }

    .marketing__donut-list {
        margin-bottom: 0;
    }

    .marketing__donut-item {
        gap: 0;
        margin: 30px 0;
    }

    .marketing__donut-caption {
        align-items: inherit;
        height: auto;
        padding: 5px 0;
    }

    .marketing__donut-caption-num {
        font-size: 2.2em;
        padding: 0 2px;
        margin-bottom: 4px;
    }

    .marketing__merit-text {
        margin: 15px auto 0;
    }

    .marketing__marketer-name {
        margin-top: 1px;
    }

    .marketing__companies .marketing__section-title .is-accent {
        letter-spacing: -3px;
    }

    .marketing__faq-inner {
        padding: 60px 24px 90px;
    }

    .marketing__faq-item {
        padding: 16px 28px;
    }

    .marketing__faq-q {
        font-size: 14px;
    }

    .marketing__final-cta-logos {
        border-radius: 5px;
        padding: 7px 24px;
    }

    .marketing__form-card--final {
        border-radius: 10px;
        padding: 10px 44px;
        background: #fff;
    }

    .marketing__form {
        gap: 17px;
    }

    .marketing__footer {
        padding: 0 24px;
    }

    .marketing__footer-recruit-note {
        font-size: 12px;
        letter-spacing: 0;
        border: none;
    }
}

/* 800〜1365px: PCレイアウトのまま全幅で見せるため、デザイン幅1366px基準の固定pxを
   ヒーロー枠幅に対する比率(cqw)へ置き換えて比例縮小させる。
   1cqw = ヒーロー枠幅の1%なので、px値 ÷ 1366 × 100 が対応する cqw 値 */
@media screen and (min-width: 800px) and (max-width: 1365px) {
    /* ヘッダーは文字サイズを保ったまま余白だけ詰めて1行に収める */
    .marketing__header-inner {
        padding: 0 16px;
    }

    .marketing__header-nav {
        margin-left: 16px;
        margin-right: 16px;
    }

    .marketing__header-nav-list {
        gap: 20px;
    }

    .marketing__header-divider {
        margin: 0 16px;
    }

    .marketing__header-nav-list a,
    .marketing__header-recruiter {
        font-size: 13px;
        letter-spacing: 0.8px;
    }

    .marketing__header-btn {
        width: 96px;
    }

    .marketing__hero-frame {
        container-type: inline-size;
    }

    .marketing__hero-inner {
        left: 6.149cqw;
        top: 12.591cqw;
    }

    .marketing__hero-title {
        font-size: 4.099cqw;
        margin: 0 0 1.464cqw;
    }

    .marketing__hero-lead {
        font-size: 1.464cqw;
        line-height: 1.4;
        letter-spacing: 0.146cqw;
    }

    .marketing__hero-note {
        right: calc(27.2% + 0.732cqw);
        font-size: 0.732cqw;
        line-height: 3.075cqw;
    }

    .marketing__hero-frame .marketing__form-card {
        top: 34.773cqw;
        width: 32.943cqw;
        padding: 1.83cqw 5.637cqw;
    }

    .marketing__hero-frame .marketing__form-title {
        font-size: 1.171cqw;
        margin: 0 0 1.171cqw;
    }

    .marketing__hero-frame .marketing__form-title b {
        font-size: 1.464cqw;
    }

    .marketing__hero-frame .marketing__form {
        gap: 0.878cqw;
    }

    .marketing__hero-frame .marketing__form-input {
        padding: 1.025cqw 1.171cqw;
        font-size: 1.025cqw;
    }

    .marketing__hero-frame .marketing__form-submit {
        height: 5.124cqw;
        font-size: 1.171cqw;
    }

    .marketing__hero-frame .marketing__form-links {
        margin: 1.171cqw 0 0;
        font-size: 0.805cqw;
        line-height: 1.977cqw;
    }

    /* カード類は折り返さず、行内で幅を分け合って縮むようにする
       （1366px時と同じカラム数を保つ） */
    .marketing__problem-item,
    .marketing__project-card {
        flex: 1 1 0;
        max-width: none;
    }

    .marketing__faq-col,
    .marketing__flow-item {
        flex: 1 1 0;
    }
}

/* 800〜999px: PCレイアウトを維持しつつヘッダーを1行に収めるため、
   採用担当者の導線はインラインリンクをやめて黄色バナーに逃がす */
@media screen and (min-width: 800px) and (max-width: 999px) {
    .marketing__header-recruiter,
    .marketing__header-divider {
        display: none;
    }

    .marketing__header-recruiter-banner {
        display: flex;
        top: 82px;
    }

    /* バッジの min-width が効いて3カラムに収まらないため、この幅では解除する */
    .marketing__problem-item {
        min-width: 0;
    }

    .marketing__problem-badge span {
        min-width: 0;
    }

    /* マーケター/ドーナツも折り返さず行内で縮める */
    .marketing__marketer-card {
        flex: 1 1 0;
        max-width: none;
    }

    .marketing__donut-list {
        gap: 24px;
        flex-wrap: nowrap;
    }

    .marketing__donut-img {
        width: 100%;
    }
}

/* fixedヘッダーに隠れないよう、アンカー先に逃げ量を持たせる
   （JS側のスムーススクロールでもヘッダー高さ分を差し引いている） */
#works,
#flow,
#faq,
#registration {
    scroll-margin-top: 82px;
}

@media screen and (max-width: 799px) {
    /* SPはヘッダー60px + 採用担当者バナー34px が重なる */
    #works,
    #flow,
    #faq,
    #registration {
        scroll-margin-top: 94px;
    }
}

/* SPデザイン調整 */
@media screen and (max-width: 799px) {
    .marketing__hero-title {
        font-size: min(clamp(45px, 11.5vw, 72px), 11.6vw);
        margin-bottom: 3vw;
        line-height: 1;
        margin-top: 14px;
    }

    .marketing__hero-lead {
        letter-spacing: 0.1em;
        font-size: clamp(14px, 3.8vw, 24px);
        line-height: 1.4;
    }

    .marketing__form-title {
        font-size: min(3.7vw, 20px);
        letter-spacing: .3px;
    }

    .marketing__form-title b {
        font-size: 1.25em;
        letter-spacing: -.2px;
    }

    .marketing__form-submit {
        height: 65px;
        font-size: 15px;
    }

    .marketing__form-links {
        margin: 5px 0 0;
    }

    .marketing__form-links--final {
        margin: 16px auto 0;
    }

    #registration {
        margin: 50px 0 0;
    }

    .marketing__section-title {
        background: transparent linear-gradient(156deg, #2B6198 0%, #32A787 100%) 0% 0% no-repeat;
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        line-height: 1.4;
    }

    .marketing__section-title--en,
    .marketing__flow-heading-en,
    .marketing__marketers .marketing__section-title--en {
        font-size: clamp(32px, 8.2vw, 45px);
        font-weight: 300;
        line-height: 1.1;
    }

    .marketing__problem {
        padding: 40px 24px;
    }

    .marketing__section-title--problem .is-accent {
        display: block;
        line-height: 1;
    }

    .marketing__problem-body {
        display: block;
        margin-top: 10px;
        text-align: center;
    }

    .marketing__problem-list {
        flex-direction: column;
        gap: 0;
    }

    .marketing__problem-item {
        position: relative;
        max-width: 688px;
        width: 100%;
        flex: 1 1 329px;
    }

    .marketing__problem-badge {
        margin: 5px 0 0;
    }

    .marketing__problem-badge span {
        font-size: 16px;
    }

    .marketing__solution-title {
        margin: 10px 0 20px;
        line-height: 1.1;
    }

    .marketing__solution-divider {
        background: #d99940;
        margin: 10px auto 32px;
        width: 50%;
    }

    .marketing__solution-lead {
        max-width: 230px;
        margin: 25px auto 0;
    }

    .marketing__tag {
        padding: 5px 24px;
    }

    .marketing__section-lead--projects {
        font-size: 14px;
    }

    .marketing__projects-divider {
        width: 130px;
        margin: 12px auto 40px;
    }

    .marketing__project-title {
        font-size: 15px;
        line-height: 1.4;
        padding: 0 16px 0 14px;
        margin: 46px 0 25px 20px;
    }

    .marketing__project-pills {
        flex-wrap: nowrap;
        padding: 0 16px 0 20px;
        margin-bottom: 3px;
    }

    .marketing__project-pills li {
        padding: 5px 10px;
        font-size: 12px;
    }

    .marketing__project-fee,
    .marketing__project-day {
        gap: 3px;
        margin: 0;
        padding-left: 28px;
    }

    .marketing__project-fee b {
        margin: 0 0 4px;
    }

    .marketing__triangle-heading-sub {
        margin-top: 3px;
    }

    .marketing__flow-title {
        font-weight: 200;
        font-size: 14px;
        letter-spacing: 1.6px;
        color: var(--marketing-text);
        text-align: center;
        margin: 0 0 24px;
    }

    .marketing__flow-divider {
        width: 130px;
        margin: 0 auto 40px;
    }

    .marketing__flow-list {
        margin: 0;
    }

    .marketing__flow-item {
        position: relative;
        padding: 24px 24px 24px 75px;
        min-height: inherit;
    }

    .marketing__flow-icon {
        position: absolute;
        top: 32%;
        left: 6%;
    }

    .marketing__flow-head {
        align-items: flex-end;
        gap: 6px;
        padding-bottom: 12px;
        margin-bottom: 12px;
        border-bottom: 1px dotted #30847F;
        color: #30847F;
        margin-left: 10px;
    }

    .marketing__flow-head-title {
        font-size: 17px;
    }

    .marketing__flow-text {
        font-size: 13px;
        color: #505050;
        margin-left: 15px;
    }

    .marketing__flow-num-label {
        font-size: 14px;
        letter-spacing: -.5px;
    }

    .marketing__flow-num-value {
        font-size: 30px;
        font-weight: 100;
    }

    .marketing__cta-button {
        width: auto;
        max-width: 453px;
        box-sizing: border-box;
        margin-top: 25px;
    }

    .marketing__merit {
        margin: 0 auto;
        padding: 50px 24px;
    }

    .marketing__merit-heading {
        line-height: 1;
        padding: 0;
        font-size: 34px;
    }

    .marketing__merit-heading::before,
    .marketing__merit-heading::after {
        height: 45px;
    }

    .marketing__merit-heading::before {
        left: -15px;
    }

    .marketing__merit-heading::after {
        right: -15px;
    }

    .marketing__merit-heading-num {
        font-size: 52px;
        padding: 0 3px;
    }

    .marketing__merit-heading-amp {
        font-size: 40px;
        padding: 0 3px;
    }

    .marketing__donut-list {
        gap: 0;
        margin-bottom: 0;
    }

    .marketing__donut-item {
        margin: 5px 0 41px;
    }

    .marketing__donut-item + .marketing__donut-item {
        padding-top: 40px;
        border-top: 1px dashed #DDDDDD;
        margin-bottom: 0;
    }

    .marketing__marketers {
        padding: 50px 24px;
    }

    .marketing__companies .marketing__section-title {
        font-size: clamp(26px, 7.2vw, 34px);
        line-height: 1;
    }

    .marketing__companies .marketing__section-title::before,
    .marketing__companies .marketing__section-title::after {
        width: 1px;
        height: 56px;
        bottom: 0%;
    }

    .marketing__faq-item {
        padding: 15px 20px;
    }

    .marketing__faq-q {
        font-size: 14px;
    }

    .marketing__final-cta-title {
        font-size: 32px;
        line-height: 42px;
        letter-spacing: 1px;
        text-align: center;
    }

    .marketing__footer-inner {
        flex-direction: column;
        flex-wrap: nowrap;
        height: auto;
        gap: 20px;
        text-align: center;
    }

    .marketing__footer-brand img {
        height: 45px;
        order: 1;
        margin: 0;
    }

    .marketing__footer-recruit-btn {
        font-weight: normal;
        font-size: 14px;
        letter-spacing: .5px;
        padding: 14px 25px;
    }
}
