@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
*/

.ib-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 16px;
}

.ib-section {
    padding: 48px 0;
}

.ib-top h1,
.ib-top h2,
.ib-top h3 {
    margin-top: 0;
}

.ib-lead {
    margin: 16px 0 0;
}

.ib-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
}

.ib-grid {
    display: grid;
    gap: 16px;
    margin-top: 20px;
}
.ib-grid--2x2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ib-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ib-stack {
    display: grid;
    gap: 12px;
    margin-top: 16px;
}

.ib-twoCol {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
}

.ib-card {
    border: 1px solid var(--color_border, currentColor);
    background: var(--color_bg2, transparent);
    padding: 14px 16px;
}

.ib-card--link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.ib-card--link:hover {
    text-decoration: underline;
}

.ib-card__title {
    font-size: 1.05em;
    margin: 0;
}

.ib-card__desc,
.ib-card__meta {
    margin: 10px 0 0;
}

.ib-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}

.ib-table th,
.ib-table td {
    border: 1px solid var(--color_border, currentColor);
    padding: 12px 14px;
    vertical-align: top;
}

.ib-table th {
    white-space: nowrap;
    width: 32%;
}

.ib-hubspot {
    margin-top: 20px;
}

.ib-hubspot .hs-form-frame {
    max-width: 720px;
}

/* Footer */
.l-footer__foot .ib-footer__brand {
    margin: 0 0 12px;
}

.l-footer__foot .ib-footer__logoLink {
    display: inline-block;
    line-height: 1;
}

.l-footer__foot .ib-footer__logo {
    display: block;
    width: 220px;
    max-width: 100%;
    height: auto;
}

/* Top page (home) */
.ib-top--home .ib-topHero__media {
    margin-top: 18px;
}

.ib-top--home .ib-topHero__actions {
    justify-content: center;
}

.ib-top--home .ib-topHero__media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--ib-lp-radius);
    border: 1px solid var(--color_border, currentColor);
}

.ib-top--home .ib-top__textLink {
    display: inline-block;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
}

.ib-top--home .ib-top__textLink:hover {
    opacity: .75;
}

.ib-top--home .ib-topCompany__actions {
    justify-content: center;
}

.ib-top--home .ib-topNews__list {
    list-style: none;
    padding-left: 0;
    margin: 16px 0 0;
    display: grid;
    gap: 10px;
}

.ib-top--home .ib-topNews__item {
    display: flex;
    gap: 12px;
    align-items: baseline;
}

.ib-top--home .ib-topNews__date {
    font-size: .95em;
    opacity: .8;
    white-space: nowrap;
}

.ib-top--home .ib-topNews__link {
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
}

.ib-top--home .ib-topNews__link:hover {
    opacity: .75;
}

/* Column (CPT) */
.ib-lp--column .ib-column__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}

.ib-lp--column .ib-columnCard {
    margin-top: 0;
}

.ib-columnCard__meta {
    font-size: .95em;
    opacity: .8;
}

.ib-columnCard__title {
    margin-top: 10px;
}

.ib-columnCard__title a {
    color: inherit;
    text-decoration: none;
}

.ib-columnCard__title a:hover {
    text-decoration: underline;
}

.ib-column__pagination {
    margin-top: 18px;
}

.ib-lp--column .ib-column__pagination :where(.page-numbers) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    margin: 0 4px;
    border: 1px solid var(--color_border, currentColor);
    border-radius: 9999px;
    text-decoration: none;
    color: inherit;
}

.ib-lp--column .ib-column__pagination :where(.page-numbers.current) {
    background: var(--ib-lp-ink);
    color: var(--ib-lp-paper);
    border-color: var(--ib-lp-ink);
}

/* Service LP base */
.ib-lp {
    padding: 0;
    --ib-lp-max-width: 1040px;
    --ib-lp-radius: 14px;
    --ib-lp-card-pad-y: 26px;
    --ib-lp-card-pad-x: 26px;
    --ib-lp-ink: #000;
    --ib-lp-paper: #fff;
}

.ib-lp .ib-container {
    max-width: var(--ib-lp-max-width);
}

.ib-lp .ib-section {
    padding: 28px 0;
}

.ib-lp > section > .ib-container {
    border: 1px solid var(--color_border, currentColor);
    background: var(--ib-lp-paper);
    border-radius: var(--ib-lp-radius);
    padding: var(--ib-lp-card-pad-y) var(--ib-lp-card-pad-x);
}

.ib-lp > section > .ib-container {
    border-top-width: 3px;
    border-top-color: var(--ib-lp-ink);
}

.ib-lp > section.ib-lp__cta > .ib-container {
    border-top-width: 1px;
    border-top-color: var(--color_border, currentColor);
}

.ib-lp__hero {
    border-bottom: none;
    background: transparent;
}

.ib-lp__hero h1 {
    margin: 0;
}

.ib-lp__hero h1,
.ib-lp__heroTitle {
    font-size: clamp(1.9rem, 2.6vw, 2.7rem);
    line-height: 1.2;
}

.ib-lp :where(h2) {
    margin: 0;
    font-size: clamp(1.35rem, 1.6vw, 1.7rem);
    line-height: 1.25;
    padding-left: 12px;
    border-left: 4px solid var(--ib-lp-ink);
}

.ib-lp :where(h3) {
    margin: 24px 0 0;
    font-size: 1.15em;
    line-height: 1.35;
}

.ib-lp :where(h2) + :where(p, ul, ol, div, table) {
    margin-top: 14px;
}

.ib-lp :where(h3) + :where(p, ul, ol, div, table) {
    margin-top: 10px;
}

.ib-lp :where(p) {
    max-width: 62em;
}

.ib-lp > section > .ib-container > :where(p:first-child) {
    margin-top: 0;
}

.ib-lp > section > .ib-container > :where(h2:first-child, h1:first-child) {
    margin-top: 0;
}

.ib-lp__lead {
    margin: 14px 0 0;
    max-width: 52em;
    font-size: 1.08em;
    line-height: 1.8;
}

.ib-lp__note {
    margin: 12px 0 0;
    font-size: .95em;
    opacity: .85;
}

.ib-lp__box {
    border: 1px solid var(--color_border, currentColor);
    background: var(--ib-lp-paper);
    border-radius: var(--ib-lp-radius);
    padding: 18px 20px;
    margin-top: 16px;
}

.ib-lp__box {
    border-top-width: 2px;
    border-top-color: var(--ib-lp-ink);
}

.ib-lp__box :where(p) {
    margin: 10px 0 0;
}

.ib-lp__box :where(p:first-child) {
    margin-top: 0;
}

.ib-lp__list {
    margin: 14px 0 0;
    padding-left: 1.15em;
}

.ib-lp__list li {
    margin: 8px 0;
}

.ib-lp__cta {
    background: var(--color_bg2, transparent);
}

.ib-lp__cta .ib-container {
    text-align: center;
}

.ib-lp__cta .ib-actions {
    justify-content: center;
}

.ib-lp__cta :where(p) {
    margin-left: auto;
    margin-right: auto;
}

/* Make CTA links look like buttons (scoped to LP only) */
.ib-lp .ib-actions .c-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 12px 18px;
    border-radius: 9999px;
    border: 1px solid var(--ib-lp-ink);
    background: var(--ib-lp-ink);
    color: var(--ib-lp-paper);
    font-weight: 700;
    text-decoration: none;
}

.ib-lp .ib-actions .c-btn:hover {
    background: transparent;
    color: var(--ib-lp-ink);
}

.ib-lp .ib-actions .c-btn + .c-btn {
    background: var(--ib-lp-paper);
    color: var(--ib-lp-ink);
}

.ib-lp .ib-actions .c-btn + .c-btn:hover {
    background: var(--ib-lp-ink);
    color: var(--ib-lp-paper);
}

.ib-lp .ib-actions {
    margin-top: 22px;
}

/* Lists: make bullets cleaner (scoped to LP) */
.ib-lp :where(ul.ib-lp__list) {
    list-style: none;
    padding-left: 0;
}

.ib-lp :where(ul.ib-lp__list) > li {
    position: relative;
    padding-left: 18px;
}

.ib-lp :where(ul.ib-lp__list) > li::before {
    content: '–';
    position: absolute;
    left: 0;
    top: 0;
    opacity: .65;
}

/* Tasks with short descriptions (scoped to LP) */
.ib-lp__tasks {
    list-style: none;
    padding-left: 0;
    margin: 16px 0 0;
    display: grid;
    gap: 10px;
}

.ib-lp__tasks > li {
    padding: 12px 14px;
    border: 1px solid var(--color_border, currentColor);
    border-radius: calc(var(--ib-lp-radius) - 4px);
    background: var(--ib-lp-paper);
}

.ib-lp__taskDesc {
    display: inline-block;
    margin-top: 6px;
    opacity: .9;
}

/* Phase blocks */
.ib-lp__phaseList {
    display: grid;
    gap: 14px;
    margin-top: 18px;
    counter-reset: ibphase;
}

.ib-lp__phase {
    border: 1px solid var(--color_border, currentColor);
    border-radius: var(--ib-lp-radius);
    background: var(--ib-lp-paper);
    padding: 18px 20px;
    border-top-width: 2px;
    border-top-color: var(--ib-lp-ink);
    counter-increment: ibphase;
}

.ib-lp__phaseTitle {
    margin: 0;
}

.ib-lp__phaseTitle::before {
    content: 'フェーズ' counter(ibphase) '｜';
    display: inline-block;
    margin-right: 8px;
    font-size: .9em;
    opacity: .75;
}

/* Steps flow (ordered) */
.ib-lp__steps {
    list-style: none;
    padding: 0;
    margin: 18px 0 0;
    counter-reset: ibstep;
}

.ib-lp__steps > li {
    counter-increment: ibstep;
    display: grid;
    grid-template-columns: 3ch 1fr;
    column-gap: 14px;
    row-gap: 6px;
    padding: 14px 0;
    border-top: 1px solid var(--color_border, currentColor);
}

.ib-lp__steps > li:first-child {
    border-top: none;
}

.ib-lp__steps > li::before {
    content: counter(ibstep, decimal-leading-zero);
    font-weight: 700;
    opacity: .75;
    line-height: 1.2;
}

.ib-lp__stepTitle {
    grid-column: 2;
    font-weight: 700;
}

.ib-lp__stepDesc {
    grid-column: 2;
    margin: 0;
    opacity: .9;
}

/* Grid/Columns blocks */
.ib-lp__grid {
    display: grid;
    gap: 14px;
    margin-top: 18px;
}

.ib-lp__grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ib-lp__cols {
    margin-top: 18px;
}

.ib-lp__cols--2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ib-lp__col {
    border: 1px solid var(--color_border, currentColor);
    border-radius: var(--ib-lp-radius);
    background: var(--ib-lp-paper);
    padding: 18px 20px;
    border-top-width: 2px;
    border-top-color: var(--ib-lp-ink);
}

.ib-lp__col :where(h3) {
    margin-top: 0;
}

/* FAQ */
.ib-faq {
    display: grid;
    gap: 12px;
    margin-top: 18px;
}

.ib-faq__item {
    border: 1px solid var(--color_border, currentColor);
    border-radius: var(--ib-lp-radius);
    background: var(--ib-lp-paper);
    padding: 16px 18px;
}

.ib-faq__q {
    margin: 0;
    font-size: 1.05em;
    line-height: 1.4;
}

.ib-faq__q::before {
    content: 'Q.';
    display: inline-block;
    margin-right: 10px;
    font-weight: 700;
    letter-spacing: .02em;
}

.ib-faq__a {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--color_border, currentColor);
}

.ib-faq__a :where(p) {
    margin: 0;
}

/* News (category: news) */
.ib-lp--news .ib-news__grid {
    grid-template-columns: 1fr;
}

.ib-lp--news .ib-news__grid .ib-lp__box {
    margin-top: 0;
}

.ib-newsCard__meta {
    font-size: .95em;
    opacity: .8;
}

.ib-newsCard__title {
    margin-top: 10px;
}

.ib-newsCard__title a {
    color: inherit;
    text-decoration: none;
}

.ib-newsCard__title a:hover {
    text-decoration: underline;
}

.ib-newsCard__excerpt :where(p) {
    margin: 10px 0 0;
}

.ib-newsCard__actions {
    margin-top: 14px;
}

.ib-newsCard__link {
    display: inline-block;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
}

.ib-newsCard__link:hover {
    opacity: .75;
}

.ib-news__pagination {
    margin-top: 18px;
}

.ib-lp--news .ib-news__pagination :where(.page-numbers) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    margin: 0 4px;
    border: 1px solid var(--color_border, currentColor);
    border-radius: 9999px;
    text-decoration: none;
    color: inherit;
}

.ib-lp--news .ib-news__pagination :where(.page-numbers.current) {
    background: var(--ib-lp-ink);
    color: var(--ib-lp-paper);
    border-color: var(--ib-lp-ink);
}

.ib-cta {
    padding-top: 0;
    border-top: 1px solid var(--color_border, currentColor);
}

.ib-cta__inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

@media (max-width: 767px) {
    .ib-section {
        padding: 36px 0;
    }

    .ib-lp .ib-section {
        padding: 18px 0;
    }

    .ib-lp__hero h1,
    .ib-lp__heroTitle {
        font-size: clamp(1.7rem, 5.2vw, 2.1rem);
    }

    .ib-lp {
        --ib-lp-card-pad-y: 20px;
        --ib-lp-card-pad-x: 18px;
    }

    .ib-lp :where(h2) {
        padding-left: 10px;
        border-left-width: 3px;
    }

    .ib-lp__grid--2,
    .ib-lp__cols--2 {
        grid-template-columns: 1fr;
    }

    .ib-twoCol {
        grid-template-columns: 1fr;
    }

    .ib-grid--2x2,
    .ib-grid--3 {
        grid-template-columns: 1fr;
    }
}

