* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    background-color: #ffffff;
    scroll-behavior: smooth;
}

body {
    font-family: 'Noto Sans JP', sans-serif;
    overflow-x: hidden;
    background: transparent;
}

/* =====================
   Base
   ===================== */
img { display: block; max-width: 100%; }

.trans {
    transition: opacity 0.26s ease;
    opacity: 1;
    text-decoration: none;
}
.trans:hover {
    opacity: 0.8;
}

/* ============================================================
   Printing セクション（https://ic-lab.net/creative/ #printing の完全移植）
   creative.css（fcvanillaテーマ）の該当ルールを、サイト側の
   html{font-size:625% / 13.333vw}（1rem=100px相当）の仕組みに依存せず
   px・vwへ換算して移植。ブレークポイントは元サイトに合わせ768px。
   ============================================================ */
.md { }
.sm { }
@media print, (min-width: 768px) {
    .sm { display: none !important; }
}
@media only screen and (max-width: 767.98px) {
    .md { display: none !important; }
}

/* Header Spacer（ページ独自のFVタイトル帯に合わせて実ヘッダー高さ分だけ確保） */
.header-spacer {
    height: 60px;
    background: #fff;
}
@media (min-width: 768px) {
    .header-spacer { height: 68px; }
}

.section-creative-printing .wrapper {
    margin-right: auto;
    margin-left: auto;
}
@media print, (min-width: 768px) {
    .section-creative-printing .wrapper { width: 800px; }
    .section-creative-printing { padding-top: 100px; margin-bottom: 82px; }
}
@media only screen and (max-width: 767.98px) {
    .section-creative-printing .wrapper { padding-right: 6.933vw; padding-left: 6.933vw; }
    .section-creative-printing { padding-top: 40px; }
}

/* ---- 共通見出し（アイ・シー・ラボの印刷物制作の強み／対応印刷物一覧） ---- */
.title-common-tertiary { font-weight: 600; text-align: center; }
.title-common-tertiary .text-english {
    display: inline-block;
    position: relative;
    color: #231815;
    font-family: 'M PLUS 1', sans-serif;
    line-height: 1.2;
}
.title-common-tertiary .text-english::after,
.title-common-tertiary .text-english::before {
    content: '';
    position: absolute;
    top: 50%;
    height: 1px;
    background: #231815;
}
.title-common-tertiary .text-english::after { left: 0; }
.title-common-tertiary .text-english::before { right: 0; }
.title-common-tertiary .text-japanese { display: block; }
@media print, (min-width: 768px) {
    .title-common-tertiary .text-english { margin-bottom: 1px; padding: 0 87px; font-size: 32px; }
    .title-common-tertiary .text-english::after,
    .title-common-tertiary .text-english::before { width: 60px; margin-top: 1px; }
    .title-common-tertiary .text-japanese { font-size: 10px; }
}
@media only screen and (max-width: 767.98px) {
    .title-common-tertiary .text-english { margin-bottom: .4vw; padding: 0 14.933vw; font-size: 6.533vw; }
    .title-common-tertiary .text-english::after,
    .title-common-tertiary .text-english::before { width: 11.867vw; margin-top: 1px; }
    .title-common-tertiary .text-japanese { font-size: 2.8vw; }
}

/* ---- printing-top（FV：Printing / 印刷物制作） ---- */
.printing-top .section-title { text-align: center; }
.printing-top .section-title span { display: block; }
.printing-top .section-title .title-english {
    font-family: 'M PLUS 1', sans-serif;
    font-weight: 500;
    line-height: 1;
}
.printing-top .section-title .title-japan { letter-spacing: .1em; }
@media print, (min-width: 768px) {
    .printing-top {
        min-height: 70vw;
        background: url(img/creative/printing_img_01.jpg) top center/cover no-repeat;
    }
    .printing-top .section-title .title-english { margin-bottom: -2px; font-size: 35px; }
    .printing-top .section-title .title-japan { font-size: 13px; }
}
@media (min-width: 767.98px) and (max-width: 1080px) {
    .printing-top {
        min-height: 665px;
        background: url(img/creative/printing_img_01.jpg) top -54px center/cover no-repeat;
    }
}
@media only screen and (max-width: 767.98px) {
    .printing-top {
        min-height: 88.667vw;
        background: url(img/creative/sp/printing_img_01.jpg) top -3.067vw center/cover no-repeat;
    }
    .printing-top .section-title .title-english { margin-bottom: -2px; font-size: 6.533vw; }
    .printing-top .section-title .title-japan { font-size: 2.8vw; }
}

/* ---- printing-production（印刷物制作の強み 3項目） ---- */
.printing-production .text-english { font-family: unset; letter-spacing: .1em; }
.printing-production .sub-title-production { color: #251814; font-weight: 600; text-align: center; }
.printing-production .production-list { padding-left: 0; list-style-type: none; }
.printing-production .production-item { display: flex; }
.printing-production .production-item:nth-child(2n+2) .content-left { order: 2; }
.printing-production .title-content { font-feature-settings: "palt"; font-weight: 600; letter-spacing: .05em; }
.printing-production .text-content { margin-bottom: 0; color: #251814; letter-spacing: .1em; font-feature-settings: "palt"; }
@media print, (min-width: 768px) {
    .printing-production { padding-top: 74px; }
    .printing-production .title-common-tertiary { margin-bottom: 44px; }
    .printing-production .text-english { font-size: 25px; }
    .printing-production .sub-title-production { margin-bottom: 71px; font-size: 25px; }
    .printing-production .production-item { align-items: flex-start; justify-content: space-between; margin-bottom: 90px; padding: 0 81px 0 45px; }
    .printing-production .production-item:nth-child(1) .content-image { margin-top: -19px; }
    .printing-production .production-item:nth-child(2n+2) { padding-right: 0; }
    .printing-production .production-item.is-modify { padding-right: 56px; }
    .printing-production .content-left { flex-shrink: 0; width: 376px; padding-right: 35px; }
    .printing-production .title-content { margin-bottom: 10px; font-size: 18px; line-height: 1.7222222222; }
    .printing-production .text-content { padding-right: 15px; font-size: 16px; line-height: 1.6923076923; }
}
@media only screen and (max-width: 767.98px) {
    .printing-production { padding-top: 9.867vw; }
    .printing-production .title-common-tertiary { margin-bottom: 13.067vw; }
    .printing-production .text-english { font-size: 4.667vw; line-height: 1.3714285714; }
    .printing-production .sub-title-production { margin-bottom: 12.933vw; font-size: 4.667vw; line-height: 1.7428571429; }
    .printing-production .content-image { width: 61.2vw; margin: 0 auto 8.933vw; }
    .printing-production .content-image img { width: 100%; height: auto; }
    .printing-production .production-item { flex-direction: column; margin-bottom: 11.2vw; }
    .printing-production .production-item:nth-child(1) .content-image { width: 52vw; }
    .printing-production .content-left { order: 2; }
    .printing-production .title-content { margin-bottom: 1.733vw; font-size: 16px; line-height: 1.7222222222; text-align: center; }
    .printing-production .text-content { padding: 0 1.6vw; font-size: 14px; line-height: 1.6666666667; }
}

/* ---- printing-video（動画でアイ・シー・ラボの強みをcheck！） ---- */
.printing-video .text-english { font-family: unset; }
.printing-video .text-video { text-align: center; }
.printing-video .image-video { display: block; border: solid 1px #000; }
@media print, (min-width: 768px) {
    .printing-video { padding-top: 24px; }
    .printing-video .title-common-tertiary { margin-bottom: 10px; }
    .printing-video .text-english { font-size: 25px; }
    .printing-video .text-video { margin-bottom: 24px; font-size: 14px; }
    .printing-video .image-video { width: 641px; margin: 0 auto; }
}
@media only screen and (max-width: 767.98px) {
    .printing-video { padding-top: 12vw; }
    .printing-video .title-common-tertiary { margin: 0 -6.667vw 2.4vw; }
    .printing-video .text-english { font-size: 4.667vw; line-height: 1.3714285714; }
    .printing-video .text-video { margin-bottom: 8vw; font-size: 12px; }
    .printing-video .image-video { width: 76.8vw; margin: 0 auto; }
    .printing-video .image-video img { width: 100%; height: auto; }
}

/* ---- printing-materials（対応印刷物一覧） ---- */
.printing-materials .text-small { text-align: center; }
@media print, (min-width: 768px) {
    .printing-materials { padding-top: 107px; }
    .printing-materials .wrapper { width: 1065px; }
    .printing-materials .title-common-tertiary { margin-bottom: 7px; }
    .printing-materials .text-english { font-size: 25px; }
    .printing-materials .text-small { margin-bottom: 88px; font-size: 14px; }
}
@media only screen and (max-width: 767.98px) {
    .printing-materials { padding-top: 22.267vw; }
    .printing-materials .wrapper { padding-right: 3.5vw; padding-left: 3.5vw; }
    .printing-materials .title-common-tertiary { margin-bottom: 1.867vw; }
    .printing-materials .text-english { font-size: 4.667vw; }
    .printing-materials .text-small { margin-bottom: 15.467vw; font-size: 12px; }
}

/* ---- block-common-materials（対応印刷物一覧：カテゴリカード） ---- */
.block-common-materials .materials-list { display: flex; flex-wrap: wrap; padding-left: 0; list-style-type: none; }
.block-common-materials .materials-item { background-color: #f2f2f2; }
.block-common-materials .materials-item.item-store .materials-text,
.block-common-materials .materials-item.item-store span { background-color: #69cac9; }
.block-common-materials .materials-item.item-promotion .materials-text,
.block-common-materials .materials-item.item-promotion span { background-color: #f3971e; }
.block-common-materials .materials-item.item-work .materials-text,
.block-common-materials .materials-item.item-work span { background-color: #0071bc; }
.block-common-materials .materials-item.item-packaging .materials-text,
.block-common-materials .materials-item.item-packaging span { background-color: #999; }
.block-common-materials .materials-item.item-novelty .materials-text,
.block-common-materials .materials-item.item-novelty span { background-color: #e44144; }
.block-common-materials .materials-item.item-related .materials-text,
.block-common-materials .materials-item.item-related span { background-color: #a660a3; }
.block-common-materials .materials-item.item-other .materials-text,
.block-common-materials .materials-item.item-other span { background-color: #dbba2a; }
.block-common-materials .materials-title { display: flex; position: relative; align-items: center; color: #fff; letter-spacing: .1em; font-feature-settings: "palt"; }
.block-common-materials .materials-title span { display: block; width: 100%; background-color: #7ccd5e; }
.block-common-materials .materials-title .materials-icon { flex-shrink: 0; padding: 0; border-radius: 50%; }
.block-common-materials .list-note { font-feature-settings: "palt"; list-style-type: none; }
.block-common-materials .item-list { position: relative; letter-spacing: -.015em; }
.block-common-materials .item-list::before { content: ''; position: absolute; left: 0; border-radius: 50%; background-color: #000; }
@media print, (min-width: 768px) {
    .block-common-materials .materials-item { width: 232px; min-height: 324px; margin: 0 14px 92px; padding-top: 16px; padding-right: 20px; padding-bottom: 16px; border-radius: 5px; }
    .block-common-materials .materials-title { left: 0; width: 100%; margin: -32px auto 0; font-size: 18px; }
    .block-common-materials .materials-title span { margin-left: -8px; padding: 10px 1px 10px 20px; border-top-right-radius: 7px; border-bottom-right-radius: 7px; }
    .block-common-materials .materials-title .materials-text { margin-left: -13px; }
    .block-common-materials .materials-title .materials-icon { width: 57px; }
    .block-common-materials .list-note { padding-top: 7px; padding-right: 5px; padding-left: 24px; }
    .block-common-materials .item-list { margin-bottom: 2px; padding-left: 10px; line-height: 1.4615384615; }
    .block-common-materials .item-list::before { top: 6px; width: 8px; height: 8px; }
}
@media only screen and (max-width: 767.98px) {
    .block-common-materials .materials-list { justify-content: space-between; margin-bottom: 8.133vw; }
    .block-common-materials .materials-item { width: 43.37vw; min-width: 0; min-height: 43.2vw; margin: 0 1.3vw 14.667vw; padding-top: 12px; padding-bottom: 12px; border-radius: .933vw; }
    .block-common-materials .materials-title { left: 0; width: 100%; margin: -6.4vw auto 0; font-size: 14px; }
    .block-common-materials .materials-title span { margin-left: -1.733vw; padding: 1.733vw .133vw 2vw 4.133vw; border-top-right-radius: 1.333vw; border-bottom-right-radius: 1.333vw; }
    .block-common-materials .materials-title .materials-text { margin-left: -2.8vw; }
    .block-common-materials .materials-title .materials-icon { width: 12.5vw; }
    .block-common-materials .materials-title .materials-icon img { width: 100%; height: auto; }
    .block-common-materials .list-note { padding-top: 1.333vw; padding-left: 4.8vw; }
    .block-common-materials .item-list { padding-left: 1.733vw; font-size: 12px; line-height: 1.6153846154; overflow-wrap: break-word; }
    .block-common-materials .item-list::before { top: 1.333vw; width: 1.6vw; height: 1.6vw; }
}

/* =====================
   印刷物の実績はこちら（制作実績ボタン）
   ===================== */
.results-teaser {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: clamp(64px, 10vw, 112px);
}
.results-teaser-text {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(14px, 1.4vw, 18px);
    font-weight: 500;
    color: #251814;
    letter-spacing: .08em;
    margin-bottom: clamp(14px, 2vw, 20px);
}
.results-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #01375a;
    color: #fff;
    font-family: 'M PLUS 1', sans-serif;
    font-size: clamp(14px, 1.4vw, 17px);
    font-weight: 500;
    padding: 14px 40px;
    border-radius: 9999px;
    text-decoration: none;
    letter-spacing: .05em;
    transition: opacity .3s;
}
.results-cta-button:hover {
    opacity: .8;
}

/* =====================
   印刷費キャンペーン バナー
   movie ページの .contact-campaign-label / .contact-banner-* と同様のレイアウト
   ===================== */
.campaign-banner-section {
    background: #fff;
    padding: clamp(24px, 3.5vw, 48px) 24px clamp(60px, 8vw, 120px);
}
.campaign-banner-label {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: clamp(13px, 1.2vw, 16px);
    font-weight: 500;
    color: #251814;
    letter-spacing: .1em;
    text-align: center;
    margin-bottom: clamp(14px, 2vw, 22px);
}
.campaign-banner-wrap {
    display: flex;
    justify-content: center;
}
.campaign-banner-box {
    border: 5px solid #01375a;
    line-height: 0;
    display: inline-block;
    transition: opacity .2s;
}
.campaign-banner-box:hover {
    opacity: .8;
}
.campaign-banner-img {
    width: clamp(240px, 35vw, 337px);
    height: auto;
    display: block;
}
