
/**
Asitis Inc. Style Sheet
**/

@font-face {
    font-family: "Asitisfont";
    src: url("../fonts/Gloock-Regular.ttf") format("truetype");
}

:root {
    --asitis-color: #495831;
    --asitis-hover-color: #49583186;
    --primary-bright-color: #ffffff;
    --primary-dark-color: #000000;
    --light-grey-color: #e7e7e7;
    --primary-muted-color: #e9e9e4;
    --transparent-color: #00000000;

    --asitis-font-family: "Asitisfont", "Times New Roman", "Times", serif;
    --primary-font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Yu Gothic Medium", "Meiryo", "Times New Roman", "Times", serif;

    --primary-font-size: clamp(1rem, 1.4vw, 1.25rem);
    --title-font-size: clamp(1.75rem, 2.4vw, 2.2rem);
    --subject-font-size: clamp(1.25rem, 1.8vw, 1.5rem);
    --text-font-size: clamp(1rem, 1.45vw, 1.28rem);

    --useful-padding: 1rem;
    --useful-margin: 1rem;
    --content-wide-max-width: 1280px;

    /* =========================
        Header
    ========================= */

    --header-height-desktop: clamp(60px, 10vh, 160px);
    --header-height-mobile: clamp(60px, 5vh, 160px);
    --header-side-padding-desktop: 28px;
    --header-side-padding-mobile: 14px;
    --header-content-max-width: 100%;
    --header-grid-left-width: 1fr;
    --header-grid-center-width: auto;
    --header-grid-right-width: 1fr;
    --header-transition: 0.35s ease;
    --header-z-index: 1300;
    --header-hide-translate-y: -110%;
    --header-hide-opacity: 0;
    --header-show-opacity: 1;

    --header-brand-size: clamp(1rem, 2.2rem, 3.4rem);
    --header-brand-line-height: 1;
    --header-brand-letter-spacing: 0.04rem;

    --header-primary-nav-size: clamp(1rem, 1.05vw, 1.35rem);
    --header-primary-nav-line-height: 1.2;
    --header-primary-nav-letter-spacing: 0;
    --header-primary-nav-gap: clamp(10px, 2.8vw, 60px);

    --header-secondary-nav-size: clamp(0.92rem, 1.0vw, 1.08rem);
    --header-secondary-nav-line-height: 1.2;
    --header-secondary-nav-letter-spacing: 0;
    --header-secondary-nav-gap: 0;

    --header-brand-offset-y: 0px;
    --header-primary-nav-offset-x: clamp(-100px, 2vw, 100px);;
    --header-primary-nav-offset-y: 0px;
    --header-secondary-nav-offset-x: clamp(-100px, -3vw, 100px);
    --header-secondary-nav-offset-y: 0px;

    --header-bg-default: var(--primary-bright-color);
    --header-bg-transparent: var(--transparent-color);
    --header-bg-scrolled: var(--primary-bright-color);
    --header-text-color-dark: var(--primary-dark-color);
    --header-text-color-light: var(--primary-bright-color);
    --header-home-brand-color: var(--primary-bright-color);
    --header-home-nav-color: var(--primary-bright-color);
    --header-home-brand-color-scrolled: var(--primary-dark-color);
    --header-home-nav-color-scrolled: var(--primary-dark-color);
    --header-inner-brand-color: var(--primary-dark-color);
    --header-inner-nav-color: var(--primary-dark-color);

    --header-menu-button-size: 46px;
    --header-menu-line-width: 20px;
    --header-menu-line-height: 2px;
    --header-menu-line-top: 15px;
    --header-menu-line-middle: 22px;
    --header-menu-line-bottom: 15px;
    --header-menu-color-light: var(--primary-bright-color);
    --header-menu-color-dark: var(--primary-dark-color);
    --header-menu-z-index: 1307;
    --header-mobile-z-index: 1305;
    --header-mobile-nav-z-index: 1306;

    --header-sidemenu-z-index: 1200;
    --header-sidemenu-width: min(84vw, 360px);
    --header-sidemenu-padding-top: 84px;
    --header-sidemenu-padding-side: 24px;
    --header-sidemenu-padding-bottom: 24px;
    --header-sidemenu-bottom-height: 120px;
    --header-sidemenu-item-padding-y: 18px;
    --header-sidemenu-font-size: 1rem;
    --header-sidemenu-line-height: 1.4;


    /* =========================
        Business header
    ========================= */
    --business-header-right-gap: clamp(20px, 2vw, 34px);
    --business-header-right-size: var(--header-secondary-nav-size);
    --business-header-right-line-height: var(--header-secondary-nav-line-height);
    --business-header-right-letter-spacing: var(--header-secondary-nav-letter-spacing);
    --business-header-right-underline-offset: 2px;
    --business-header-right-offset-x: 0px;
    --business-header-right-offset-y: 0px;


    /* =========================
        footer
    ========================= */

    --footer-screen-height: 100vh;

    /* footer 全体の大箱 */
    --footer-pad-top: 0px;
    --footer-pad-bottom: 0px;
    --footer-pad-inline: 0px;

    /* 3領域の基準線 */
    --footer-rule-y: clamp(430px, 55vh, 520px);

    /* 左上 About 領域 */
    --footer-top-left-offset-x: clamp(34px, 6vw, 208px);
    --footer-top-left-offset-y: clamp(88px, 12vh, 146px);
    --footer-about-width: clamp(250px, 22vw, 360px);
    --footer-about-title-size: clamp(0.94rem, 1.1rem, 1.16rem);
    --footer-about-text-size: clamp(0.9rem, 0.98rem, 1.06rem);
    --footer-about-line-height: 1.18rem;
    --footer-about-text-gap: clamp(28px, 4.2vh, 48px);
    --footer-about-link-gap: clamp(44px, 8vh, 98px);
    --footer-about-link-indent: clamp(126px, 8vw, 172px);

    /* 右上リンク領域 */
    --footer-top-right-width: clamp(420px, 50vw, 2160px);
    --footer-top-right-height: clamp(250px, 52.5vh, 2160px);
    --footer-top-right-offset-x: clamp(34px, 6vw, 208px);
    --footer-top-right-offset-y: 0;

    --footer-links-offset-right: clamp(34px, 6vw, 208px);
    --footer-links-offset-top: clamp(96px, 24vh, 356px);
    --footer-links-row-gap: clamp(40px, 5.2vh, 64px);
    --footer-links-col-gap-top: clamp(30px, 8.4vw, 230px);
    --footer-links-col-gap-bottom: clamp(30px, 10vw, 230px);
    --footer-nav-size: clamp(0.94rem, 1.06rem, 1.2rem);

    /* インスタ */
    --footer-social-size: clamp(20px, 1.8vw, 50px);
    --footer-social-offset-right: clamp(34px, 4vw, 208px);
    --footer-social-offset-bottom: 0;

    /* 中央線 */
    --footer-rule-thickness: 1px;

    /* 下領域 */
    --footer-bottom-offset-top: clamp(4px, 1vh, 308px);
    --footer-brand-offset-top: clamp(4px, 14vh, 308px);
    --footer-brand-offset-left: clamp(4px, 6vw, 308px);
    --footer-brand-size: clamp(3.8rem, 9.4vw, 8.8rem);

    --footer-copy-offset-right: clamp(8px, 5vw, 148px);
    --footer-copy-offset-top: clamp(2px, 2.0vh, 48px);
    --footer-copy-size: clamp(0.82rem, 1.02rem, 1.2rem);

    /* Mobile */
    --footer-mobile-pad-top: clamp(28px, 5.2vh, 44px);
    --footer-mobile-pad-bottom: clamp(28px, 5.2vh, 44px);
    --footer-mobile-pad-x: clamp(24px, 7vw, 40px);

    --footer-mobile-about-title-size: clamp(1.05rem, 6vw, 1.8rem);
    --footer-mobile-about-title-gap: clamp(18px, 3.4vh, 24px);
    --footer-mobile-about-text-size: clamp(0.96rem, 4.5vw, 1.18rem);
    --footer-mobile-about-line-height: 1.58;
    --footer-mobile-about-text-gap: clamp(26px, 4.2vh, 34px);
    --footer-mobile-about-block-gap: clamp(34px, 5.4vh, 46px);
    --footer-mobile-about-link-size: clamp(1rem, 1.1rem, 1.5rem);

    --footer-mobile-links-block-gap: clamp(18px, 3vh, 66px);
    --footer-mobile-link-size: clamp(0.94rem, 1.0rem, 1.18rem);
    --footer-mobile-links-row-gap: clamp(18px, 3.2vh, 64px);
    --footer-mobile-links-col-gap-top: clamp(28px, 10vw, 54px);
    --footer-mobile-links-col-gap-bottom: clamp(18px, 6vw, 34px);

    --footer-mobile-social-size: clamp(24px, 7vw, 32px);
    --footer-mobile-social-gap-to-rule: clamp(2px, 1.8vh, 60px);

    --footer-mobile-rule-gap-top: 0px;
    --footer-mobile-rule-gap-bottom: clamp(2px, 1.8vh, 34px);

    --footer-mobile-bottom-gap: 0px;
    --footer-mobile-brand-size: clamp(1rem, 3.6rem, 6.6rem);
    --footer-mobile-brand-offset-top: clamp(0px, 8vh, 240px);
    --footer-mobile-brand-offset-left: clamp(0px, 0vw, 240px);
    --footer-mobile-copy-size: clamp(0.92rem, 0.96rem, 1.18rem);
    --footer-mobile-copyright-offset-top: clamp(0px, 1vh, 64px);
    --footer-mobile-copyright-offset-right: clamp(0px, 1vw, 64px);


    /* =========================
        Top
    ========================= */
    --home-hero-height: 100vh;
    --home-hero-image-position-x: 50%;
    --home-hero-image-position-y: 50%;
    --home-hero-link-right: clamp(18px, 4vw, 100px);
    --home-hero-link-bottom: clamp(18px, 6vh, 100px);
    --home-hero-link-size: clamp(14px, 0.96vw, 36px);
    --home-hero-meta-right: clamp(18px, 4vw, 100px);
    --home-hero-meta-bottom: clamp(22px, 5.6vh, 96px);
    --home-hero-meta-gap: clamp(10px, 1.6vh, 16px);
    --home-hero-meta-title-size: clamp(1rem, 1.02vw, 1.24rem);
    --home-hero-meta-title-line-height: 1.2;
    --home-hero-meta-debut-size: clamp(0.86rem, 0.84vw, 1rem);
    --home-hero-meta-debut-line-height: 1.15;
    --home-hero-autoplay-ms: 5500ms;
    --home-hero-fade-ms: 1600ms;
    --home-hero-transition-ease: ease;


    /* =========================
        The Collection
    ========================= */
    --collection-top-page-min-height: 100vh;
    --collection-top-top-padding: calc(var(--header-height-desktop) + clamp(20px, 16vh, 820px));
    --collection-top-bottom-padding: clamp(2px, 5vh, 52px);
    --collection-top-inline-padding: clamp(2px, 4vw, 680px);
    --collection-top-frame-max-width: min(100%, clamp(1120px, 86vw, 1560px));
    --collection-top-grid-columns: 4;
    --collection-top-grid-gap-x: clamp(8px, 3.0vw, 300px);
    --collection-top-grid-gap-y: clamp(10px, 4.0vh, 340px);
    --collection-top-card-media-aspect: 0.78 / 1;
    --collection-top-card-media-max-height: clamp(280px, 46vh, 520px);
    --collection-top-card-title-gap: clamp(2px, 1.6vh, 28px);
    --collection-top-card-title-size: clamp(0.96rem, 0.98vw, 1.08rem);
    --collection-top-card-title-line-height: 1.28;

    --collection-detail-hero-min-height: 100vh;
    --collection-detail-hero-top-padding: calc(var(--header-height-desktop) + 22px);
    --collection-detail-hero-bottom-padding: 18px;
    --collection-detail-hero-inline-padding: clamp(22px, 4.2vw, 72px);
    --collection-detail-hero-max-width: 1440px;
    --collection-detail-hero-media-fr: 1fr;
    --collection-detail-hero-content-fr: 0.9fr;
    --collection-detail-hero-grid-gap: clamp(26px, 6vw, 260px);
    --collection-detail-hero-image-max-width: 620px;
    --collection-detail-hero-image-max-height: 72vh;
    --collection-detail-hero-media-aspect: 0.82 / 1;
    --collection-detail-hero-text-max-width: 520px;
    --collection-detail-hero-text-offset-x: 0px;
    --collection-detail-hero-text-offset-y: 0px;
    --collection-detail-hero-content-top-padding: 0px;
    --collection-detail-title-size: clamp(1.6rem, 1.8vw, 2.4rem);
    --collection-detail-title-line-height: 1.02;
    --collection-detail-title-offset-x: 0px;
    --collection-detail-title-offset-y: clamp(2px, 2vh, 60px);
    --collection-detail-subtitle-gap: clamp(26px, 6vh, 260px);
    --collection-detail-subtitle-size: clamp(1.0rem, 1.2vw, 2.4rem);
    --collection-detail-subtitle-line-height: 1.28;
    --collection-detail-subtitle-offset-x: 0px;
    --collection-detail-subtitle-offset-y: 0px;
    --collection-detail-description-top-gap: clamp(26px, 4vh, 260px);
    --collection-detail-description-max-width: 100%;
    --collection-detail-description-size: clamp(0.98rem, 1.0vw, 1.8rem);
    --collection-detail-description-line-height: 1.3;
    --collection-detail-description-paragraph-gap: 32px;
    --collection-detail-partnership-top-gap: 72px;
    --collection-detail-partnership-max-width: 420px;
    --collection-detail-partnership-offset-x: clamp(26px, 12vw, 260px);
    --collection-detail-partnership-offset-y: 0px;
    --collection-detail-partnership-link-size: clamp(1rem, 1.08vw, 1.14rem);
    --collection-detail-partnership-text-gap: 14px;
    --collection-detail-partnership-text-size: clamp(0.94rem, 0.98vw, 1rem);
    --collection-detail-partnership-text-line-height: 1.8;
    
    --collection-detail-hero-top-padding-mobile: calc(var(--header-height-mobile) + 18px);
    --collection-detail-hero-bottom-padding-mobile: 36px;
    --collection-detail-hero-inline-padding-mobile: 2vw;
    --collection-detail-hero-image-max-width-mobile: 100%;
    --collection-detail-hero-image-max-height-mobile: none;
    --collection-detail-hero-text-max-width-mobile: 92vw;
    --collection-detail-title-size-mobile: clamp(1.2rem, 6.0vw, 4.4rem);
    --collection-detail-subtitle-size-mobile: clamp(1.2rem, 3.8vw, 4rem);
    --collection-detail-description-size-mobile: 1rem;
    --collection-detail-description-line-height-mobile: 1.5;
    --collection-detail-description-paragraph-gap-mobile: 24px;
    --collection-detail-description-max-width-mobile: 92vw;
    --collection-detail-partnership-top-gap-mobile: 44px;
    --collection-detail-partnership-max-width-mobile: 92vw;

    --collection-detail-label-min-height: 100vh;
    --collection-detail-label-bg: var(--primary-muted-color);
    --collection-detail-label-top-padding: clamp(42px, 16vh, 140px);
    --collection-detail-label-bottom-padding: clamp(56px, 10vh, 110px);
    --collection-detail-label-inline-padding: clamp(28px, 4.6vw, 68px);
    --collection-detail-label-max-width: 1440px;
    --collection-detail-label-body-max-width-mobile: 100%;
    --collection-detail-label-header-padding-top: 0px;
    --collection-detail-label-header-padding-bottom: 18px;
    --collection-detail-label-header-gap: 32px;
    --collection-detail-label-header-align-items: end;
    --collection-detail-label-title-size: clamp(1.6rem, 1.8vw, 2.4rem);
    --collection-detail-label-title-line-height: 1.05;
    --collection-detail-label-title-letter-spacing: 0;
    --collection-detail-label-title-left-offset: 0px;
    --collection-detail-label-title-top-offset: 0px;
    --collection-detail-cert-max-width: clamp(260px, 24vw, 360px);
    --collection-detail-cert-right-offset: 0px;
    --collection-detail-cert-top-offset: 0px;
    --collection-detail-cert-text-size: clamp(0.98rem, 1.2rem, 1.8rem);
    --collection-detail-cert-text-line-height: 1.6;
    --collection-detail-cert-font-weight: 600;
    --collection-detail-cert-max-width-mobile: 100%;
    --collection-detail-label-rule-thickness: 1px;
    --collection-detail-label-rule-color: var(--primary-dark-color);
    --collection-detail-label-rule-margin-top: 0px;
    --collection-detail-label-rule-margin-bottom: clamp(24px, 5vh, 40px);
    --collection-detail-label-body-max-width: min(760px, 100%);
    --collection-detail-label-body-top-offset: 0px;
    --collection-detail-label-text-size: clamp(0.98rem, 1.1rem, 1.8rem);
    --collection-detail-label-text-line-height: 1.4;

    /* =========================
        Philosophy 
    ========================= */
    --philosophy-page-min-height: 100vh;
    --philosophy-top-padding: calc(var(--header-height-desktop) + clamp(44px, 14vh, 220px));
    --philosophy-bottom-padding: clamp(40px, 10vh, 120px);
    --philosophy-inline-padding: clamp(20px, 4vw, 120px);
    --philosophy-content-max-width: clamp(120px, 100vw, 3440px);

    --philosophy-block-width: clamp(360px, 20vw, 870px);
    --philosophy-block-offset-x: clamp(0px, 1vw, 170px);
    --philosophy-block-offset-y: 0px;

    --philosophy-lead-size: clamp(1.0rem, 1.1rem, 1.32rem);
    --philosophy-lead-line-height: 1.3;

    --philosophy-body-size: clamp(0.92rem, 0.945rem, 1.05rem);
    --philosophy-body-line-height: 1.3;

    --philosophy-letter-spacing: 0;
    --philosophy-lead-gap: clamp(18px, 3vh, 60px);
    --philosophy-paragraph-gap: clamp(16px, 3vh, 42px);

    /* mobile */
    --philosophy-top-padding-mobile: calc(var(--header-height-mobile) + 28px);
    --philosophy-bottom-padding-mobile: 52px;
    --philosophy-inline-padding-mobile: 4px;
    --philosophy-block-width-mobile: clamp(160px, 84vw, 870px);
    --philosophy-block-offset-x-mobile: 0px;
    --philosophy-block-offset-y-mobile: 0px;

    --philosophy-lead-size-mobile: 1.08rem;
    --philosophy-lead-line-height-mobile: 1.48;

    --philosophy-body-size-mobile: 0.98rem;
    --philosophy-body-line-height-mobile: 1.5;

    --philosophy-lead-gap-mobile: 28px;
    --philosophy-paragraph-gap-mobile: 24px;


    /* =========================
        Sustainability 
    ========================= */
    --sustainability-hero-min-height: 100vh;
    --sustainability-hero-image-position-x: 50%;
    --sustainability-hero-image-position-y: 50%;
    --sustainability-hero-title-size: clamp(1rem, 2.0vw, 3.3rem);
    --sustainability-hero-title-line-height: 1.1;
    --sustainability-hero-title-letter-spacing: 0.03em;
    --sustainability-hero-title-offset-x: 0px;
    --sustainability-hero-title-offset-y: 0px;

    --sustainability-section-min-height: 100vh;
    --sustainability-section-inline-padding: clamp(28px, 2vw, 340px);
    --sustainability-section-max-width: clamp(28px, 50vw, 4960px);
    --sustainability-section-content-offset-x: -10vw;
    --sustainability-section-content-offset-y: 0px;

    --sustainability-intro-top-padding: calc(var(--header-height-desktop) + 34px);
    --sustainability-intro-bottom-padding: clamp(16px, 4vh, 96px);
    --sustainability-intro-width: clamp(520px, 56vw, 980px);

    --sustainability-intro-title-en-size: clamp(1.2rem, 1.6vw, 3.3rem);
    --sustainability-intro-title-en-line-height: 1.12;
    --sustainability-intro-title-ja-size: clamp(1.2rem, 1.6vw, 3.3rem);
    --sustainability-intro-title-ja-line-height: 1.12;
    --sustainability-intro-title-gap: 6px;

    --sustainability-text-block-width: clamp(200px, 46vw, 2180px);

    --sustainability-intro-lead-width: var(--sustainability-text-block-width);
    --sustainability-intro-lead-top-gap: clamp(22px, 6vh, 122px);
    --sustainability-intro-lead-size: clamp(0.98rem, 1.04rem, 1.4rem);
    --sustainability-intro-lead-line-height: 1.34;

    --sustainability-intro-topics-top-gap: clamp(26px, 6vh, 210px);
    --sustainability-intro-topics-gap: clamp(22px, 6vh, 210px);
    --sustainability-intro-topic-width: clamp(200px, 26vw, 420px);

    --sustainability-principles-top-padding: clamp(22px, 4vh, 210px);
    --sustainability-principles-bottom-padding: clamp(16px, 2vh, 96px);
    --sustainability-principles-width: clamp(300px, 26vw, 420px);
    --sustainability-principles-gap: clamp(10px, 6vh, 120px);

    --sustainability-closing-top-gap: clamp(22px, 4vh, 210px);
    --sustainability-closing-width: var(--sustainability-text-block-width);

    --sustainability-topic-title-size: clamp(0.9rem, 0.94rem, 1.8rem);
    --sustainability-topic-title-line-height: 1.25;
    --sustainability-topic-title-gap: clamp(2px, 2vh, 40px);
    --sustainability-topic-body-size: clamp(0.9rem, 0.94rem, 1.05rem);
    --sustainability-topic-body-line-height: 1.16;

    --sustainability-closing-title-size: clamp(0.9rem, 0.94rem, 1.8rem);
    --sustainability-closing-title-line-height: 1.25;
    --sustainability-closing-title-gap: clamp(2px, 2vh, 40px);
    --sustainability-closing-body-size: clamp(0.9rem, 0.94rem, 1.05rem);
    --sustainability-closing-body-line-height: 1.16;

    /* mobile */
    --sustainability-section-inline-padding-mobile: 0px;
    --sustainability-intro-top-padding-mobile: calc(var(--header-height-mobile) + 34px);
    --sustainability-intro-bottom-padding-mobile: 56px;
    --sustainability-hero-title-size-mobile: clamp(1rem, 4.0vw, 4.3rem);
    --sustainability-principles-top-padding-mobile: 44px;
    --sustainability-principles-bottom-padding-mobile: 64px;

    --sustainability-intro-title-en-size-mobile: clamp(1.1rem, 5.4vw, 3.6rem);
    --sustainability-intro-title-ja-size-mobile: clamp(1.1rem, 5.0vw, 3.6rem);

    --sustainability-intro-width-mobile: 96vw;
    --sustainability-intro-lead-width-mobile: 96vw;
    --sustainability-intro-topic-width-mobile: 96vw;
    --sustainability-principles-width-mobile: 96vw;
    --sustainability-closing-width-mobile: 96vw;

    --sustainability-topic-title-size-mobile: clamp(1.04rem, 4.0vw, 1.28rem);
    --sustainability-intro-topics-gap-mobile: 40px;
    --sustainability-principles-gap-mobile: 48px;
    --sustainability-closing-top-gap-mobile: 56px;

    --sustainability-intro-lead-size-mobile: clamp(0.98rem, 4.0vw, 1.28rem);
    --sustainability-intro-lead-line-height-mobile: 1.4;
    --sustainability-topic-body-size-mobile: clamp(0.96rem, 3.8vw, 1.06rem);
    --sustainability-topic-body-line-height-mobile: 1.4;
    --sustainability-closing-body-size-mobile: clamp(0.96rem, 3.8vw, 1.06rem);
    --sustainability-closing-body-line-height-mobile: 1.4;


    /* =========================
        Company 
    ========================= */
    --company-page-min-height: 100vh;
    --company-top-padding: calc(var(--header-height-desktop) + clamp(54px, 20vh, 250px));
    --company-bottom-padding: clamp(56px, 10vh, 120px);
    --company-inline-padding: clamp(20px, 4vw, 56px);
    --company-content-max-width: 1440px;

    --company-card-width: clamp(420px, 44vw, 760px);
    --company-card-offset-x: clamp(40px, 6vw, 120px);
    --company-card-offset-y: 6vh;

    --company-title-size: clamp(1rem, 1.4rem, 2.6rem);
    --company-title-line-height: 1.15;
    --company-title-letter-spacing: 0;
    --company-title-margin-bottom: clamp(4px, 4vh, 154px);

    --company-row-gap: clamp(18px, 1.8vh, 28px);
    --company-label-width: clamp(110px, 11vw, 180px);
    --company-label-gap: clamp(12px, 10vw, 100px);

    --company-label-size: clamp(1rem, 1.1rem, 1.16rem);
    --company-label-line-height: 1.45;
    --company-label-weight: 600;

    --company-value-size: clamp(1rem, 1.1rem, 1.16rem);
    --company-value-line-height: 1.45;
    --company-value-weight: 300;
    --company-brand-value-size: clamp(1.04rem, 1.18vw, 1.28rem);

    --company-page-min-height-mobile: 100vh;
    --company-top-padding-mobile: calc(var(--header-height-mobile) + 2vh);
    --company-bottom-padding-mobile: 56px;
    --company-inline-padding-mobile: 20px;
    --company-card-width-mobile: 92vw;
    --company-card-offset-x-mobile: 0px;
    --company-card-offset-y-mobile: 16vh;

    --company-title-size-mobile: clamp(1.04rem, 4.0vw, 4.8rem);
    --company-title-margin-bottom-mobile: 6vh;
    --company-row-gap-mobile: 3.2vh;
    --company-label-width-mobile: auto;
    --company-label-gap-mobile: 6px;
    --company-label-size-mobile: clamp(0.9rem, 3.2vw, 1.8rem);
    --company-value-size-mobile: clamp(0.9rem, 2.8vw, 1.8rem);
    --company-value-line-height-mobile: 1.5;
    --company-brand-value-size-mobile: clamp(0.9rem, 4.2vw, 1.8rem);

    /* =========================
        Contact
    ========================= */
    --contact-page-min-height: 100vh;
    --contact-top-padding: calc(var(--header-height-desktop) + clamp(20px, 4vh, 160px));
    --contact-bottom-padding: clamp(40px, 8vh, 100px);
    --contact-inline-padding: clamp(24px, 4vw, 56px);
    --contact-frame-max-width: clamp(920px, 78vw, 1920px);

    --contact-grid-gap: clamp(40px, 4vw, 70px);

    --contact-form-width: clamp(460px, 38vw, 1920px);
    --contact-form-offset-x: 4vw;
    --contact-form-offset-y: 0px;

    --contact-form-input-width: clamp(260px, 30vw, 1920px);

    --contact-lead-size: clamp(0.92rem, 0.98rem, 1rem);
    --contact-lead-line-height: 1.6;
    --contact-error-size: clamp(0.86rem, 0.9rem, 0.94rem);

    --contact-field-gap: 12px;
    --contact-label-size: clamp(0.92rem, 0.96rem, 0.98rem);
    --contact-text-size: clamp(0.9rem, 0.94rem, 0.96rem);
    --contact-input-height: 42px;
    --contact-textarea-height: 120px;
    --contact-select-arrow-offset-right: 14px;

    --contact-submit-width: clamp(220px, 18vw, 320px);
    --contact-submit-height: 40px;
    --contact-submit-font-size: 14px;

    --contact-note-size: clamp(0.70rem, 0.72rem, 0.88rem);
    --contact-note-line-height: 1.3;

    --contact-result-width: clamp(220px, 58vw, 4096px);
    --contact-result-offset-x: 0px;
    --contact-result-offset-y: 24vh;
    --contact-result-text-size: clamp(0.94rem, 0.98rem, 1rem);
    --contact-result-text-line-height: 1.3;

    /* =========================
        Legal
    ========================= */
    --legal-page-min-height: 100vh;
    --legal-top-padding: calc(var(--header-height-desktop) + clamp(2px, 2vh, 124px));
    --legal-bottom-padding: clamp(12px, 4vh, 96px);
    --legal-inline-padding: clamp(14px, 5vw, 94px);

    --legal-frame-max-width: clamp(140px, 60vw, 1920px);
    --legal-title-size: clamp(1rem, 1.2rem, 2rem);
    --legal-title-bottom-gap: clamp(22px, 4.0vh, 122px);

    --legal-content-width: clamp(100px, 42vw, 1920px);
    --legal-content-left-offset: 0px;

    --legal-block-gap: clamp(2px, 1.6vh, 64px);
    --legal-label-size: clamp(0.96rem, 0.96rem, 1.02rem);
    --legal-label-bottom-gap: 0;

    --legal-text-size: clamp(0.92rem, 0.96rem, 0.98rem);
    --legal-line-height: 1.1;

    /* mobile */
    --legal-top-padding-mobile: calc(var(--header-height-mobile) + 36px);
    --legal-bottom-padding-mobile: 64px;
    --legal-inline-padding-mobile: 2vw;

    --legal-frame-width-mobile: 96vw;
    --legal-content-width-mobile: 96vw;

    --legal-title-size-mobile: clamp(1.05rem, 5.2vw, 1.85rem);
    --legal-title-line-height-mobile: 1.35;
    --legal-title-bottom-gap-mobile: 36px;
    --legal-title-align-mobile: left;

    --legal-block-gap-mobile: 28px;
    --legal-label-size-mobile: clamp(1.08rem, 4.0vw, 1.36rem);
    --legal-label-line-height-mobile: 1.45;
    --legal-label-bottom-gap-mobile: 6px;

    --legal-text-size-mobile: clamp(0.96rem, 3.0vw, 1.08rem);
    --legal-line-height-mobile: 1.4;

    /* =========================
        Privacy Policy
    ========================= */
    --privacy-policy-page-min-height: var(--legal-page-min-height);
    --privacy-policy-top-padding: var(--legal-top-padding);
    --privacy-policy-bottom-padding: var(--legal-bottom-padding);
    --privacy-policy-inline-padding: var(--legal-inline-padding);

    --privacy-policy-frame-max-width: var(--legal-frame-max-width);
    --privacy-policy-title-size: var(--legal-title-size);
    --privacy-policy-title-bottom-gap: var(--legal-title-bottom-gap);

    --privacy-policy-content-width: var(--legal-content-width);
    --privacy-policy-content-left-offset: var(--legal-content-left-offset);

    --privacy-policy-block-gap: var(--legal-block-gap);
    --privacy-policy-label-size: var(--legal-label-size);
    --privacy-policy-label-bottom-gap: var(--legal-label-bottom-gap);

    --privacy-policy-text-size: var(--legal-text-size);
    --privacy-policy-line-height: var(--legal-line-height);

    /* mobile */
    --privacy-policy-top-padding-mobile: calc(var(--header-height-mobile) + 36px);
    --privacy-policy-bottom-padding-mobile: 64px;
    --privacy-policy-inline-padding-mobile: 2vw;

    --privacy-policy-frame-width-mobile: 96vw;
    --privacy-policy-content-width-mobile: 96vw;

    --privacy-policy-title-size-mobile: clamp(1.05rem, 5vw, 2rem);
    --privacy-policy-title-line-height-mobile: 1.35;
    --privacy-policy-title-bottom-gap-mobile: 36px;
    --privacy-policy-title-align-mobile: center;

    --privacy-policy-block-gap-mobile: 30px;
    --privacy-policy-label-size-mobile: clamp(1.08rem, 4.0vw, 1.36rem);
    --privacy-policy-label-line-height-mobile: 1.45;
    --privacy-policy-label-bottom-gap-mobile: 8px;

    --privacy-policy-text-size-mobile: clamp(0.96rem, 3.0vw, 1.08rem);
    --privacy-policy-line-height-mobile: 1.4;

    /* =========================
        Terms of Use
    ========================= */
    --terms-of-use-page-min-height: 100vh;
    --terms-of-use-top-padding: calc(var(--header-height-desktop) + clamp(80px, 35vh, 960px));
    --terms-of-use-bottom-padding: clamp(40px, 8vh, 120px);
    --terms-of-use-inline-padding: clamp(20px, 5vw, 100px);

    --terms-of-use-frame-max-width: clamp(200px, 70vw, 1920px);
    --terms-of-use-content-width: clamp(220px, 52vw, 980px);
    --terms-of-use-content-left-offset: 0px;
    --terms-of-use-content-top-offset: 0px;

    --terms-of-use-block-gap: clamp(12px, 2vh, 40px);
    --terms-of-use-label-size: clamp(1rem, 1.04rem, 1.14rem);
    --terms-of-use-label-bottom-gap: clamp(14px, 2vh, 24px);

    --terms-of-use-text-size: clamp(0.92rem, 0.96rem, 0.98rem);
    --terms-of-use-line-height: 1.1;

    /* mobile */
    --terms-of-use-top-padding-mobile: calc(var(--header-height-mobile) + 20vh);
    --terms-of-use-bottom-padding-mobile: 4vh;
    --terms-of-use-inline-padding-mobile: 2vw;

    --terms-of-use-frame-width-mobile: 96vw;
    --terms-of-use-content-width-mobile: 96vw;

    --terms-of-use-block-gap-mobile: 30px;
    --terms-of-use-label-size-mobile: clamp(1.08rem, 5.0vw, 1.36rem);
    --terms-of-use-label-line-height-mobile: 1.45;
    --terms-of-use-label-bottom-gap-mobile: 14px;

    --terms-of-use-text-size-mobile: clamp(0.96rem, 4.0vw, 1.08rem);
    --terms-of-use-line-height-mobile: 1.4;


    /* =========================
        Partnership
    ========================= */
    --partners-page-bg: var(--primary-bright-color);
    --partners-page-bg-alt: var(--primary-muted-color);
    --partners-page-text: var(--primary-dark-color);
    --partners-page-line: var(--primary-dark-color);

    --partners-page-screen-min-height: 100vh;
    --partners-page-screen2-min-height: 100vh;

    --partners-page-side-padding: clamp(24px, 4vw, 56px);

    /* 1画面目 */
    --partners-page-intro-box-width: clamp(360px, 60vw, 1720px);
    --partners-page-intro-offset-x: 10vw;
    --partners-page-intro-offset-y: -5vh;
    --partners-page-intro-title-size: clamp(1rem, 1.4rem, 2.5rem);
    --partners-page-intro-title-gap: clamp(20px, 2.8vh, 32px);
    --partners-page-intro-text-size: clamp(0.96rem, 1.0rem, 1.6rem);
    --partners-page-intro-line-height: 1.4;

    /* 2画面目の大箱 */
    --partners-page-forms-frame-width: clamp(720px, 76vw, 1100px);
    --partners-page-forms-frame-offset-x: clamp(-24px, -1vw, 0px);
    --partners-page-forms-frame-offset-y: 0px;
    --partners-page-forms-top-padding: clamp(48px, 7vh, 88px);
    --partners-page-forms-bottom-padding: clamp(56px, 9vh, 96px);

    /* 2画面目の4ブロック調整 */
    --partners-page-login-box-width: clamp(420px, 50vw, 1920px);
    --partners-page-login-box-offset-x: 0px;
    --partners-page-login-box-offset-y: 0px;

    --partners-page-signup-head-width: clamp(360px, 72vw, 1960px);
    --partners-page-signup-head-offset-x: 0px;
    --partners-page-signup-head-offset-y: 0px;

    --partners-page-signup-form-width: clamp(520px, 40vw, 760px);
    --partners-page-signup-form-offset-x: 0px;
    --partners-page-signup-form-offset-y: 0px;

    /* 共通タイトル */
    --partners-page-block-title-size: clamp(1rem, 1.2rem, 1.55rem);
    --partners-page-block-title-gap: clamp(4px, 2vh, 40px);
    --partners-page-block-text-size: clamp(0.95rem, 0.98rem, 1.02rem);
    --partners-page-block-text-line-height: 1.6;

    /* ログイン欄 */
    --partners-page-login-grid-width: clamp(220px, 40vw, 1920px);
    --partners-page-login-col-gap: clamp(20px, 3vw, 100px);
    --partners-page-login-row-gap: clamp(10px, 1.8vh, 100px);
    --partners-page-login-label-size: clamp(0.82rem, 0.86vw, 0.92rem);
    --partners-page-login-input-height: 34px;
    --partners-page-login-button-width: clamp(240px, 26vw, 820px);
    --partners-page-login-button-height: 28px;
    --partners-page-login-button-size: clamp(0.82rem, 0.86vw, 0.92rem);
    --partners-page-login-forgot-size: clamp(0.82rem, 0.84vw, 0.9rem);
    --partners-page-login-forgot-offset-x: 0px;
    --partners-page-login-forgot-offset-y: 10px;

    /* 申請欄 */
    --partners-page-signup-grid-col-gap: clamp(42px, 5vw, 74px);
    --partners-page-signup-grid-row-gap: clamp(18px, 2.2vh, 24px);
    --partners-page-signup-label-size: clamp(0.82rem, 0.86vw, 0.92rem);
    --partners-page-signup-input-height: 34px;
    --partners-page-signup-button-width: clamp(240px, 20vw, 320px);
    --partners-page-signup-button-height: 28px;
    --partners-page-signup-button-size: clamp(0.82rem, 0.86vw, 0.92rem);
    --partners-page-signup-actions-gap: 28px;

    /* 入力共通 */
    --partners-page-input-font-size: clamp(0.9rem, 0.94vw, 0.98rem);
    --partners-page-input-border-width: 1px;
    --partners-page-button-border-width: 1px;

    /* メッセージ */
    --partners-page-message-size: clamp(0.84rem, 0.88vw, 0.94rem);
    --partners-page-message-gap: 14px;

    /* =========================
        Business product detail
    ========================= */
    --business-product-detail-page-min-height: 100vh;
    --business-product-detail-top-padding: calc(var(--header-height-desktop) + clamp(28px, 6vh, 56px));
    --business-product-detail-bottom-padding: clamp(48px, 8vh, 84px);
    --business-product-detail-inline-padding: clamp(6px, 2vw, 82px);
    --business-product-detail-max-width: clamp(200px, 50vw, 4096px);
    
    --business-product-detail-media-offset-x: -12vw;
    --business-product-detail-media-offset-y: 0px;

    --business-product-detail-grid-media-fr: 0.7fr;
    --business-product-detail-grid-content-fr: 1fr;
    --business-product-detail-grid-gap: clamp(42px, 3vw, 220px);

    --business-product-detail-image-width: clamp(240px, 21vw, 310px);
    --business-product-detail-image-aspect: 0.82 / 1;

    --business-product-detail-content-max-width: 430px;
    --business-product-detail-content-offset-x: -12vw;
    --business-product-detail-content-offset-y: 0px;

    --business-product-detail-title-size: clamp(1.0rem, 1.2rem, 2.1rem);
    --business-product-detail-title-line-height: 1.08;

    --business-product-detail-subtitle-gap: clamp(8px, 1.0vh, 12px);
    --business-product-detail-subtitle-size: clamp(1rem, 1.06rem, 1.1rem);
    --business-product-detail-subtitle-line-height: 1.35;

    --business-product-detail-price-gap: clamp(42px, 6vh, 142px);
    --business-product-detail-price-size: clamp(0.98rem, 1.06rem, 1.1rem);
    --business-product-detail-price-line-height: 1.35;

    --business-product-detail-price-note-gap: 4px;
    --business-product-detail-price-note-size: clamp(0.88rem, 0.98rem, 1.1rem);
    --business-product-detail-price-note-line-height: 1.35;

    --business-product-detail-qty-gap: clamp(46px, 10vh, 200px);
    --business-product-detail-qty-size: clamp(0.92rem, 0.98rem, 1.0rem);
    --business-product-detail-qty-inline-gap: 16px;
    --business-product-detail-qty-button-size: clamp(0.92rem, 0.94vw, 0.98rem);

    --business-product-detail-cart-gap: 10px;
    --business-product-detail-cart-width: clamp(220px, 20vw, 600px);
    --business-product-detail-cart-height: clamp(22px, 5vh, 100px);
    --business-product-detail-cart-font-size: clamp(0.9rem, 0.94vw, 0.96rem);

    --business-product-detail-description-gap: clamp(24px, 3vh, 30px);
    --business-product-detail-description-width: 100%;
    --business-product-detail-description-size: clamp(0.92rem, 0.96rem, 0.98rem);
    --business-product-detail-description-line-height: 1.72;

    --business-product-detail-gtin-gap: 10px;
    --business-product-detail-gtin-size: clamp(0.92rem, 0.96rem, 0.98rem);
    --business-product-detail-gtin-color: #9a9a9a;

    --business-product-detail-link-gap: clamp(4px, 3vh, 30px);
    --business-product-detail-link-size: clamp(0.92rem, 0.96rem, 0.98rem);
    --business-product-detail-shipping-note-gap: 2px;
    --business-product-detail-shipping-note-size: clamp(0.88rem, 0.92rem, 0.94rem);
    --business-product-detail-shipping-note-line-height: 1.55;

    --business-product-detail-image-arrow-size: 26px;
    --business-product-detail-image-arrow-side-offset: 8px;

    --business-product-drawer-width: clamp(380px, 36vw, 470px);
    --business-product-drawer-desktop-gap: 0px;
    --business-product-drawer-item-thumb-width: clamp(96px, 8vw, 158px);
    --business-product-drawer-item-gap: clamp(18px, 2vw, 28px);
    --business-product-drawer-item-top-pad: clamp(28px, 12vh, 144px);
    --business-product-drawer-item-side-pad: clamp(26px, 2.4vw, 42px);
    --business-product-drawer-item-name-size: clamp(0.96rem, 1vw, 1.04rem);
    --business-product-drawer-item-price-size: clamp(0.94rem, 0.98vw, 1rem);
    --business-product-drawer-item-qty-size: clamp(0.94rem, 0.98vw, 1rem);
    --business-product-drawer-item-remove-size: clamp(0.94rem, 0.98vw, 1rem);

    --business-product-drawer-subtotal-pad-x: clamp(18px, 2.2vw, 32px);
    --business-product-drawer-subtotal-pad-y: clamp(18px, 2.8vh, 28px);
    --business-product-drawer-subtotal-size: clamp(0.96rem, 1vw, 1.02rem);

    --business-product-drawer-checkout-height: clamp(18px, 7vh, 180px);
    --business-product-drawer-checkout-size: clamp(0.96rem, 1vw, 1rem);

    --business-product-detail-top-padding-mobile: calc(var(--header-height-mobile) + 2vh);
    --business-product-detail-bottom-padding-mobile: 2vh;
    --business-product-detail-inline-padding-mobile: 2vw;
    --business-product-detail-grid-gap-mobile: 26px;

    --business-product-detail-max-width-mobile: 96vw;

    --business-product-detail-title-size-mobile: 1.3rem;
    --business-product-detail-subtitle-size-mobile: 0.98rem;
    --business-product-detail-price-size-mobile: 0.96rem;
    --business-product-detail-price-note-size-mobile: 0.84rem;
    --business-product-detail-qty-size-mobile: 0.92rem;
    --business-product-detail-cart-width-mobile: 96%;
    --business-product-detail-cart-height-mobile: 36px;
    --business-product-detail-cart-font-size-mobile: 0.92rem;
    --business-product-detail-description-size-mobile: 3.5vw;
    --business-product-detail-link-size-mobile: 0.94rem;
    --business-product-detail-shipping-note-size-mobile: 0.88rem;

    --business-product-drawer-top-mobile: 64px;

    /* =========================
        Business payment member
    ========================= */
    --business-payment-page-min-height: 100vh;
    --business-payment-top-padding: calc(var(--header-height-desktop) + clamp(4px, 2vh, 50px));
    --business-payment-bottom-padding: clamp(6px, 2vh, 60px);
    --business-payment-inline-padding: clamp(20px, 3.2vw, 44px);
    --business-payment-max-width: clamp(960px, 60vw, 1920px);

    --business-payment-grid-gap: clamp(26px, 3vw, 34px);
    --business-payment-left-col-width: 1fr;
    --business-payment-right-col-width: 1fr;

    --business-payment-panel-padding: clamp(16px, 1.6vw, 22px);
    --business-payment-panel-border: 1px solid #d8d8d8;

    --business-payment-title-size: clamp(1.02rem, 1.08vw, 1.12rem);
    --business-payment-text-size: clamp(0.86rem, 0.9vw, 0.92rem);
    --business-payment-note-size: clamp(0.74rem, 0.78vw, 0.8rem);

    --business-payment-info-label-width: clamp(26px, 7vw, 420px);
    --business-payment-info-row-gap: clamp(6px, 2vh, 200px);
    --business-payment-info-col-gap: clamp(6px, 1.6vw, 42px);

    --business-payment-method-gap: 10px;
    --business-payment-method-card-padding: 12px;
    --business-payment-method-title-size: clamp(0.9rem, 0.94vw, 0.96rem);
    --business-payment-method-note-size: clamp(0.74rem, 0.78vw, 0.8rem);

    --business-payment-paymentbox-top-gap: 14px;

    --business-payment-summary-top-gap: 16px;
    --business-payment-summary-gap: 6px;
    --business-payment-summary-total-size: clamp(0.96rem, 0.98vw, 1rem);

    --business-payment-product-thumb-width: 58px;
    --business-payment-product-thumb-aspect: 0.82 / 1;
    --business-payment-product-gap: 12px;
    --business-payment-product-name-size: clamp(0.9rem, 0.94vw, 0.96rem);
    --business-payment-product-desc-size: clamp(0.78rem, 0.8vw, 0.82rem);

    --business-payment-btn-height: 38px;
    --business-payment-btn-font-size: clamp(0.88rem, 0.9vw, 0.92rem);

    /* =========================
        Business registration
    ========================= */
    --business-registration-page-min-height: 100vh;
    --business-registration-top-padding: calc(var(--header-height-desktop) + clamp(6px, 2vh, 64px));
    --business-registration-bottom-padding: clamp(4px, 4vh, 74px);
    --business-registration-inline-padding: clamp(20px, 3vw, 44px);
    --business-registration-max-width: clamp(560px, 50vw, 1920px);
    --business-registration-content-offset-x: 0px;
    --business-registration-content-offset-y: 0px;

    --business-registration-title-size: clamp(1rem, 1.4rem, 2.5rem);
    --business-registration-title-gap: 10px;
    --business-registration-lead-size: clamp(0.9rem, 0.96rem, 0.98rem);
    --business-registration-lead-line-height: 1.3;

    --business-registration-card-gap: clamp(4px, 1.5vh, 74px);
    --business-registration-card-padding: 14px;
    --business-registration-card-border: 1px solid #d9d9d9;
    --business-registration-card-title-size: clamp(1rem, 0.98rem, 1.08rem);

    --business-registration-meta-label-width: clamp(60px, 12vw, 920px);
    --business-registration-meta-row-gap: clamp(4px, 1.0vh, 74px);
    --business-registration-meta-col-gap: clamp(2px, 2vw, 94px);
    --business-registration-meta-size: clamp(0.9rem, 0.94rem, 0.96rem);
    --business-registration-meta-line-height: 1.3;

    --business-registration-form-grid-gap: 16px;
    --business-registration-form-label-size: clamp(0.9rem, 0.94rem, 0.96rem);
    --business-registration-form-input-height: 42px;
    --business-registration-form-input-size: clamp(0.9rem, 0.94rem, 0.96rem);

    --business-registration-orders-top-gap: 8px;
    --business-registration-orders-head-size: clamp(0.78rem, 0.82vw, 0.84rem);
    --business-registration-orders-row-size: clamp(0.84rem, 0.9vw, 0.92rem);
    --business-registration-orders-row-padding-y: 10px;
    --business-registration-orders-grid: 0.8fr 0.9fr 1.8fr 0.8fr 0.9fr 0.9fr 0.9fr;

    --business-registration-actions-top-gap: 16px;

    --business-registration-orders-toggle-size: clamp(12px, 0.8vw, 14px);
    --business-registration-orders-toggle-line-size: clamp(5px, 0.34vw, 6px);
    --business-registration-orders-toggle-line-thickness: 1px;

    --business-registration-button-height: 42px;
    --business-registration-button-padding-x: 16px;
    --business-registration-button-font-size: 14px;
    --business-registration-button-border-width: 2px;

    /* =========================
        Business payment result
    ========================= */
    --business-payment-result-page-min-height: 100vh;
    --business-payment-result-top-padding: calc(var(--header-height-desktop) + clamp(10px, 1vh, 160px));
    --business-payment-result-bottom-padding: clamp(40px, 4vh, 96px);
    --business-payment-result-inline-padding: clamp(20px, 4vw, 60px);
    --business-payment-result-max-width: clamp(20px, 50vw, 1920px);

    --business-payment-result-hero-width: clamp(320px, 50vw, 1920px);
    --business-payment-result-hero-line-size: clamp(0.92rem, 1rem, 1.2rem);
    --business-payment-result-hero-line-height: 1.3;
    --business-payment-result-hero-gap: 0px;
    --business-payment-result-hero-actions-gap: 22px;
    --business-payment-result-hero-x: 18vw;
    --business-payment-result-hero-y: -4vh;

    --business-payment-result-panel-width: clamp(320px, 48vw, 760px);
    --business-payment-result-panel-padding: clamp(18px, 2vw, 28px);
    --business-payment-result-panel-border: 1px solid #d9d9d9;

    --business-payment-result-status-size: clamp(0.94rem, 0.98vw, 1rem);
    --business-payment-result-text-size: clamp(0.88rem, 0.92vw, 0.94rem);
    --business-payment-result-note-size: clamp(0.8rem, 0.84vw, 0.86rem);

    --business-payment-result-summary-gap: 10px;
    --business-payment-result-action-gap: 12px;
    --business-payment-result-button-height: 40px;
    --business-payment-result-button-font-size: 14px;


    /* =========================
        Mobile variable completion
    ========================= */
    --mobile-reset-transform: none;
    --mobile-full-width: 100%;
    --mobile-full-height: auto;
    --mobile-grid-one-column: 1fr;
    --mobile-text-align-left: left;


    --footer-mobile-about-link-indent-mobile: 40vw;
    --footer-mobile-about-link-line-height-mobile: 1.2;
    --footer-mobile-top-right-margin-mobile: 0 0 clamp(22px, 4vh, 44px) 0;
    --footer-mobile-bottom-column-gap: 16px;
    --sustainability-top-main-padding-mobile: calc(var(--header-height-mobile) + 20px);
    --sustainability-top-main-container-padding-x-mobile: 2vw;
    --sustainability-section-inner-width-mobile: 96vw;
    --terms-of-use-page-min-height-mobile: 100vh;

    /* Header mobile */
    --header-mobile-grid-template-columns: 48px 1fr 48px;
    --header-brand-size-mobile: clamp(1.8rem, 7vw, 2.3rem);
    --header-wrapper-padding-x-small: 12px;
    --header-menu-button-size-small: 44px;
    --header-menu-line-top-small: 14px;
    --header-menu-line-middle-small: 21px;
    --header-menu-line-bottom-small: 14px;
    --header-sidemenu-width-small: min(88vw, 340px);

    /* Footer legacy/mobile fallback */
    --footer-mobile-legacy-padding: 52px 22px 56px;
    --footer-mobile-legacy-home-intro-gap: 34px;
    --footer-mobile-legacy-home-text-gap: 22px;
    --footer-mobile-legacy-home-text-size: 15px;
    --footer-mobile-legacy-home-text-line-height: 1.45;
    --footer-mobile-legacy-home-link-gap: 26px;
    --footer-mobile-legacy-nav-gap: 28px;
    --footer-mobile-legacy-nav-row-gap: 14px;
    --footer-mobile-legacy-social-gap: 24px;
    --footer-mobile-legacy-brand-wrap-top: 34px;
    --footer-mobile-legacy-brand-size: clamp(4rem, 18vw, 6rem);
    --footer-mobile-legacy-copyright-top: 18px;

    --footer-small-canvas-pad-x: 18px;
    --footer-small-rule-width-extra: 36px;
    --footer-small-rule-margin-left: -18px;
    --footer-small-links-col-gap-top: clamp(18px, 7vw, 30px);
    --footer-small-links-col-gap-bottom: clamp(10px, 4vw, 18px);
    --footer-small-text-size: 14px;
    --footer-small-brand-size: clamp(3.8rem, 20vw, 5.2rem);
    --footer-small-legacy-padding: 42px 18px 48px;
    --footer-small-home-title-size: 17px;

    /* Home mobile */
    --home-hero-meta-mobile-right: 18px;
    --home-hero-meta-mobile-bottom: 18px;
    --home-hero-link-size-mobile: 14px;
    --home-hero-link-line-height-mobile: 1.4;
    --home-hero-debut-size-mobile: 12px;

    /* Shared old section mobile */
    --shared-top-main-padding-mobile: calc(var(--header-height-mobile) + 16px);
    --shared-top-main-font-size-mobile: 12px;
    --shared-top-main-container-padding-x-mobile: 20px;

    /* Collection top mobile */
    --collection-top-grid-columns-tablet: 3;
    --collection-top-frame-max-width-tablet: min(100%, clamp(960px, 88vw, 1260px));
    --collection-top-card-media-max-height-tablet: clamp(260px, 38vh, 420px);
    --collection-top-grid-columns-mobile: 2;
    --collection-top-top-padding-mobile: calc(var(--header-height-mobile) + 18px);
    --collection-top-inline-padding-mobile: 20px;
    --collection-top-bottom-padding-mobile: 28px;
    --collection-top-card-media-max-height-mobile: none;
    --collection-top-card-title-size-mobile: clamp(0.96rem, 1.8vw, 1.04rem);
    --collection-top-index-padding-mobile: calc(var(--header-height-mobile) + 18px) 20px 36px;
    --collection-top-grid-column-gap-mobile: 16px;
    --collection-top-grid-row-gap-mobile: 18px;
    --collection-top-grid-columns-small: 1fr;

    /* Collection detail mobile */
    --collection-detail-hero-grid-gap-mobile: 28px;
    --collection-detail-label-padding-mobile: 44px 20px 56px;
    --collection-detail-label-header-row-gap-mobile: 20px;
    --collection-detail-label-header-padding-bottom-mobile: 14px;
    --collection-detail-label-text-line-height-mobile: 1.8;

    /* Contact mobile */
    --contact-top-padding-mobile: calc(var(--header-height-mobile) + 24px);
    --contact-bottom-padding-mobile: 48px;
    --contact-inline-padding-mobile: 18px;
    --contact-frame-row-gap-mobile: 28px;
    --contact-submit-width-mobile: 100%;

    /* Partners mobile */
    --partners-page-intro-top-padding-mobile: calc(var(--header-height-mobile) + 24px);
    --partners-page-intro-inline-padding-mobile: 20px;
    --partners-page-intro-bottom-padding-mobile: 40px;
    --partners-page-intro-offset-x-mobile: 0px;
    --partners-page-intro-offset-y-mobile: 0px;
    --partners-page-forms-top-padding-mobile: 44px;
    --partners-page-forms-inline-padding-mobile: 20px;
    --partners-page-forms-bottom-padding-mobile: 56px;
    --partners-page-forms-frame-width-mobile: 100%;
    --partners-page-login-grid-columns-mobile: 1fr;
    --partners-page-actions-width-mobile: 100%;
    --partners-page-signup-grid-columns-mobile: 1fr;

    /* Business product detail mobile drawer */
    --business-product-drawer-width-mobile: 100%;
    --business-product-drawer-height-mobile: 50dvh;
    --business-product-drawer-max-height-mobile: 50dvh;
    --business-product-drawer-border-top-mobile: 1px solid #bdbdbd;
    --business-product-drawer-transform-closed-mobile: translateY(100%);
    --business-product-drawer-transform-open-mobile: translateY(0);
    --business-product-drawer-transition-mobile: transform 0.24s ease;
    --business-product-drawer-z-index-mobile: 1200;
    --business-product-drawer-sheet-height-mobile: 34px;
    --business-product-drawer-grid-template-rows-mobile: 34px minmax(0, 1fr) auto auto;
    --business-product-drawer-transform-collapsed-mobile: translateY(calc(100% - 34px));
    --business-product-drawer-sheet-line-top-mobile: 16px;
    --business-product-drawer-sheet-line-gap-mobile: 22px;
    --business-product-drawer-sheet-icon-top-mobile: 5px;
    --business-product-drawer-sheet-icon-size-mobile: 18px;
    --business-product-drawer-sheet-icon-inner-size-mobile: 8px;
    --business-product-drawer-sheet-icon-border-width-mobile: 1.5px;
    --business-product-drawer-sheet-icon-margin-mobile: -2px 0;
    --business-product-drawer-body-padding-mobile: 22px 28px 0;
    --business-product-drawer-footer-padding-mobile: 16px 20px;
    --business-product-drawer-actions-padding-mobile: 0 20px 18px;

    --business-product-lock-modal-top-mobile: calc(var(--header-height-mobile) + 10px);
    --business-product-lock-modal-width-mobile: calc(100vw - 24px);
    --business-product-lock-modal-padding-mobile: 18px 16px;
    --business-product-lock-modal-actions-gap-mobile: 10px;

    /* Business payment member mobile */
    --business-payment-breakpoint-mobile: 860px;
    --business-payment-grid-columns-mobile: 1fr;
    --business-payment-info-grid-columns-mobile: 1fr;
    --business-payment-info-row-gap-mobile: 4px;
    --business-payment-label-margin-top-mobile: 8px;

    /* Business registration mobile */
    --business-registration-top-padding-mobile: calc(var(--header-height-mobile) + 22px);
    --business-registration-inline-padding-mobile: 18px;
    --business-registration-bottom-padding-mobile: 42px;
    --business-registration-meta-grid-columns-mobile: 1fr;
    --business-registration-meta-row-gap-mobile: 2px;
    --business-registration-orders-table-wrap-padding-bottom-mobile: 4px;
    --business-registration-orders-table-min-width-mobile: 720px;

    /* Business payment result mobile */
    --business-payment-result-page-min-height-mobile: 100dvh;
    --business-payment-result-top-padding-mobile: calc(var(--header-height-mobile) + 24px);
    --business-payment-result-inline-padding-mobile: 2vw;
    --business-payment-result-bottom-padding-mobile: 42px;
    --business-payment-result-inner-max-width-mobile: none;
    --business-payment-result-stage-min-height-mobile: calc(100dvh - var(--header-height-mobile) - 80px);
    --business-payment-result-message-width-mobile: min(76vw, 720px);
    --business-payment-result-message-max-width-mobile: 96vw;
    --business-payment-result-message-line-size-mobile: clamp(1.0rem, 2.0vw, 1.25rem);
    --business-payment-result-message-line-height-mobile: 1.34;
    --business-payment-result-panel-width-mobile: 96vw;
    --business-payment-result-panel-padding-mobile: clamp(18px, 5vw, 26px);
    --business-payment-result-meta-size-mobile: clamp(0.9rem, 3.8vw, 1.05rem);
    --business-payment-result-meta-line-height-mobile: 1.45;
    --business-payment-result-heading-size-mobile: clamp(1.05rem, 5vw, 1.35rem);
    --business-payment-result-heading-line-height-mobile: 1.35;
    --business-payment-result-row-grid-mobile: minmax(0, 1fr) auto;
    --business-payment-result-row-column-gap-mobile: 14px;
    --business-payment-result-row-gap-mobile: 2px;
    --business-payment-result-row-size-mobile: clamp(0.96rem, 4.4vw, 1.18rem);
    --business-payment-result-row-line-height-mobile: 1.45;
    --business-payment-result-bank-note-size-mobile: clamp(0.86rem, 3.7vw, 1rem);
    --business-payment-result-bank-note-line-height-mobile: 1.75;
    --business-payment-result-button-min-height-mobile: 42px;
}

html,
body {
    width: 100%;
    margin: 0;
    padding: 0;
}

body {
    background: var(--primary-bright-color);
    color: var(--primary-dark-color);
    font-family: var(--primary-font-family);
    font-size: var(--primary-font-size);
    overflow-x: hidden;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

a {
    color: var(--primary-dark-color);
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

video {
    display: block;
}

ul,
ol {
    margin: 0;
    padding: 0;
}

li {
    list-style: none;
}

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    min-height: var(--header-height-desktop);
    z-index: var(--header-z-index);
    background: var(--header-bg-default);
    opacity: var(--header-show-opacity);
    transform: translateY(0);
    pointer-events: auto;
    overflow: visible;
    transition: transform var(--header-transition), opacity var(--header-transition), background-color var(--header-transition);
}

.site-header.is-visible {
    opacity: var(--header-show-opacity);
    transform: translateY(0);
}

.site-header.is-hidden {
    opacity: var(--header-hide-opacity);
    transform: translateY(var(--header-hide-translate-y));
    pointer-events: none;
}

.site-header a {
    text-decoration: none;
}

.site-header__wrapper {
    position: relative;
    display: grid;
    grid-template-columns: var(--header-grid-left-width) var(--header-grid-center-width) var(--header-grid-right-width);
    align-items: center;
    width: min(100%, var(--header-content-max-width));
    min-height: var(--header-height-desktop);
    margin: 0 auto;
    padding: 0 var(--header-side-padding-desktop);
    gap: 0;
}

.site-header__brand-wrap {
    grid-column: 2;
    justify-self: center;
    z-index: 3;
    transform: translateY(var(--header-brand-offset-y));
}

.site-header__brand {
    display: inline-block;
    color: var(--header-text-color-dark);
    font-family: var(--asitis-font-family);
    font-size: var(--header-brand-size);
    line-height: var(--header-brand-line-height);
    letter-spacing: var(--header-brand-letter-spacing);
    white-space: nowrap;
}

.site-header__brand:hover {
    opacity: 0.68;
}

.site-header__nav {
    display: block;
    min-width: 0;
    z-index: 2;
}

.site-header__nav--left {
    grid-column: 1;
    justify-self: start;
}

.site-header__nav--right {
    grid-column: 3;
    justify-self: end;
}

.site-header__primary-nav {
    transform: translate(var(--header-primary-nav-offset-x), var(--header-primary-nav-offset-y));
}

.site-header__secondary-nav {
    transform: translate(var(--header-secondary-nav-offset-x), var(--header-secondary-nav-offset-y));
}

.site-header__nav-list {
    display: flex;
    align-items: center;
    white-space: nowrap;
}

.site-header__nav-list--primary {
    gap: var(--header-primary-nav-gap);
}

.site-header__nav-list--secondary {
    gap: var(--header-secondary-nav-gap);
}

.site-header__nav-list li {
    margin: 0;
    padding: 0;
}

.site-header__nav-link {
    display: inline-block;
    color: var(--header-text-color-dark);
    font-family: var(--primary-font-family);
    font-weight: 300;
    transition: opacity 0.25s ease, color 0.25s ease;
}

.site-header__nav-link--primary {
    font-size: var(--header-primary-nav-size);
    line-height: var(--header-primary-nav-line-height);
    letter-spacing: var(--header-primary-nav-letter-spacing);
}

.site-header__nav-link--secondary {
    font-size: var(--header-secondary-nav-size);
    line-height: var(--header-secondary-nav-line-height);
    letter-spacing: var(--header-secondary-nav-letter-spacing);
}

.site-header__nav-link:hover {
    opacity: 0.68;
}

.site-header__mobile,
.site-header__start {
    display: none;
}

.site-header__mobile {
    position: relative;
    z-index: var(--header-mobile-z-index);
}

.site-header__start {
    z-index: calc(var(--header-sidemenu-z-index) + 5);
}

body.is-sidemenu-open .site-header {
    opacity: var(--header-show-opacity) !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
}

.sidemenu__sub {
    position: relative;
    z-index: var(--header-mobile-nav-z-index);
}

#menu_icon {
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: var(--header-menu-button-size);
    height: var(--header-menu-button-size);
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    z-index: var(--header-menu-z-index);
}

#menu_icon::before,
#menu_icon::after,
#menu_icon span {
    position: absolute;
    left: 50%;
    width: var(--header-menu-line-width);
    height: var(--header-menu-line-height);
    content: "";
    transform: translateX(-50%);
    background: var(--header-menu-color-dark);
    transition: background-color 0.25s ease, opacity 0.25s ease;
}

#menu_icon::before {
    top: var(--header-menu-line-top);
}

#menu_icon span {
    top: var(--header-menu-line-middle);
    font-size: 0;
    color: transparent;
}

#menu_icon::after {
    bottom: var(--header-menu-line-bottom);
}

.sidemenu__sub.active #menu_icon::before {
    top: var(--header-menu-line-top);
    transform: translateX(-50%);
}

.sidemenu__sub.active #menu_icon span {
    opacity: 1;
}

.sidemenu__sub.active #menu_icon::after {
    bottom: var(--header-menu-line-bottom);
    transform: translateX(-50%);
}

body.is-sidemenu-open #menu_icon::before,
body.is-sidemenu-open #menu_icon::after,
body.is-sidemenu-open #menu_icon span {
    background: var(--header-menu-color-dark) !important;
}

.sidemenu {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: var(--header-sidemenu-width);
    height: 100dvh;
    visibility: hidden;
    opacity: 0;
    transform: translateX(-100%);
    background: var(--primary-bright-color);
    transition: transform 0.3s ease-out, opacity 0.3s ease-out, visibility 0.3s ease-out;
    z-index: var(--header-sidemenu-z-index);
}

.sidemenu.active {
    visibility: visible;
    opacity: 1;
    transform: translateX(0);
}

.sidemenu__inner {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
    height: calc(100dvh - var(--header-sidemenu-bottom-height));
    padding: var(--header-sidemenu-padding-top) var(--header-sidemenu-padding-side) var(--header-sidemenu-padding-bottom);
    background: var(--primary-bright-color);
}

.sidemenu__inner ul,
.sidemenu__bottom ul {
    width: 100%;
}

.sidemenu__inner .nav__item,
.sidemenu__bottom .nav__item {
    border-bottom: none;
}

.sidemenu__inner .nav__item a,
.sidemenu__bottom .nav__item a {
    display: block;
    padding: var(--header-sidemenu-item-padding-y) 0;
    color: var(--primary-dark-color);
}

.sidemenu__inner dl,
.sidemenu__bottom dl {
    margin: 0;
    padding: 0;
    font-family: var(--primary-font-family);
    font-size: var(--header-sidemenu-font-size);
    line-height: var(--header-sidemenu-line-height);
    color: var(--primary-dark-color);
    font-weight: 300;
}

.sidemenu__bottom {
    display: flex;
    align-items: flex-end;
    width: 100%;
    height: var(--header-sidemenu-bottom-height);
    padding: 0 var(--header-sidemenu-padding-side) var(--header-sidemenu-padding-bottom);
    background: var(--primary-bright-color);
}


/* =========================
   Business header
========================= */
.site-header--business .site-header__secondary-nav--business {
    justify-self: end;
    min-width: 0;
    transform: translate(
        var(--business-header-right-offset-x),
        var(--business-header-right-offset-y)
    );
}

.site-header--business .site-header__nav-list--business {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: var(--business-header-right-gap);
    white-space: nowrap;
}

.site-header--business .site-header__business-item {
    margin: 0;
    padding: 0;
}

.site-header--business .site-header__business-item--company {
    min-width: 0;
}

.site-header--business .site-header__nav-link--business {
    display: inline-block;
    font-size: var(--business-header-right-size);
    line-height: var(--business-header-right-line-height);
    letter-spacing: var(--business-header-right-letter-spacing);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: var(--business-header-right-underline-offset);
    white-space: nowrap;
}

.site-header--business .site-header__business-item--company .site-header__nav-link--business {
    max-width: 100%;
}


/* =========================
   Footer
========================= */
.footer {
    width: 100%;
    height: var(--footer-screen-height);
    min-height: var(--footer-screen-height);
    padding: 0;
    background: var(--primary-bright-color);
    color: var(--primary-dark-color);
    font-family: var(--primary-font-family);
    overflow: hidden;
}

.footer__canvas {
    position: relative;
    width: 100%;
    height: 100%;
}

/* 左上領域 */
.footer__top-left {
    position: absolute;
    top: var(--footer-top-left-offset-y);
    left: var(--footer-top-left-offset-x);
    width: var(--footer-about-width);
    max-width: var(--footer-about-width);
}

.footer__about-title {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: var(--footer-about-title-size);
    line-height: 1.2;
    font-weight: 600;
    color: var(--primary-dark-color);
}

.footer__about-text {
    margin: var(--footer-about-text-gap) 0 0;
    width: 100%;
    font-family: var(--primary-font-family);
    font-size: var(--footer-about-text-size);
    line-height: var(--footer-about-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    text-align: justify;
    text-justify: inter-character;
}

.footer__about-link {
    display: inline-block;
    margin-top: var(--footer-about-link-gap);
    margin-left: var(--footer-about-link-indent);
    font-family: var(--primary-font-family);
    font-size: var(--footer-nav-size);
    line-height: 1.2;
    font-weight: 300;
    color: var(--primary-dark-color);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.footer__about-link:hover {
    opacity: 0.68;
}

/* 右上領域 */
.footer__top-right {
    position: absolute;
    top: var(--footer-top-right-offset-y);
    right: var(--footer-top-right-offset-x);
    width: var(--footer-top-right-width);
    height: var(--footer-top-right-height);
}

.footer__links-box {
    position: absolute;
    top: var(--footer-links-offset-top);
    right: var(--footer-links-offset-right);
    width: max-content;
    max-width: 100%;
    display: grid;
    justify-items: start;
    row-gap: var(--footer-links-row-gap);
}

.footer__links-row {
    display: grid;
    justify-content: start;
    align-items: center;
}

.footer__links-row--top {
    grid-template-columns: max-content max-content;
    column-gap: var(--footer-links-col-gap-top);
}

.footer__links-row--bottom {
    grid-template-columns: max-content max-content max-content;
    column-gap: var(--footer-links-col-gap-bottom);
}

.footer__links-row a,
.footer__cookie-button {
    display: inline-block;
    font-family: var(--primary-font-family);
    font-size: var(--footer-nav-size);
    line-height: 1.2;
    font-weight: 300;
    color: var(--primary-dark-color);
    text-decoration: none;
    white-space: nowrap;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    text-align: left;
    justify-self: start;
}

.footer__links-row a:hover,
.footer__cookie-button:hover {
    opacity: 0.68;
}

/* 右上領域の右下にインスタ */
.footer__social-box {
    display: none;
    position: absolute;
    right: var(--footer-social-offset-right);
    bottom: var(--footer-social-offset-bottom);
    width: var(--footer-social-size);
    height: var(--footer-social-size);
}

.footer__social-box a {
    display: inline-flex;
    width: 100%;
    height: 100%;
    color: var(--primary-dark-color);
    opacity: 0.72;
}

.footer__social-box a:hover {
    opacity: 0.68;
}

.footer__instagram-icon {
    width: 100%;
    height: 100%;
}

/* 中央線 */
.footer__rule {
    position: absolute;
    top: var(--footer-rule-y);
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    margin: 0;
    height: 1px;
    border: 0;
    border-top: var(--footer-rule-thickness) solid var(--primary-dark-color);
}

/* 下領域 */
.footer__bottom {
    position: absolute;
    top: calc(var(--footer-rule-y) + var(--footer-bottom-offset-top));
    left: 0;
    width: 100%;
    height: calc(100% - var(--footer-rule-y) - var(--footer-bottom-offset-top));
}

.footer__brand-box {
    position: relative;
    top: var(--footer-brand-offset-top);
    left: var(--footer-brand-offset-left);
}

.footer__brand {
    display: inline-block;
    color: var(--primary-dark-color);
    font-family: var(--asitis-font-family);
    font-size: var(--footer-brand-size);
    line-height: 0.84;
    letter-spacing: 0;
}

.footer__brand:hover {
    opacity: 0.68;
}

.footer__copy-box {
    position: absolute;
    top: var(--footer-copy-offset-top);
    right: var(--footer-copy-offset-right);
}

.footer__copyright {
    margin: 0;
    text-align: right;
    font-size: var(--footer-copy-size);
    line-height: 1.2;
    font-family: var(--primary-font-family);
    font-weight: 300;
    color: var(--primary-dark-color);
}

/* mobile */
@media screen and (max-width: 900px) {
    .footer {
        height: auto;
        min-height: auto;
        overflow: hidden;
    }

    .footer__canvas {
        position: relative;
        width: 100%;
        min-height: auto;
        padding: var(--footer-mobile-pad-top) var(--footer-mobile-pad-x) var(--footer-mobile-pad-bottom);
        display: grid;
        grid-template-columns: 1fr;
        row-gap: 0;
        box-sizing: border-box;
    }

    .footer__top-left,
    .footer__top-right,
    .footer__bottom,
    .footer__rule {
        position: static;
        width: 100%;
        max-width: none;
        height: auto;
        transform: none;
    }

    .footer__top-left {
        margin: 0 0 var(--footer-mobile-about-block-gap) 0;
    }

    .footer__about-title {
        margin: 0 0 var(--footer-mobile-about-title-gap) 0;
        font-size: var(--footer-mobile-about-title-size);
        line-height: 1.2;
    }

    .footer__about-text {
        margin: 0 0 var(--footer-mobile-about-text-gap) 0;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        font-size: var(--footer-mobile-about-text-size);
        line-height: var(--footer-mobile-about-line-height);
        white-space: normal;
        word-break: normal;
        overflow-wrap: anywhere;
    }

    .footer__about-link {
        margin-top: 0;
        margin-left: var(--footer-mobile-about-link-indent-mobile);
        font-size: var(--footer-mobile-about-link-size);
        line-height: var(--footer-mobile-about-link-line-height-mobile);
    }

    .footer__top-right {
        display: grid;
        row-gap: var(--footer-mobile-links-block-gap);
        margin: var(--footer-mobile-top-right-margin-mobile);
    }

    .footer__links-box {
        position: static;
        width: 100%;
        max-width: 100%;
        display: grid;
        justify-items: start;
        row-gap: var(--footer-mobile-links-row-gap);
    }

    .footer__links-row {
        width: 100%;
        display: grid;
        justify-content: start;
        align-items: center;
    }

    .footer__links-row--top {
        grid-template-columns: repeat(2, max-content);
        column-gap: var(--footer-mobile-links-col-gap-top);
        row-gap: 0;
    }

    .footer__links-row--bottom {
        grid-template-columns: repeat(3, max-content);
        column-gap: var(--footer-mobile-links-col-gap-bottom);
        row-gap: 0;
    }

    .footer__links-row a,
    .footer__cookie-button {
        font-size: var(--footer-mobile-link-size);
        line-height: 1.2;
        text-align: left;
        justify-self: start;
        white-space: nowrap;
    }

    .footer__social-box {
        position: static;
        width: 100%;
        height: auto;
        display: none;
        justify-content: flex-end;
        align-items: center;
        margin: 0 0 var(--footer-mobile-social-gap-to-rule) 0;
    }

    .footer__social-box a {
        width: var(--footer-mobile-social-size);
        height: var(--footer-mobile-social-size);
    }

    .footer__instagram-icon {
        width: 100%;
        height: 100%;
    }

    .footer__rule {
        width: calc(100% + (var(--footer-mobile-pad-x) * 2));
        margin: 0 0 var(--footer-mobile-rule-gap-bottom) calc(var(--footer-mobile-pad-x) * -1);
        border-top: var(--footer-rule-thickness) solid var(--primary-dark-color);
    }

    .footer__bottom {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        column-gap: var(--footer-mobile-bottom-column-gap);
        margin: 0;
    }

    .footer__brand-box {
        position: relative;
        min-width: 0;
        align-self: start;
        justify-self: start;
        top: var(--footer-mobile-brand-offset-top);
        left: var(--footer-mobile-brand-offset-left);
    }

    .footer__brand {
        font-size: var(--footer-mobile-brand-size);
        line-height: 0.84;
    }

    .footer__copy-box {
        position: relative;
        align-self: start;
        justify-self: start;
        top: var(--footer-mobile-copyright-offset-top);
        right: var(--footer-mobile-copyright-offset-right);
    }

    .footer__copyright {
        text-align: right;
        font-size: var(--footer-mobile-copy-size);
        line-height: 1.2;
        white-space: nowrap;
    }
}

@media screen and (max-width: 520px) {
    .footer__canvas {
        padding: var(--footer-mobile-pad-top) var(--footer-small-canvas-pad-x) var(--footer-mobile-pad-bottom);
    }

    .footer__rule {
        width: calc(100% + var(--footer-small-rule-width-extra));
        margin-left: var(--footer-small-rule-margin-left);
    }

    .footer__links-row--top {
        column-gap: var(--footer-small-links-col-gap-top);
    }

    .footer__links-row--bottom {
        column-gap: var(--footer-small-links-col-gap-bottom);
    }

    .footer__about-text,
    .footer__links-row a,
    .footer__cookie-button {
        font-size: var(--footer-small-text-size);
    }

    .footer__brand {
        font-size: var(--footer-small-brand-size);
    }
}

.cookie-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--primary-bright-color);
    color: var(--primary-dark-color);
    padding: 20px;
    z-index: 10000;
    display: none;
    font-size: 14px;
    font-family: var(--primary-font-family);
}

.cookie-banner-inner {
    flex: 1 1 60%;
    font-size: 14px;
    line-height: 1.6;
}

.cookie-banner-inner a {
    color: var(--primary-dark-color);
    text-decoration: underline;
}

.cookie-buttons {
    flex: 1 1 35%;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 10px;
}

.cookie-buttons button {
    padding: 10px 20px;
    font-size: 14px;
    border: none;
    cursor: pointer;
    color: var(--primary-bright-color);
    background-color: var(--primary-dark-color);
    font-family: var(--primary-font-family);
}

.cookie-modal {
    display: none !important;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.4);
    justify-content: center;
    align-items: center;
    z-index: 10001;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.cookie-modal.show {
    display: flex !important;
    visibility: visible;
    opacity: 1;
}

.cookie-modal-content {
    background: var(--primary-bright-color);
    padding: 20px 30px;
    border-radius: 8px;
    max-width: 90%;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    font-size: 15px;
    color: var(--primary-dark-color);
    font-family: var(--primary-font-family);
}

.cookie-modal-content h3 {
    margin-top: 0;
}

.modal-buttons {
    margin-top: 15px;
    text-align: right;
}

.modal-buttons button {
    background-color: var(--primary-dark-color);
    color: var(--primary-bright-color);
    border: none;
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    font-family: var(--primary-font-family);
}

#home .site-header {
    background: var(--header-bg-transparent);
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

#home .site-header__brand,
#home .site-header__nav-link {
    color: var(--header-home-brand-color);
}

#home #menu_icon::before,
#home #menu_icon::after,
#home #menu_icon span {
    background: var(--header-menu-color-light);
}

#home .site-header.is-scrolled {
    background: var(--header-bg-scrolled);
}

#home .site-header.is-scrolled .site-header__brand,
#home .site-header.is-scrolled .site-header__nav-link {
    color: var(--header-home-brand-color-scrolled);
}

#home .site-header.is-scrolled #menu_icon::before,
#home .site-header.is-scrolled #menu_icon::after,
#home .site-header.is-scrolled #menu_icon span {
    background: var(--header-menu-color-dark);
}

#home .site-header .sidemenu__sub.active #menu_icon::before,
#home .site-header .sidemenu__sub.active #menu_icon::after,
#home .site-header .sidemenu__sub.active #menu_icon span {
    background: var(--header-menu-color-dark);
}

#home .home-page {
    width: 100%;
    margin: 0;
    padding: 0;
    background: var(--primary-bright-color);
}

#home .Top_main_area {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
    background: var(--primary-bright-color);
}

#home .Top_main_container1 {
    position: relative;
    width: 100%;
    height: var(--home-hero-height);
    min-height: var(--home-hero-height);
    overflow: hidden;
    background: var(--primary-dark-color);
}

#home .Top_main_container1::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.10) 0%,
        rgba(0, 0, 0, 0.18) 45%,
        rgba(0, 0, 0, 0.10) 100%
    );
    pointer-events: none;
    z-index: 1;
}

#home .Top_main_image1 {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

#home .Top_main_image1 a {
    display: block;
    width: 100%;
    height: 100%;
}

#home .Top_main_image1 img,
#home .Top_main_image1 video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--home-hero-image-position-x) var(--home-hero-image-position-y);
}

#home .Top_main_collection {
    position: absolute;
    right: var(--home-hero-meta-right);
    bottom: var(--home-hero-meta-bottom);
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--home-hero-meta-gap);
}

#home .home-hero-meta__link {
    color: var(--primary-bright-color);
    font-family: var(--primary-font-family);
    font-size: var(--home-hero-meta-title-size);
    font-weight: 300;
    line-height: var(--home-hero-meta-title-line-height);
    letter-spacing: 0.03em;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
    white-space: nowrap;
}

#home .home-hero-meta__link:hover {
    opacity: 0.72;
}

#home .home-hero-meta__debut {
    margin: 0;
    color: var(--primary-bright-color);
    font-family: var(--primary-font-family);
    font-size: var(--home-hero-meta-debut-size);
    font-weight: 300;
    line-height: var(--home-hero-meta-debut-line-height);
    letter-spacing: 0.02em;
    white-space: nowrap;
}

#home .Top_main_container1.home-hero-slider {
    isolation: isolate;
}

#home .Top_main_image1.home-hero-slide {
    opacity: 0;
    z-index: 0;
    pointer-events: none;
    transition: opacity var(--home-hero-fade-ms) var(--home-hero-transition-ease), transform var(--home-hero-fade-ms) var(--home-hero-transition-ease), filter var(--home-hero-fade-ms) var(--home-hero-transition-ease);
    will-change: opacity, transform, filter;
}

#home .Top_main_image1.home-hero-slide.is-active {
    opacity: 1;
    z-index: 0;
}

#home .Top_main_container1.home-hero-slider--fade .home-hero-slide {
    transform: scale(1);
    filter: none;
}

#home .Top_main_container1.home-hero-slider--fade-zoom .home-hero-slide {
    transform: scale(1.04);
    filter: none;
}

#home .Top_main_container1.home-hero-slider--fade-zoom .home-hero-slide.is-active {
    transform: scale(1);
}

#home .Top_main_container1.home-hero-slider--fade-blur .home-hero-slide {
    transform: scale(1.02);
    filter: blur(10px);
}

#home .Top_main_container1.home-hero-slider--fade-blur .home-hero-slide.is-active {
    transform: scale(1);
    filter: blur(0);
}

#home .Top_main_container1.home-hero-slider--film-dissolve .home-hero-slide {
    transform: scale(1.015);
    filter: blur(6px) saturate(0.96);
}

#home .Top_main_container1.home-hero-slider--film-dissolve .home-hero-slide.is-active {
    transform: scale(1);
    filter: blur(0) saturate(1);
}

#home .Top_main_container1.home-hero-slider::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    z-index: 2;
    transition: opacity 180ms ease;
    background-image: radial-gradient(circle at 20% 30%, rgba(255,255,255,0.08) 0 1px, transparent 1px), radial-gradient(circle at 70% 65%, rgba(255,255,255,0.06) 0 1px, transparent 1px), radial-gradient(circle at 40% 80%, rgba(255,255,255,0.05) 0 1px, transparent 1px);
    background-size: 160px 160px, 220px 220px, 180px 180px;
    mix-blend-mode: screen;
}

@keyframes homeHeroFilmGrain {
    0% { transform: translate(0, 0); }
    25% { transform: translate(-0.6%, 0.4%); }
    50% { transform: translate(0.5%, -0.3%); }
    75% { transform: translate(-0.3%, -0.5%); }
    100% { transform: translate(0, 0); }
}

#about_us .Top_main_area,
#company_information .Top_main_area,
#contact_us .Top_main_area,
#in_preparation .Top_main_area,
#sustainability .Top_main_area {
    padding-top: calc(var(--header-height-desktop) + 32px);
    background: var(--primary-bright-color);
}

#about_us .Top_main_container,
#company_information .Top_main_container,
#contact_us .Top_main_container,
#in_preparation .Top_main_container,
#sustainability .Top_main_container {
    width: min(100%, var(--content-wide-max-width));
    margin: 0 auto;
    padding-left: 48px;
    padding-right: 48px;
}

#about_us,
#company_information,
#contact_us,
#in_preparation,
#sustainability,
#collection_top,
#collection_detail,
#business_products_top {
    color: var(--primary-dark-color);
}

#about_us .site-header__brand,
#about_us .site-header__nav-link,
#company_information .site-header__brand,
#company_information .site-header__nav-link,
#contact_us .site-header__brand,
#contact_us .site-header__nav-link,
#in_preparation .site-header__brand,
#in_preparation .site-header__nav-link,
#sustainability .site-header__brand,
#sustainability .site-header__nav-link,
#collection_top .site-header__brand,
#collection_top .site-header__nav-link,
#collection_detail .site-header__brand,
#collection_detail .site-header__nav-link,
#business_products_top .site-header__brand {
    color: var(--header-inner-brand-color);
}

#about_us #menu_icon::before,
#about_us #menu_icon::after,
#about_us #menu_icon span,
#company_information #menu_icon::before,
#company_information #menu_icon::after,
#company_information #menu_icon span,
#contact_us #menu_icon::before,
#contact_us #menu_icon::after,
#contact_us #menu_icon span,
#in_preparation #menu_icon::before,
#in_preparation #menu_icon::after,
#in_preparation #menu_icon span,
#sustainability #menu_icon::before,
#sustainability #menu_icon::after,
#sustainability #menu_icon span,
#collection_top #menu_icon::before,
#collection_top #menu_icon::after,
#collection_top #menu_icon span,
#collection_detail #menu_icon::before,
#collection_detail #menu_icon::after,
#collection_detail #menu_icon span {
    background: var(--header-menu-color-dark);
}

/* collection top/detail, philosophy, sustainability, company sections retained */
#collection_top .collection-index-page,
#collection_detail .collection-detail-page,
#about_us .philosophy-page,
#sustainability .sustainability-page,
#company_information .company-page,
#business_products_top .collection-index-page {
    width: 100%;
    background: var(--primary-bright-color);
}

#collection_top .collection-index,
#business_products_top .collection-index {
    min-height: var(--collection-top-page-min-height);
    padding: var(--collection-top-top-padding) var(--collection-top-inline-padding) var(--collection-top-bottom-padding);
}

#collection_top .collection-index__inner,
#business_products_top .collection-index__inner {
    width: 100%;
    max-width: var(--collection-top-frame-max-width);
    margin: 0 auto;
}

#collection_top .collection-grid,
#business_products_top .collection-grid {
    display: grid;
    grid-template-columns: repeat(var(--collection-top-grid-columns), minmax(0, 1fr));
    column-gap: var(--collection-top-grid-gap-x);
    row-gap: var(--collection-top-grid-gap-y);
    align-items: start;
}

#collection_top .collection-card,
#business_products_top .collection-card {
    display: block;
    color: var(--primary-dark-color);
}

#collection_top .collection-card__image-wrap,
#business_products_top .collection-card__image-wrap {
    width: 100%;
    aspect-ratio: var(--collection-top-card-media-aspect);
    max-height: var(--collection-top-card-media-max-height);
    overflow: hidden;
    background: #f5f5f5;
}

#collection_top .collection-card__image,
#business_products_top .collection-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transition: transform 0.35s ease;
}

#collection_top .collection-card:hover .collection-card__image,
#business_products_top .collection-card:hover .collection-card__image {
    transform: scale(1.02);
}

#collection_top .collection-card__body,
#business_products_top .collection-card__body {
    padding-top: var(--collection-top-card-title-gap);
}

#collection_top .collection-card__title,
#business_products_top .collection-card__title {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: var(--collection-top-card-title-size);
    line-height: var(--collection-top-card-title-line-height);
    font-weight: 600;
    color: var(--primary-dark-color);
}

#collection_top .collection-grid__empty,
#business_products_top .collection-grid__empty {
    grid-column: 1 / -1;
}

#collection_top .collection-grid__empty p,
#business_products_top .collection-grid__empty p {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: 1rem;
    line-height: 1.7;
    color: var(--primary-dark-color);
}

#collection_detail .collection-detail-hero {
    min-height: var(--collection-detail-hero-min-height);
    padding: var(--collection-detail-hero-top-padding) var(--collection-detail-hero-inline-padding) var(--collection-detail-hero-bottom-padding);
    background: var(--primary-bright-color);
}

#collection_detail .collection-detail-hero__inner {
    width: 100%;
    max-width: var(--collection-detail-hero-max-width);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, var(--collection-detail-hero-media-fr)) minmax(0, var(--collection-detail-hero-content-fr));
    gap: var(--collection-detail-hero-grid-gap);
    align-items: start;
}

#collection_detail .collection-detail-hero__media-box {
    width: 100%;
    max-width: var(--collection-detail-hero-image-max-width);
    justify-self: start;
}

#collection_detail .collection-detail-hero__media-box img {
    width: 100%;
    max-height: var(--collection-detail-hero-image-max-height);
    aspect-ratio: var(--collection-detail-hero-media-aspect);
    object-fit: cover;
    object-position: center center;
    display: block;
    background: #f5f5f5;
}

#collection_detail .collection-detail-hero__content-box {
    display: flex;
    flex-direction: column;
    max-width: var(--collection-detail-hero-text-max-width);
    min-height: min(76vh, 820px);
    padding-top: var(--collection-detail-hero-content-top-padding);
    transform: translate(var(--collection-detail-hero-text-offset-x), var(--collection-detail-hero-text-offset-y));
}

#collection_detail .collection-detail-hero__heading-box {
    margin-bottom: 0;
}

#collection_detail .collection-detail-hero__title {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: var(--collection-detail-title-size);
    line-height: var(--collection-detail-title-line-height);
    font-weight: 600;
    color: var(--primary-dark-color);
    transform: translate(var(--collection-detail-title-offset-x), var(--collection-detail-title-offset-y));
}

#collection_detail .collection-detail-hero__subtitle {
    margin: var(--collection-detail-subtitle-gap) 0 0;
    font-family: var(--primary-font-family);
    font-size: var(--collection-detail-subtitle-size);
    line-height: var(--collection-detail-subtitle-line-height);
    font-weight: 600;
    color: var(--primary-dark-color);
    transform: translate(var(--collection-detail-subtitle-offset-x), var(--collection-detail-subtitle-offset-y));
}

#collection_detail .collection-detail-hero__description-box {
    width: min(100%, var(--collection-detail-description-max-width));
    margin-top: var(--collection-detail-description-top-gap);
}

#collection_detail .collection-detail-hero__description-text {
    white-space: pre-wrap;
    word-break: normal;
    overflow-wrap: break-word;
    font-family: var(--primary-font-family);
    font-size: var(--collection-detail-description-size);
    line-height: var(--collection-detail-description-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#collection_detail .collection-detail-hero__partnership-box {
    width: min(100%, var(--collection-detail-partnership-max-width));
    margin-top: auto;
    padding-top: var(--collection-detail-partnership-top-gap);
    transform: translate(var(--collection-detail-partnership-offset-x), var(--collection-detail-partnership-offset-y));
}

#collection_detail .collection-detail-hero__partnership-link {
    display: inline-block;
    font-family: var(--primary-font-family);
    font-size: var(--collection-detail-partnership-link-size);
    line-height: 1.2;
    font-weight: 600;
    color: var(--primary-dark-color);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

#collection_detail .collection-detail-hero__partnership-text {
    margin: var(--collection-detail-partnership-text-gap) 0 0;
    font-family: var(--primary-font-family);
    font-size: var(--collection-detail-partnership-text-size);
    line-height: var(--collection-detail-partnership-text-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#collection_detail .collection-detail-label {
    min-height: var(--collection-detail-label-min-height);
    padding: var(--collection-detail-label-top-padding) var(--collection-detail-label-inline-padding) var(--collection-detail-label-bottom-padding);
    background: var(--collection-detail-label-bg);
}

#collection_detail .collection-detail-label__inner {
    width: 100%;
    max-width: var(--collection-detail-label-max-width);
    margin: 0 auto;
}

#collection_detail .collection-detail-label__header {
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: var(--collection-detail-label-header-gap);
    align-items: var(--collection-detail-label-header-align-items);
    padding-top: var(--collection-detail-label-header-padding-top);
    padding-bottom: var(--collection-detail-label-header-padding-bottom);
}

#collection_detail .collection-detail-label__title {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: var(--collection-detail-label-title-size);
    line-height: var(--collection-detail-label-title-line-height);
    font-weight: 600;
    letter-spacing: var(--collection-detail-label-title-letter-spacing);
    color: var(--primary-dark-color);
    transform: translate(var(--collection-detail-label-title-left-offset), var(--collection-detail-label-title-top-offset));
}

#collection_detail .collection-detail-label__certification-box {
    width: auto;
    max-width: var(--collection-detail-cert-max-width);
    padding: 0;
    border: none;
    justify-self: end;
    margin-right: var(--collection-detail-cert-right-offset);
    transform: translateY(var(--collection-detail-cert-top-offset));
}

#collection_detail .collection-detail-label__certification-text {
    white-space: pre-wrap;
    word-break: normal;
    overflow-wrap: break-word;
    font-family: var(--primary-font-family);
    font-size: var(--collection-detail-cert-text-size);
    line-height: var(--collection-detail-cert-text-line-height);
    font-weight: var(--collection-detail-cert-font-weight);
    color: var(--primary-dark-color);
    text-align: left;
}

#collection_detail .collection-detail-label__rule {
    margin: var(--collection-detail-label-rule-margin-top) 0 var(--collection-detail-label-rule-margin-bottom);
    height: 0;
    border: 0;
    border-top: var(--collection-detail-label-rule-thickness) solid var(--collection-detail-label-rule-color);
}

#collection_detail .collection-detail-label__body {
    max-width: var(--collection-detail-label-body-max-width);
    transform: translateY(var(--collection-detail-label-body-top-offset));
}

#collection_detail .collection-detail-label__body-text {
    white-space: pre-wrap;
    word-break: normal;
    overflow-wrap: break-word;
    font-family: var(--primary-font-family);
    font-size: var(--collection-detail-label-text-size);
    line-height: var(--collection-detail-label-text-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

/* =========================
   Philosophy page
========================= */
#about_us .philosophy-page {
    width: 100%;
    background: var(--primary-bright-color);
}

#about_us .philosophy-page__viewport {
    min-height: var(--philosophy-page-min-height);
    padding:
        var(--philosophy-top-padding)
        var(--philosophy-inline-padding)
        var(--philosophy-bottom-padding);
    background: var(--primary-bright-color);
}

#about_us .philosophy-page__inner {
    width: 100%;
    max-width: var(--philosophy-content-max-width);
    margin: 0 auto;
    display: flex;
    justify-content: center;
}

#about_us .philosophy-page__content {
    width: min(100%, var(--philosophy-block-width));
    transform: translate(
        var(--philosophy-block-offset-x),
        var(--philosophy-block-offset-y)
    );
    text-align: justify;
    text-justify: inter-character;
}

#about_us .philosophy-page__lead {
    margin: 0;
    width: 100%;
    font-family: var(--primary-font-family);
    font-size: var(--philosophy-lead-size);
    line-height: var(--philosophy-lead-line-height);
    letter-spacing: var(--philosophy-letter-spacing);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#about_us .philosophy-page__body-block {
    width: 100%;
    margin-top: var(--philosophy-lead-gap);
}

#about_us .philosophy-page__body {
    margin: 0;
    width: 100%;
    font-family: var(--primary-font-family);
    font-size: var(--philosophy-body-size);
    line-height: var(--philosophy-body-line-height);
    letter-spacing: var(--philosophy-letter-spacing);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#about_us .philosophy-page__body + .philosophy-page__body {
    margin-top: var(--philosophy-paragraph-gap);
}

@media screen and (max-width: 900px) {
    #about_us .philosophy-page__viewport {
        min-height: auto;
        padding:
            var(--philosophy-top-padding-mobile)
            var(--philosophy-inline-padding-mobile)
            var(--philosophy-bottom-padding-mobile);
    }

    #about_us .philosophy-page__content {
        width: min(100%, var(--philosophy-block-width-mobile));
        transform: translate(
            var(--philosophy-block-offset-x-mobile),
            var(--philosophy-block-offset-y-mobile)
        );
    }

    #about_us .philosophy-page__lead {
        font-size: var(--philosophy-lead-size-mobile);
        line-height: var(--philosophy-lead-line-height-mobile);
    }

    #about_us .philosophy-page__body-block {
        margin-top: var(--philosophy-lead-gap-mobile);
    }

    #about_us .philosophy-page__body {
        font-size: var(--philosophy-body-size-mobile);
        line-height: var(--philosophy-body-line-height-mobile);
    }

    #about_us .philosophy-page__body + .philosophy-page__body {
        margin-top: var(--philosophy-paragraph-gap-mobile);
    }
}

#sustainability .sustainability-page {
    width: 100%;
    background: var(--primary-bright-color);
}

#sustainability .sustainability-hero {
    position: relative;
    min-height: var(--sustainability-hero-min-height);
    overflow: hidden;
    background: var(--primary-dark-color);
}

#sustainability .sustainability-hero__media,
#sustainability .sustainability-hero__media img {
    width: 100%;
    height: 100%;
}

#sustainability .sustainability-hero__media {
    position: absolute;
    inset: 0;
}

#sustainability .sustainability-hero__media img {
    object-fit: cover;
    object-position: var(--sustainability-hero-image-position-x) var(--sustainability-hero-image-position-y);
}

#sustainability .sustainability-hero__overlay {
    position: relative;
    z-index: 1;
    min-height: var(--sustainability-hero-min-height);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 24px;
}

#sustainability .sustainability-hero__title {
    margin: 0;
    color: var(--primary-bright-color);
    font-family: var(--primary-font-family);
    font-size: var(--sustainability-hero-title-size);
    line-height: var(--sustainability-hero-title-line-height);
    letter-spacing: var(--sustainability-hero-title-letter-spacing);
    font-weight: 300;
    transform: translate(
        var(--sustainability-hero-title-offset-x),
        var(--sustainability-hero-title-offset-y)
    );
}

#sustainability .sustainability-section {
    min-height: var(--sustainability-section-min-height);
    background: var(--primary-bright-color);
    text-align: justify;
    text-justify: inter-character;
}

#sustainability .sustainability-section__inner {
    width: 100%;
    max-width: var(--sustainability-section-max-width);
    margin: 0 auto;
    padding-left: var(--sustainability-section-inline-padding);
    padding-right: var(--sustainability-section-inline-padding);
}

#sustainability .sustainability-section--intro {
    padding-top: var(--sustainability-intro-top-padding);
    padding-bottom: var(--sustainability-intro-bottom-padding);
}

#sustainability .sustainability-section--principles {
    padding-top: var(--sustainability-principles-top-padding);
    padding-bottom: var(--sustainability-principles-bottom-padding);
}

#sustainability .sustainability-intro,
#sustainability .sustainability-principles {
    transform: translate(
        var(--sustainability-section-content-offset-x),
        var(--sustainability-section-content-offset-y)
    );
}

#sustainability .sustainability-intro {
    width: min(100%, var(--sustainability-intro-width));
}

#sustainability .sustainability-intro__title-en {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: var(--sustainability-intro-title-en-size);
    line-height: var(--sustainability-intro-title-en-line-height);
    font-weight: 600;
    color: var(--primary-dark-color);
}

#sustainability .sustainability-intro__title-ja {
    margin: var(--sustainability-intro-title-gap) 0 0;
    font-family: var(--primary-font-family);
    font-size: var(--sustainability-intro-title-ja-size);
    line-height: var(--sustainability-intro-title-ja-line-height);
    font-weight: 600;
    color: var(--primary-dark-color);
}

#sustainability .sustainability-intro__lead {
    width: min(100%, var(--sustainability-intro-lead-width));
    margin: var(--sustainability-intro-lead-top-gap) 0 0;
    font-family: var(--primary-font-family);
    font-size: var(--sustainability-intro-lead-size);
    line-height: var(--sustainability-intro-lead-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#sustainability .sustainability-topic {
    width: min(100%, var(--sustainability-intro-topic-width));
}

#sustainability .sustainability-intro .sustainability-topic:first-of-type {
    margin-top: var(--sustainability-intro-topics-top-gap);
}

#sustainability .sustainability-intro .sustainability-topic + .sustainability-topic {
    margin-top: var(--sustainability-intro-topics-gap);
}

#sustainability .sustainability-principles {
    width: min(100%, var(--sustainability-principles-width));
}

#sustainability .sustainability-principles .sustainability-topic + .sustainability-topic {
    margin-top: var(--sustainability-principles-gap);
}

#sustainability .sustainability-topic__title,
#sustainability .sustainability-closing__title {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: var(--sustainability-topic-title-size);
    line-height: var(--sustainability-topic-title-line-height);
    font-weight: 600;
    color: var(--primary-dark-color);
}

#sustainability .sustainability-topic__body {
    margin: var(--sustainability-topic-title-gap) 0 0;
    font-family: var(--primary-font-family);
    font-size: var(--sustainability-topic-body-size);
    line-height: var(--sustainability-topic-body-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#sustainability .sustainability-closing {
    width: min(100%, var(--sustainability-closing-width));
    margin-top: var(--sustainability-closing-top-gap);
}

#sustainability .sustainability-closing__body {
    margin: var(--sustainability-closing-title-gap) 0 0;
    font-family: var(--primary-font-family);
    font-size: var(--sustainability-closing-body-size);
    line-height: var(--sustainability-closing-body-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

@media screen and (max-width: 900px) {
    #sustainability .Top_main_area {
        padding-top: var(--sustainability-top-main-padding-mobile);
    }

    #sustainability .Top_main_container {
        width: var(--mobile-full-width);
        max-width: none;
        padding-left: var(--sustainability-top-main-container-padding-x-mobile);
        padding-right: var(--sustainability-top-main-container-padding-x-mobile);
    }

    #sustainability .sustainability-section__inner {
        width: var(--sustainability-section-inner-width-mobile);
        max-width: var(--sustainability-section-inner-width-mobile);
        margin-left: auto;
        margin-right: auto;
        padding-left: var(--sustainability-section-inline-padding-mobile);
        padding-right: var(--sustainability-section-inline-padding-mobile);
    }

    #sustainability .sustainability-intro,
    #sustainability .sustainability-principles {
        transform: none;
    }

    #sustainability .sustainability-intro__title-en {
        font-size: var(--sustainability-intro-title-en-size-mobile);
        line-height: var(--sustainability-intro-title-en-line-height);
        letter-spacing: 0;
        text-align: left;
        overflow-wrap: break-word;
    }

    #sustainability .sustainability-intro__title-ja {
        font-size: var(--sustainability-intro-title-ja-size-mobile);
        line-height: var(--sustainability-intro-title-ja-line-height);
        letter-spacing: 0;
        text-align: left;
        overflow-wrap: break-word;
    }

    #sustainability .sustainability-section--intro {
        min-height: auto;
        padding-top: var(--sustainability-intro-top-padding-mobile);
        padding-bottom: var(--sustainability-intro-bottom-padding-mobile);
    }

    #sustainability .sustainability-section--principles {
        min-height: auto;
        padding-top: var(--sustainability-principles-top-padding-mobile);
        padding-bottom: var(--sustainability-principles-bottom-padding-mobile);
    }

    #sustainability .sustainability-intro {
        width: min(100%, var(--sustainability-intro-width-mobile));
    }

    #sustainability .sustainability-intro__lead {
        width: min(100%, var(--sustainability-intro-lead-width-mobile));
        font-size: var(--sustainability-intro-lead-size-mobile);
        line-height: var(--sustainability-intro-lead-line-height-mobile);
        text-align: left;
        word-break: normal;
        overflow-wrap: break-word;
    }

    #sustainability .sustainability-topic__title,
    #sustainability .sustainability-closing__title {
        font-size: var(--sustainability-topic-title-size-mobile);
        line-height: 1.45;
        text-align: left;
        word-break: normal;
        overflow-wrap: break-word;
    }

    #sustainability .sustainability-topic {
        width: min(100%, var(--sustainability-intro-topic-width-mobile));
    }

    #sustainability .sustainability-intro .sustainability-topic + .sustainability-topic {
        margin-top: var(--sustainability-intro-topics-gap-mobile);
    }

    #sustainability .sustainability-principles {
        width: min(100%, var(--sustainability-principles-width-mobile));
    }

    #sustainability .sustainability-principles .sustainability-topic + .sustainability-topic {
        margin-top: var(--sustainability-principles-gap-mobile);
    }

    #sustainability .sustainability-topic__body {
        font-size: var(--sustainability-topic-body-size-mobile);
        line-height: var(--sustainability-topic-body-line-height-mobile);
        text-align: left;
        word-break: normal;
        overflow-wrap: break-word;
    }

    #sustainability .sustainability-closing {
        width: min(100%, var(--sustainability-closing-width-mobile));
        margin-top: var(--sustainability-closing-top-gap-mobile);
    }

    #sustainability .sustainability-closing__body {
        font-size: var(--sustainability-closing-body-size-mobile);
        line-height: var(--sustainability-closing-body-line-height-mobile);
        text-align: left;
        word-break: normal;
        overflow-wrap: break-word;
    }
}

#company_information .company-page__viewport {
    min-height: var(--company-page-min-height);
    padding: var(--company-top-padding) var(--company-inline-padding) var(--company-bottom-padding);
    background: var(--primary-bright-color);
}

#company_information .company-page__inner {
    width: 100%;
    max-width: var(--company-content-max-width);
    margin: 0 auto;
    display: flex;
    justify-content: center;
}

#company_information .company-page__card {
    width: min(100%, var(--company-card-width));
    transform: translate(var(--company-card-offset-x), var(--company-card-offset-y));
}

#company_information .company-page__title {
    margin: 0 0 var(--company-title-margin-bottom);
    font-family: var(--primary-font-family);
    font-size: var(--company-title-size);
    line-height: var(--company-title-line-height);
    letter-spacing: var(--company-title-letter-spacing);
    font-weight: 600;
    color: var(--primary-dark-color);
}

#company_information .company-page__list {
    margin: 0;
    padding: 0;
}

#company_information .company-page__row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    column-gap: 0;
    row-gap: 0;
}

#company_information .company-page__row + .company-page__row {
    margin-top: var(--company-row-gap);
}

#company_information .company-page__label {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: var(--company-label-size);
    line-height: var(--company-label-line-height);
    font-weight: var(--company-label-weight);
    color: var(--primary-dark-color);
    white-space: nowrap;
}

#company_information .company-page__label::after {
    content: "：";
}

#company_information .company-page__value {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: var(--company-value-size);
    line-height: var(--company-value-line-height);
    font-weight: var(--company-value-weight);
    color: var(--primary-dark-color);
}

#company_information .company-page__value-brand {
    font-family: var(--asitis-font-family);
    font-size: var(--company-brand-value-size);
    line-height: 1;
    letter-spacing: 0;
}

@media screen and (max-width: 900px) {
    #company_information .company-page__viewport {
        min-height: var(--company-page-min-height-mobile);
        padding: var(--company-top-padding-mobile) var(--company-inline-padding-mobile) var(--company-bottom-padding-mobile);
    }

    #company_information .company-page__card {
        width: min(100%, var(--company-card-width-mobile));
        transform: translate(var(--company-card-offset-x-mobile), var(--company-card-offset-y-mobile));
    }

    #company_information .company-page__title {
        font-size: var(--company-title-size-mobile);
        margin-bottom: var(--company-title-margin-bottom-mobile);
    }

    #company_information .company-page__row {
        display: flex;
        align-items: baseline;
        flex-wrap: wrap;
        column-gap: 0;
        row-gap: 0;
    }

    #company_information .company-page__row + .company-page__row {
        margin-top: var(--company-row-gap-mobile);
    }

    #company_information .company-page__label {
        font-size: var(--company-label-size-mobile);
    }

    #company_information .company-page__value {
        font-size: var(--company-value-size-mobile);
        line-height: var(--company-value-line-height-mobile);
    }

    #company_information .company-page__value-brand {
        font-size: var(--company-brand-value-size-mobile);
    }
}


/* =========================
   Contact
========================= */
#contact_us {
    background: var(--primary-bright-color);
    color: var(--primary-dark-color);
}

#contact_us .contact-page {
    width: 100%;
    min-height: var(--contact-page-min-height);
    padding:
        var(--contact-top-padding)
        var(--contact-inline-padding)
        var(--contact-bottom-padding);
    background: var(--primary-bright-color);
}

#contact_us .contact-page__form-screen,
#contact_us .contact-page__result-screen {
    width: 100%;
}

#contact_us .contact-page__frame {
    width: 100%;
    max-width: var(--contact-form-width);
    margin: 0 auto;
}

#contact_us .contact-page__form-box {
    width: 100%;
    transform: translate(
        var(--contact-form-offset-x),
        var(--contact-form-offset-y)
    );
}

#contact_us .contact-page__lead {
    margin: 0 0 28px;
    font-size: var(--contact-lead-size);
    line-height: var(--contact-lead-line-height);
    color: var(--primary-dark-color);
}

#contact_us .contact-page__error {
    margin: 0 0 18px;
    font-size: var(--contact-error-size);
    line-height: 1.6;
    color: #8b1e1e;
}

#contact_us .contact-page__form {
    width: var(--contact-form-input-width)
}

#contact_us .contact-page__field + .contact-page__field {
    margin-top: var(--contact-field-gap);
}

#contact_us .contact-page__label {
    display: block;
    margin: 0 0 8px;
    font-size: var(--contact-label-size);
    line-height: 1.4;
    color: var(--primary-dark-color);
}

#contact_us .contact-page__required {
    color: var(--primary-dark-color);
}

#contact_us .contact-page__control {
    width: 100%;
    min-height: var(--contact-input-height);
    border: none;
    border-bottom: 1px solid #000;
    background: transparent;
    color: var(--primary-dark-color);
    font-size: var(--contact-text-size);
    line-height: 1.4;
    padding: 0;
    outline: none;
    box-sizing: border-box;
}

#contact_us .contact-page__control--select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: calc(var(--contact-select-arrow-offset-right) + 18px);
    background-image:
        linear-gradient(45deg, transparent 50%, #000 50%),
        linear-gradient(135deg, #000 50%, transparent 50%);
    background-position:
        calc(100% - var(--contact-select-arrow-offset-right)) 52%,
        calc(100% - (var(--contact-select-arrow-offset-right) - 6px)) 52%;
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
}

#contact_us .contact-page__control--textarea {
    min-height: var(--contact-textarea-height);
    border: 1px solid #bdbdbd;
    padding: 12px;
    resize: vertical;
}

#contact_us .contact-page__textarea-wrap {
    width: 100%;
}

#contact_us .contact-page__textarea-meta {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    min-height: 1.2em;
    margin-top: 4px;
    font-size: 0.72rem;
    line-height: 1.2;
}

#contact_us .contact-page__message-error {
    color: #8b1e1e;
}

#contact_us .contact-page__message-counter {
    margin-left: auto;
    color: #777;
    white-space: nowrap;
}

#contact_us .contact-page__message-counter.is-limit {
    color: #8b1e1e;
}

#contact_us .contact-page__actions {
    margin-top: 30px;
}

#contact_us .contact-page__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--contact-submit-width);
    min-height: var(--contact-submit-height);
    border: 1px solid #000;
    background: #fff;
    color: #000;
    font-size: var(--contact-submit-font-size);
    font-weight: 400;
    cursor: pointer;
}

#contact_us .contact-page__note {
    margin: 24px 0 0;
    font-size: var(--contact-note-size);
    line-height: var(--contact-note-line-height);
    color: var(--primary-dark-color);
}

#contact_us .contact-page__note-link {
    text-decoration: underline;
    text-underline-offset: 2px;
}

#contact_us .contact-page__result-inner {
    width: 100%;
    max-width: var(--contact-result-width);
    margin: 0 auto;
    transform: translate(
        var(--contact-result-offset-x),
        var(--contact-result-offset-y)
    );
}

#contact_us .contact-page__result-text {
    margin: 0;
    font-size: var(--contact-result-text-size);
    line-height: var(--contact-result-text-line-height);
    color: var(--primary-dark-color);
}

#contact_us .contact-page__result-text + .contact-page__result-text {
    margin-top: 10px;
}

#contact_us .contact-page__result-gap {
    margin: 22px 0 0;
}

@media (max-width: 900px) {
    #contact_us .contact-page {
        padding:
            var(--contact-top-padding-mobile)
            var(--contact-inline-padding-mobile)
            var(--contact-bottom-padding-mobile);
    }

    #contact_us .contact-page__frame {
        row-gap: var(--contact-frame-row-gap-mobile);
    }

    #contact_us .contact-page__form-box,
    #contact_us .contact-page__result-inner {
        transform: var(--mobile-reset-transform);
    }

    #contact_us .contact-page__submit {
        width: var(--contact-submit-width-mobile);
    }
}


/* =========================
   Legal
========================= */
#legal {
    color: var(--primary-dark-color);
    background: var(--light-grey-color);
}

#legal .site-header__brand,
#legal .site-header__nav-link {
    color: var(--header-inner-brand-color);
}

#legal #menu_icon::before,
#legal #menu_icon::after,
#legal #menu_icon span {
    background: var(--header-menu-color-dark);
}

#legal .legal-page {
    width: 100%;
    min-height: var(--legal-page-min-height);
    background: var(--light-grey-color);
    padding:
        var(--legal-top-padding)
        var(--legal-inline-padding)
        var(--legal-bottom-padding);
}

#legal .legal-page__inner {
    width: 100%;
    max-width: var(--legal-frame-max-width);
    margin: 0 auto;
}

#legal .legal-page__title {
    margin: 0 0 var(--legal-title-bottom-gap);
    text-align: center;
    font-size: var(--legal-title-size);
    line-height: 1.3;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#legal .legal-page__content {
    width: 100%;
    max-width: var(--legal-content-width);
    margin: 0 auto;
    transform: translateX(var(--legal-content-left-offset));
}

#legal .legal-page__block + .legal-page__block {
    margin-top: var(--legal-block-gap);
}

#legal .legal-page__label {
    margin: 0 0 var(--legal-label-bottom-gap);
    font-size: var(--legal-label-size);
    line-height: 1.4;
    font-weight: 600;
    color: var(--primary-dark-color);
}

#legal .legal-page__text {
    margin: 0;
    font-size: var(--legal-text-size);
    line-height: var(--legal-line-height);
    font-weight: 400;
    color: var(--primary-dark-color);
}

@media (max-width: 900px) {
    #legal .legal-page {
        min-height: auto;
        padding:
            var(--legal-top-padding-mobile)
            var(--legal-inline-padding-mobile)
            var(--legal-bottom-padding-mobile);
    }

    #legal .legal-page__inner {
        width: var(--legal-frame-width-mobile);
        max-width: var(--legal-frame-width-mobile);
        margin-left: auto;
        margin-right: auto;
    }

    #legal .legal-page__title {
        margin-bottom: var(--legal-title-bottom-gap-mobile);
        font-size: var(--legal-title-size-mobile);
        line-height: var(--legal-title-line-height-mobile);
        letter-spacing: 0;
        text-align: var(--legal-title-align-mobile);
    }

    #legal .legal-page__content {
        width: 100%;
        max-width: var(--legal-content-width-mobile);
        margin-left: auto;
        margin-right: auto;
        transform: none;
    }

    #legal .legal-page__block + .legal-page__block {
        margin-top: var(--legal-block-gap-mobile);
    }

    #legal .legal-page__label {
        margin-bottom: var(--legal-label-bottom-gap-mobile);
        font-size: var(--legal-label-size-mobile);
        line-height: var(--legal-label-line-height-mobile);
        letter-spacing: 0;
    }

    #legal .legal-page__text {
        font-size: var(--legal-text-size-mobile);
        line-height: var(--legal-line-height-mobile);
        letter-spacing: 0;
        word-break: normal;
        overflow-wrap: break-word;
    }
}


/* =========================
   Privacy Policy
========================= */
#privacy_policy {
    color: var(--primary-dark-color);
    background: var(--light-grey-color);
}

#privacy_policy .site-header__brand,
#privacy_policy .site-header__nav-link {
    color: var(--header-inner-brand-color);
}

#privacy_policy #menu_icon::before,
#privacy_policy #menu_icon::after,
#privacy_policy #menu_icon span {
    background: var(--header-menu-color-dark);
}

#privacy_policy .privacy-policy-page {
    width: 100%;
    min-height: var(--privacy-policy-page-min-height);
    background: var(--light-grey-color);
    padding:
        var(--privacy-policy-top-padding)
        var(--privacy-policy-inline-padding)
        var(--privacy-policy-bottom-padding);
}

#privacy_policy .privacy-policy-page__inner {
    width: 100%;
    max-width: var(--privacy-policy-frame-max-width);
    margin: 0 auto;
}

#privacy_policy .privacy-policy-page__title {
    margin: 0 0 var(--privacy-policy-title-bottom-gap);
    text-align: center;
    font-size: var(--privacy-policy-title-size);
    line-height: 1.3;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#privacy_policy .privacy-policy-page__content {
    width: 100%;
    max-width: var(--privacy-policy-content-width);
    margin: 0 auto;
    transform: translateX(var(--privacy-policy-content-left-offset));
}

#privacy_policy .privacy-policy-page__block + .privacy-policy-page__block {
    margin-top: var(--privacy-policy-block-gap);
}

#privacy_policy .privacy-policy-page__label {
    margin: 0 0 var(--privacy-policy-label-bottom-gap);
    font-size: var(--privacy-policy-label-size);
    line-height: 1.4;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#privacy_policy .privacy-policy-page__text {
    margin: 0;
    font-size: var(--privacy-policy-text-size);
    line-height: var(--privacy-policy-line-height);
    font-weight: 400;
    color: var(--primary-dark-color);
}

@media (max-width: 900px) {
    #privacy_policy .privacy-policy-page {
        min-height: auto;
        padding:
            var(--privacy-policy-top-padding-mobile)
            var(--privacy-policy-inline-padding-mobile)
            var(--privacy-policy-bottom-padding-mobile);
    }

    #privacy_policy .privacy-policy-page__inner {
        width: var(--privacy-policy-frame-width-mobile);
        max-width: var(--privacy-policy-frame-width-mobile);
        margin-left: auto;
        margin-right: auto;
    }

    #privacy_policy .privacy-policy-page__title {
        margin-bottom: var(--privacy-policy-title-bottom-gap-mobile);
        font-size: var(--privacy-policy-title-size-mobile);
        line-height: var(--privacy-policy-title-line-height-mobile);
        letter-spacing: 0;
        text-align: var(--privacy-policy-title-align-mobile);
    }

    #privacy_policy .privacy-policy-page__content {
        width: 100%;
        max-width: var(--privacy-policy-content-width-mobile);
        margin-left: auto;
        margin-right: auto;
        transform: none;
    }

    #privacy_policy .privacy-policy-page__block + .privacy-policy-page__block {
        margin-top: var(--privacy-policy-block-gap-mobile);
    }

    #privacy_policy .privacy-policy-page__label {
        margin-bottom: var(--privacy-policy-label-bottom-gap-mobile);
        font-size: var(--privacy-policy-label-size-mobile);
        line-height: var(--privacy-policy-label-line-height-mobile);
        letter-spacing: 0;
    }

    #privacy_policy .privacy-policy-page__text {
        font-size: var(--privacy-policy-text-size-mobile);
        line-height: var(--privacy-policy-line-height-mobile);
        letter-spacing: 0;
        word-break: normal;
        overflow-wrap: break-word;
    }
}


/* =========================
   Terms of Use
========================= */
#terms_of_use {
    color: var(--primary-dark-color);
    background: var(--light-grey-color);
}

#terms_of_use .site-header__brand,
#terms_of_use .site-header__nav-link {
    color: var(--header-inner-brand-color);
}

#terms_of_use #menu_icon::before,
#terms_of_use #menu_icon::after,
#terms_of_use #menu_icon span {
    background: var(--header-menu-color-dark);
}

#terms_of_use .terms-of-use-page {
    width: 100%;
    min-height: var(--terms-of-use-page-min-height);
    background: var(--light-grey-color);
    padding:
        var(--terms-of-use-top-padding)
        var(--terms-of-use-inline-padding)
        var(--terms-of-use-bottom-padding);
}

#terms_of_use .terms-of-use-page__inner {
    width: 100%;
    max-width: var(--terms-of-use-frame-max-width);
    margin: 0 auto;
    text-align: justify;
    text-justify: inter-character;
}

#terms_of_use .terms-of-use-page__content {
    width: 100%;
    max-width: var(--terms-of-use-content-width);
    margin: 0 auto;
    transform: translate(
        var(--terms-of-use-content-left-offset),
        var(--terms-of-use-content-top-offset)
    );
}

#terms_of_use .terms-of-use-page__block + .terms-of-use-page__block {
    margin-top: var(--terms-of-use-block-gap);
}

#terms_of_use .terms-of-use-page__label {
    margin: 0 0 var(--terms-of-use-label-bottom-gap);
    font-size: var(--terms-of-use-label-size);
    line-height: 1.4;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#terms_of_use .terms-of-use-page__text {
    margin: 0;
    font-size: var(--terms-of-use-text-size);
    line-height: var(--terms-of-use-line-height);
    font-weight: 400;
    color: var(--primary-dark-color);
}

@media (max-width: 900px) {
    #terms_of_use .terms-of-use-page {
        min-height: var(--terms-of-use-page-min-height-mobile);
        padding:
            var(--terms-of-use-top-padding-mobile)
            var(--terms-of-use-inline-padding-mobile)
            var(--terms-of-use-bottom-padding-mobile);
    }

    #terms_of_use .terms-of-use-page__inner {
        width: var(--terms-of-use-frame-width-mobile);
        max-width: var(--terms-of-use-frame-width-mobile);
        margin-left: auto;
        margin-right: auto;
        text-align: left;
        text-justify: auto;
    }

    #terms_of_use .terms-of-use-page__content {
        width: 100%;
        max-width: var(--terms-of-use-content-width-mobile);
        margin-left: auto;
        margin-right: auto;
        transform: none;
    }

    #terms_of_use .terms-of-use-page__block + .terms-of-use-page__block {
        margin-top: var(--terms-of-use-block-gap-mobile);
    }

    #terms_of_use .terms-of-use-page__label {
        margin-bottom: var(--terms-of-use-label-bottom-gap-mobile);
        font-size: var(--terms-of-use-label-size-mobile);
        line-height: var(--terms-of-use-label-line-height-mobile);
        letter-spacing: 0;
    }

    #terms_of_use .terms-of-use-page__text {
        font-size: var(--terms-of-use-text-size-mobile);
        line-height: var(--terms-of-use-line-height-mobile);
        letter-spacing: 0;
        text-align: left;
        word-break: normal;
        overflow-wrap: break-word;
    }
}


/* =========================
   Partnership Login Page
========================= */
#partners_login .partners-page {
    width: 100%;
    background: var(--partners-page-bg);
}

#partners_login .partners-page__intro-screen {
    min-height: var(--partners-page-screen-min-height);
    background: var(--partners-page-bg);
    padding:
        calc(var(--header-height-desktop) + 36px)
        var(--partners-page-side-padding)
        48px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#partners_login .partners-page__intro-inner {
    width: min(100%, 1440px);
    margin: 0 auto;
    display: flex;
    justify-content: center;
}

#partners_login .partners-page__intro-box {
    width: min(100%, var(--partners-page-intro-box-width));
    transform: translate(
        var(--partners-page-intro-offset-x),
        var(--partners-page-intro-offset-y)
    );
}

#partners_login .partners-page__intro-title {
    margin: 0 0 var(--partners-page-intro-title-gap);
    font-family: var(--primary-font-family);
    font-size: var(--partners-page-intro-title-size);
    line-height: 1.1;
    font-weight: 600;
    color: var(--partners-page-text);
}

#partners_login .partners-page__intro-text {
    margin: 0;
    font-family: var(--primary-font-family);
    font-size: var(--partners-page-intro-text-size);
    line-height: var(--partners-page-intro-line-height);
    font-weight: 300;
    color: var(--partners-page-text);
}

#partners_login .partners-page__forms-screen {
    min-height: var(--partners-page-screen2-min-height);
    background: var(--partners-page-bg-alt);
    padding:
        var(--partners-page-forms-top-padding)
        var(--partners-page-side-padding)
        var(--partners-page-forms-bottom-padding);
}

#partners_login .partners-page__forms-shell {
    width: min(100%, 1440px);
    margin: 0 auto;
}

#partners_login .partners-page__forms-frame {
    width: min(100%, var(--partners-page-forms-frame-width));
    transform: translate(
        var(--partners-page-forms-frame-offset-x),
        var(--partners-page-forms-frame-offset-y)
    );
}

#partners_login .partners-page__login-box {
    width: min(100%, var(--partners-page-login-box-width));
    transform: translate(
        var(--partners-page-login-box-offset-x),
        var(--partners-page-login-box-offset-y)
    );
}

#partners_login .partners-page__signup-head-box {
    width: min(100%, var(--partners-page-signup-head-width));
    margin-top: 58px;
    transform: translate(
        var(--partners-page-signup-head-offset-x),
        var(--partners-page-signup-head-offset-y)
    );
}

#partners_login .partners-page__signup-form-box {
    width: min(100%, var(--partners-page-signup-form-width));
    margin-top: 26px;
    transform: translate(
        var(--partners-page-signup-form-offset-x),
        var(--partners-page-signup-form-offset-y)
    );
}

#partners_login .partners-page__block-title {
    margin: 0 0 var(--partners-page-block-title-gap);
    font-family: var(--primary-font-family);
    font-size: var(--partners-page-block-title-size);
    line-height: 1.2;
    font-weight: 600;
    color: var(--partners-page-text);
}

#partners_login .partners-page__block-text {
    margin: 0 0 22px;
    font-family: var(--primary-font-family);
    font-size: var(--partners-page-block-text-size);
    line-height: var(--partners-page-block-text-line-height);
    font-weight: 300;
    color: var(--partners-page-text);
}

#partners_login .partners-page__message {
    margin: 0 0 var(--partners-page-message-gap);
    font-size: var(--partners-page-message-size);
    line-height: 1.6;
}

#partners_login .partners-page__message--error {
    color: #8a1f1f;
}

#partners_login .partners-page__message--success {
    color: #1b5e20;
}

#partners_login .partners-page__login-form {
    width: min(100%, var(--partners-page-login-grid-width));
}

#partners_login .partners-page__login-grid {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    align-items: end;
    column-gap: var(--partners-page-login-col-gap);
    row-gap: var(--partners-page-login-row-gap);
    margin-bottom: 12px;
}

#partners_login .partners-page__field {
    display: grid;
    gap: 8px;
}

#partners_login .partners-page__field--full {
    grid-column: 1 / -1;
}

#partners_login .partners-page__label {
    font-family: var(--primary-font-family);
    font-size: var(--partners-page-login-label-size);
    line-height: 1.2;
    font-weight: 300;
    color: var(--partners-page-text);
}

#partners_login .partners-page__control {
    width: 100%;
    height: var(--partners-page-login-input-height);
    border: none;
    border-bottom: var(--partners-page-input-border-width) solid var(--partners-page-line);
    background: transparent;
    padding: 0;
    outline: none;
    font-family: var(--primary-font-family);
    font-size: var(--partners-page-input-font-size);
    color: var(--partners-page-text);
}

#partners_login .partners-page__forgot-link {
    align-self: center;
    justify-self: start;
    font-family: var(--primary-font-family);
    font-size: var(--partners-page-login-forgot-size);
    line-height: 1.2;
    font-weight: 300;
    color: var(--partners-page-text);
    text-decoration: underline;
    white-space: nowrap;
    transform: translate(
        var(--partners-page-login-forgot-offset-x),
        var(--partners-page-login-forgot-offset-y)
    );
}

#partners_login .partners-page__login-actions {
    width: min(100%, var(--partners-page-login-button-width));
}

#partners_login .partners-page__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: var(--partners-page-login-button-height);
    border: var(--partners-page-button-border-width) solid var(--partners-page-line);
    background: transparent;
    cursor: pointer;
    padding: 0 14px;
    font-family: var(--primary-font-family);
    font-size: var(--partners-page-login-button-size);
    line-height: 1;
    color: var(--partners-page-text);
}

#partners_login .partners-page__signup-form {
    width: 100%;
}

#partners_login .partners-page__signup-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: var(--partners-page-signup-grid-col-gap);
    row-gap: var(--partners-page-signup-grid-row-gap);
}

#partners_login .partners-page__signup-form-box .partners-page__label {
    font-size: var(--partners-page-signup-label-size);
}

#partners_login .partners-page__signup-form-box .partners-page__control {
    height: var(--partners-page-signup-input-height);
}

#partners_login .partners-page__signup-actions {
    margin-top: var(--partners-page-signup-actions-gap);
    width: min(100%, var(--partners-page-signup-button-width));
}

#partners_login .partners-page__signup-actions .partners-page__button {
    height: var(--partners-page-signup-button-height);
    font-size: var(--partners-page-signup-button-size);
}

@media screen and (max-width: 900px) {
    #partners_login .partners-page__intro-screen {
        min-height: var(--partners-page-screen-min-height);
        padding:
            var(--partners-page-intro-top-padding-mobile)
            var(--partners-page-intro-inline-padding-mobile)
            var(--partners-page-intro-bottom-padding-mobile);
    }

    #partners_login .partners-page__intro-box {
        transform: translate(
            var(--partners-page-intro-offset-x-mobile),
            var(--partners-page-intro-offset-y-mobile)
        );
    }

    #partners_login .partners-page__forms-screen {
        min-height: var(--partners-page-screen-min-height);
        padding:
            var(--partners-page-forms-top-padding-mobile)
            var(--partners-page-forms-inline-padding-mobile)
            var(--partners-page-forms-bottom-padding-mobile);
    }

    #partners_login .partners-page__forms-frame,
    #partners_login .partners-page__login-box,
    #partners_login .partners-page__signup-head-box,
    #partners_login .partners-page__signup-form-box {
        width: var(--partners-page-forms-frame-width-mobile);
        transform: var(--mobile-reset-transform);
    }

    #partners_login .partners-page__login-grid {
        grid-template-columns: var(--partners-page-login-grid-columns-mobile);
    }

    #partners_login .partners-page__forgot-link {
        transform: var(--mobile-reset-transform);
    }

    #partners_login .partners-page__login-actions,
    #partners_login .partners-page__signup-actions {
        width: var(--partners-page-actions-width-mobile);
    }

    #partners_login .partners-page__signup-grid {
        grid-template-columns: var(--partners-page-signup-grid-columns-mobile);
    }

    #partners_login .partners-page__field--full {
        grid-column: auto;
    }
}



@media screen and (max-width: 1200px) {
    :root {
        --footer-upper-gap: clamp(36px, 5vw, 90px);
        --footer-about-width: clamp(240px, 23vw, 320px);
        --footer-links-grid-col-gap: clamp(18px, 2vw, 34px);
        --footer-right-top-offset: clamp(72px, 11vh, 110px);
        --collection-top-grid-columns: var(--collection-top-grid-columns-tablet);
        --collection-top-frame-max-width: var(--collection-top-frame-max-width-tablet);
        --collection-top-card-media-max-height: var(--collection-top-card-media-max-height-tablet);
    }
}

@media screen and (max-width: 900px) {
    :root {
        --collection-top-grid-columns: var(--collection-top-grid-columns-mobile);
        --collection-top-top-padding: var(--collection-top-top-padding-mobile);
        --collection-top-inline-padding: var(--collection-top-inline-padding-mobile);
        --collection-top-bottom-padding: var(--collection-top-bottom-padding-mobile);
        --collection-top-card-media-max-height: var(--collection-top-card-media-max-height-mobile);
        --collection-top-card-title-size: var(--collection-top-card-title-size-mobile);
    }

    .site-header {
        min-height: var(--header-height-mobile);
    }

    .site-header__wrapper {
        min-height: var(--header-height-mobile);
        grid-template-columns: var(--header-mobile-grid-template-columns);
        padding: 0 var(--header-side-padding-mobile);
    }

    .site-header__nav {
        display: none;
    }

    .site-header__mobile {
        display: block;
        grid-column: 1;
        justify-self: start;
        align-self: center;
        z-index: var(--header-mobile-z-index);
    }

    .site-header__start {
        display: block;
    }

    .site-header__brand-wrap {
        grid-column: 2;
    }

    .site-header__brand {
        font-size: var(--header-brand-size-mobile);
    }

    .sidemenu {
        display: block;
    }

    .footer {
        height: auto;
        min-height: auto;
        padding: var(--footer-mobile-legacy-padding);
    }

    .footer__stage {
        height: auto;
        display: block;
    }

    .footer__upper {
        display: block;
    }

    .footer__home-intro {
        padding-top: 0;
        margin-bottom: var(--footer-mobile-legacy-home-intro-gap);
    }

    .footer__home-text {
        margin-top: var(--footer-mobile-legacy-home-text-gap);
        font-size: var(--footer-mobile-legacy-home-text-size);
        line-height: var(--footer-mobile-legacy-home-text-line-height);
        white-space: normal;
    }

    .footer__home-link-wrap {
        margin-top: var(--footer-mobile-legacy-home-link-gap);
        padding-left: 0;
    }

    .footer__upper-right {
        min-height: auto;
        display: block;
        padding-top: 0;
        padding-bottom: 0;
    }

    .footer__nav {
        width: 100%;
        margin-bottom: var(--footer-mobile-legacy-nav-gap);
        padding-right: 0;
    }

    .footer__nav-grid {
        justify-items: start;
    }

    .footer__nav-row {
        justify-content: start;
    }

    .footer__nav-row--top,
    .footer__nav-row--bottom {
        grid-template-columns: none;
        grid-auto-flow: row;
        row-gap: var(--footer-mobile-legacy-nav-row-gap);
        justify-items: start;
    }

    .footer__social {
        justify-content: flex-start;
        width: auto;
        margin-bottom: var(--footer-mobile-legacy-social-gap);
        padding-right: 0;
    }

    .footer__lower {
        display: block;
    }

    .footer__brand-wrap {
        padding-top: var(--footer-mobile-legacy-brand-wrap-top);
    }

    .footer__brand {
        font-size: var(--footer-mobile-legacy-brand-size);
    }

    .footer__copyright-wrap {
        padding-top: var(--footer-mobile-legacy-copyright-top);
    }

    .copyright {
        text-align: left;
    }

    #home .Top_main_collection {
        right: var(--home-hero-meta-mobile-right);
        bottom: var(--home-hero-meta-mobile-bottom);
    }

    #home .home-hero-meta__link {
        font-size: var(--home-hero-link-size-mobile);
        line-height: var(--home-hero-link-line-height-mobile);
    }

    #home .home-hero-meta__debut {
        font-size: var(--home-hero-debut-size-mobile);
    }

    #about_us .Top_main_area,
    #company_information .Top_main_area,
    #contact_us .Top_main_area,
    #in_preparation .Top_main_area,
    #sustainability .Top_main_area {
        padding-top: var(--shared-top-main-padding-mobile);
        font-size: var(--shared-top-main-font-size-mobile);
    }

    #about_us .Top_main_container,
    #company_information .Top_main_container,
    #contact_us .Top_main_container,
    #in_preparation .Top_main_container,
    #sustainability .Top_main_container {
        padding-left: var(--shared-top-main-container-padding-x-mobile);
        padding-right: var(--shared-top-main-container-padding-x-mobile);
    }

    #collection_top .collection-index,
    #business_products_top .collection-index {
        padding: var(--collection-top-index-padding-mobile);
    }

    #collection_top .collection-grid,
    #business_products_top .collection-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--collection-top-grid-column-gap-mobile);
        row-gap: var(--collection-top-grid-row-gap-mobile);
    }

    #collection_top .collection-card__image-wrap,
    #business_products_top .collection-card__image-wrap {
        max-height: none;
    }

    #collection_detail .collection-detail-hero {
        min-height: auto;
        padding: var(--collection-detail-hero-top-padding-mobile) var(--collection-detail-hero-inline-padding-mobile) var(--collection-detail-hero-bottom-padding-mobile);
    }

    #collection_detail .collection-detail-hero__inner {
        grid-template-columns: 1fr;
        gap: var(--collection-detail-hero-grid-gap-mobile);
    }

    #collection_detail .collection-detail-hero__media-box {
        width: 100%;
        max-width: var(--collection-detail-hero-image-max-width-mobile);
        margin: 0 auto;
    }

    #collection_detail .collection-detail-hero__media-box img {
        max-height: var(--collection-detail-hero-image-max-height-mobile);
    }

    #collection_detail .collection-detail-hero__content-box {
        min-height: auto;
        max-width: var(--collection-detail-hero-text-max-width-mobile);
        padding-top: 0;
        transform: none;
        margin: 0 auto;
    }

    #collection_detail .collection-detail-hero__title {
        font-size: var(--collection-detail-title-size-mobile);
    }

    #collection_detail .collection-detail-hero__subtitle {
        font-size: var(--collection-detail-subtitle-size-mobile);
    }

    #collection_detail .collection-detail-hero__description-box {
        width: min(100%, var(--collection-detail-description-max-width-mobile));
    }

    #collection_detail .collection-detail-hero__description-text {
        font-size: var(--collection-detail-description-size-mobile);
        line-height: var(--collection-detail-description-line-height-mobile);
    }

    #collection_detail .collection-detail-hero__partnership-box {
        width: min(100%, var(--collection-detail-partnership-max-width-mobile));
        padding-top: var(--collection-detail-partnership-top-gap-mobile);
        transform: none;
    }

    #collection_detail .collection-detail-label {
        min-height: auto;
        padding: var(--collection-detail-label-padding-mobile);
    }

    #collection_detail .collection-detail-label__header {
        grid-template-columns: 1fr;
        column-gap: 0;
        row-gap: var(--collection-detail-label-header-row-gap-mobile);
        align-items: start;
        padding-top: 0;
        padding-bottom: var(--collection-detail-label-header-padding-bottom-mobile);
    }

    #collection_detail .collection-detail-label__title {
        transform: none;
    }

    #collection_detail .collection-detail-label__certification-box {
        width: auto;
        max-width: var(--collection-detail-cert-max-width-mobile);
        margin-right: 0;
        transform: none;
        justify-self: start;
    }

    #collection_detail .collection-detail-label__body {
        max-width: var(--collection-detail-label-body-max-width-mobile);
        transform: none;
    }

    #collection_detail .collection-detail-label__body-text,
    #collection_detail .collection-detail-label__certification-text {
        white-space: pre-wrap;
        word-break: normal;
        overflow-wrap: break-word;
        line-height: var(--collection-detail-label-text-line-height-mobile);
    }

    #about_us .philosophy-page__viewport {
        min-height: auto;
        padding: var(--philosophy-top-padding-mobile) var(--philosophy-inline-padding-mobile) var(--philosophy-bottom-padding-mobile);
    }

    #about_us .philosophy-page__content {
        width: min(100%, var(--philosophy-block-width-mobile));
        transform: translate(var(--philosophy-block-offset-x-mobile), var(--philosophy-block-offset-y-mobile));
    }

    #about_us .philosophy-page__paragraph {
        font-size: var(--philosophy-text-size-mobile);
        line-height: var(--philosophy-line-height-mobile);
    }

    #about_us .philosophy-page__paragraph + .philosophy-page__paragraph {
        margin-top: var(--philosophy-paragraph-gap-mobile);
    }

    #sustainability .sustainability-section__inner {
        padding-left: var(--sustainability-section-inline-padding-mobile);
        padding-right: var(--sustainability-section-inline-padding-mobile);
    }

    #sustainability .sustainability-section--intro {
        padding-top: var(--sustainability-intro-top-padding-mobile);
        padding-bottom: var(--sustainability-intro-bottom-padding-mobile);
    }

    #sustainability .sustainability-section--principles {
        padding-top: var(--sustainability-principles-top-padding-mobile);
        padding-bottom: var(--sustainability-principles-bottom-padding-mobile);
    }

    #sustainability .sustainability-intro {
        width: min(100%, var(--sustainability-intro-width-mobile));
    }

    #sustainability .sustainability-intro__lead {
        width: min(100%, var(--sustainability-intro-lead-width-mobile));
        line-height: var(--sustainability-intro-lead-line-height-mobile);
    }

    #sustainability .sustainability-topic {
        width: min(100%, var(--sustainability-intro-topic-width-mobile));
    }

    #sustainability .sustainability-intro .sustainability-topic + .sustainability-topic {
        margin-top: var(--sustainability-intro-topics-gap-mobile);
    }

    #sustainability .sustainability-principles {
        width: min(100%, var(--sustainability-principles-width-mobile));
    }

    #sustainability .sustainability-principles .sustainability-topic + .sustainability-topic {
        margin-top: var(--sustainability-principles-gap-mobile);
    }

    #sustainability .sustainability-topic__body {
        line-height: var(--sustainability-topic-body-line-height-mobile);
    }

    #sustainability .sustainability-closing {
        width: min(100%, var(--sustainability-closing-width-mobile));
        margin-top: var(--sustainability-closing-top-gap-mobile);
    }

    #sustainability .sustainability-closing__body {
        line-height: var(--sustainability-closing-body-line-height-mobile);
    }

    #company_information .company-page__viewport {
        min-height: var(--company-page-min-height-mobile);
        padding: var(--company-top-padding-mobile) var(--company-inline-padding-mobile) var(--company-bottom-padding-mobile);
    }

    #company_information .company-page__card {
        width: min(100%, var(--company-card-width-mobile));
        transform: translate(var(--company-card-offset-x-mobile), var(--company-card-offset-y-mobile));
    }

    #company_information .company-page__title {
        font-size: var(--company-title-size-mobile);
        margin-bottom: var(--company-title-margin-bottom-mobile);
    }

    #company_information .company-page__row {
        grid-template-columns: 1fr;
        row-gap: var(--company-label-gap-mobile);
    }

    #company_information .company-page__row + .company-page__row {
        margin-top: var(--company-row-gap-mobile);
    }

    #company_information .company-page__label {
        font-size: var(--company-label-size-mobile);
        white-space: normal;
    }

    #company_information .company-page__value {
        font-size: var(--company-value-size-mobile);
        line-height: var(--company-value-line-height-mobile);
    }
}

@media screen and (max-width: 520px) {
    .site-header__wrapper {
        padding: 0 var(--header-wrapper-padding-x-small);
    }

    #menu_icon {
        width: var(--header-menu-button-size-small);
        height: var(--header-menu-button-size-small);
    }

    #menu_icon::before {
        top: var(--header-menu-line-top-small);
    }

    #menu_icon span {
        top: var(--header-menu-line-middle-small);
    }

    #menu_icon::after {
        bottom: var(--header-menu-line-bottom-small);
    }

    .sidemenu {
        width: var(--header-sidemenu-width-small);
    }

    .footer {
        padding: var(--footer-small-legacy-padding);
    }

    .footer__nav-row a,
    .footer__cookie-button {
        font-size: var(--footer-small-text-size);
    }

    .footer__home-title {
        font-size: var(--footer-small-home-title-size);
    }

    .footer__home-text {
        font-size: var(--footer-small-text-size);
    }

    .footer__brand {
        font-size: var(--footer-small-brand-size);
    }

    #collection_top .collection-grid,
    #business_products_top .collection-grid {
        grid-template-columns: var(--collection-top-grid-columns-small);
    }
}


/* =========================
   Business product detail
========================= */
#business_product_detail .business-product-detail-page {
    width: 100%;
    min-height: var(--business-product-detail-page-min-height);
    padding:
        var(--business-product-detail-top-padding)
        var(--business-product-detail-inline-padding)
        var(--business-product-detail-bottom-padding);
    background: var(--primary-bright-color);
    transition: padding-right 0.24s ease;
}


#business_product_detail .business-product-detail__inner {
    width: 100%;
    max-width: var(--business-product-detail-max-width);
    margin: 0 auto;
    display: grid;
    grid-template-columns:
        minmax(0, var(--business-product-detail-grid-media-fr))
        minmax(0, var(--business-product-detail-grid-content-fr));
    gap: var(--business-product-detail-grid-gap);
    align-items: start;
}

#business_product_detail .business-product-detail__media-col {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    transform: translate(
        var(--business-product-detail-media-offset-x),
        var(--business-product-detail-media-offset-y)
    );
}

#business_product_detail .business-product-detail__image-stage {
    position: relative;
    width: var(--business-product-detail-image-width);
    max-width: 100%;
}

#business_product_detail .business-product-detail__image {
    width: 100%;
    aspect-ratio: var(--business-product-detail-image-aspect);
    object-fit: cover;
    display: block;
    background: #f4f4f4;
}

#business_product_detail .business-product-detail__image-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    color: var(--primary-dark-color);
    font-size: var(--business-product-detail-image-arrow-size);
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

#business_product_detail .business-product-detail__image-arrow--left {
    left: var(--business-product-detail-image-arrow-side-offset);
}

#business_product_detail .business-product-detail__image-arrow--right {
    right: var(--business-product-detail-image-arrow-side-offset);
}

#business_product_detail .business-product-detail__content-col {
    width: 100%;
    max-width: var(--business-product-detail-content-max-width);
    justify-self: start;
    transform: translate(
        var(--business-product-detail-content-offset-x),
        var(--business-product-detail-content-offset-y)
    );
}

#business_product_detail .business-product-detail__title {
    margin: 0;
    font-size: var(--business-product-detail-title-size);
    line-height: var(--business-product-detail-title-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-detail__subtitle {
    margin: var(--business-product-detail-subtitle-gap) 0 0;
    font-size: var(--business-product-detail-subtitle-size);
    line-height: var(--business-product-detail-subtitle-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-detail__price {
    margin: var(--business-product-detail-price-gap) 0 0;
    font-size: var(--business-product-detail-price-size);
    line-height: var(--business-product-detail-price-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-detail__price-note {
    margin: var(--business-product-detail-price-note-gap) 0 0;
    font-size: var(--business-product-detail-price-note-size);
    line-height: var(--business-product-detail-price-note-line-height);
    font-style: italic;
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-detail__qty-row {
    display: flex;
    align-items: center;
    gap: var(--business-product-detail-qty-inline-gap);
    margin-top: var(--business-product-detail-qty-gap);
    font-size: var(--business-product-detail-qty-size);
    line-height: 1.2;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-detail__qty-textbtn {
    border: none;
    background: transparent;
    color: var(--primary-dark-color);
    font-size: var(--business-product-detail-qty-button-size);
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

#business_product_detail .business-product-detail__qty-input-inline {
    width: 3ch;
    min-width: 3ch;
    max-width: 3ch;
    border: none;
    background: transparent;
    color: var(--primary-dark-color);
    font-size: var(--business-product-detail-qty-size);
    line-height: 1.2;
    font-weight: 300;
    text-align: center;
    padding: 0;
    margin: 0;
    outline: none;
    -moz-appearance: textfield;
}

#business_product_detail .business-product-detail__qty-input-inline::-webkit-outer-spin-button,
#business_product_detail .business-product-detail__qty-input-inline::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}


#business_product_detail .business-product-detail__qty-label,
#business_product_detail .business-product-detail__qty-value {
    font-size: var(--business-product-detail-qty-size);
    line-height: 1.2;
    font-weight: 300;
}

#business_product_detail .business-product-detail__add-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--business-product-detail-cart-width);
    height: var(--business-product-detail-cart-height);
    margin-top: var(--business-product-detail-cart-gap);
    border: 1px solid var(--primary-dark-color);
    background: var(--primary-bright-color);
    color: var(--primary-dark-color);
    font-size: var(--business-product-detail-cart-font-size);
    line-height: 1;
    font-weight: 300;
    cursor: pointer;
    padding: 0 14px;
}

#business_product_detail .business-product-detail__add-button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

#business_product_detail .business-product-detail__description {
    margin-top: var(--business-product-detail-description-gap);
    width: var(--business-product-detail-description-width);
    white-space: pre-wrap;
    word-break: normal;
    overflow-wrap: break-word;
    font-size: var(--business-product-detail-description-size);
    line-height: var(--business-product-detail-description-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-detail__gtin {
    margin-top: var(--business-product-detail-gtin-gap);
    font-size: var(--business-product-detail-gtin-size);
    line-height: 1.45;
    font-weight: 300;
    color: var(--business-product-detail-gtin-color);
}

#business_product_detail .business-product-detail__link {
    display: block;
    width: fit-content;
    margin-top: var(--business-product-detail-link-gap);
    font-size: var(--business-product-detail-link-size);
    line-height: 1.2;
    font-weight: 300;
    color: var(--primary-dark-color);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

#business_product_detail .business-product-detail__shipping-note {
    margin: var(--business-product-detail-shipping-note-gap) 0 0;
    font-size: var(--business-product-detail-shipping-note-size);
    line-height: var(--business-product-detail-shipping-note-line-height);
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-detail__mobile-cart-button {
    display: none;
}

#business_product_detail .business-product-drawer-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.28);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    z-index: 200;
}

#business_product_detail .business-product-drawer-backdrop.open {
    opacity: 1;
    pointer-events: auto;
}

#business_product_detail .business-product-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: var(--business-product-drawer-width);
    max-width: 100%;
    height: 100dvh;
    background: var(--primary-bright-color);
    border-left: 1px solid #bdbdbd;
    transform: translateX(100%);
    transition: transform 0.24s ease;
    z-index: 1200;
    display: grid;
    grid-template-rows: 1fr auto auto;
}

#business_product_detail .business-product-drawer.open {
    transform: translateX(0);
}


#business_product_detail .business-product-drawer__sheet-toggle {
    display: none;
}

#business_product_detail .business-product-drawer__header {
    display: none;
}

#business_product_detail .business-product-drawer__title {
    margin: 0;
    font-size: 1rem;
    line-height: 1.3;
    font-weight: 600;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-drawer__close {
    border: none;
    background: none;
    color: var(--primary-dark-color);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

#business_product_detail .business-product-drawer__body {
    overflow: auto;
    padding: var(--business-product-drawer-item-top-pad) var(--business-product-drawer-item-side-pad) 0;
    background: var(--primary-bright-color);
}

#business_product_detail .business-product-drawer__empty {
    padding: 8px 0 20px;
    font-size: 0.94rem;
    line-height: 1.7;
    font-weight: 300;
    color: #555;
}

#business_product_detail .business-product-drawer__item {
    padding: 0 0 18px;
    margin: 0;
    border-bottom: none;
}

#business_product_detail .business-product-drawer__item-main {
    display: grid;
    grid-template-columns: var(--business-product-drawer-item-thumb-width) minmax(0, 1fr);
    column-gap: var(--business-product-drawer-item-gap);
    align-items: start;
}

#business_product_detail .business-product-drawer__item-top {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    margin-bottom: 12px;
}

#business_product_detail .business-product-drawer__thumb {
    width: var(--business-product-drawer-item-thumb-width);
    aspect-ratio: 0.82 / 1;
    overflow: hidden;
    background: #f4f4f4;
    border: none;
}

#business_product_detail .business-product-drawer__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

#business_product_detail .business-product-drawer__item-copy {
    display: grid;
    row-gap: 16px;
    align-content: start;
}

#business_product_detail .business-product-drawer__item-name {
    margin: 0;
    font-size: var(--business-product-drawer-item-name-size);
    line-height: 1.35;
    font-weight: 600;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-drawer__item-price {
    margin: 0;
    font-size: var(--business-product-drawer-item-price-size);
    line-height: 1.4;
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-drawer__item-qty {
    margin: 0;
    font-size: var(--business-product-drawer-item-qty-size);
    line-height: 1.35;
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-drawer__qty-group {
    display: grid;
    gap: 10px;
    margin-bottom: 10px;
}

#business_product_detail .business-product-drawer__qty-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

#business_product_detail .business-product-drawer__qty-label {
    font-size: 0.84rem;
    line-height: 1.6;
    font-weight: 300;
    color: #333;
}

#business_product_detail .business-product-drawer__qty-control {
    display: grid;
    grid-template-columns: 28px 40px 28px;
    gap: 8px;
    align-items: center;
}

#business_product_detail .business-product-drawer__qty-button {
    width: 28px;
    height: 28px;
    border: 1px solid #bdbdbd;
    background: var(--primary-bright-color);
    color: var(--primary-dark-color);
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

#business_product_detail .business-product-drawer__qty-input {
    width: 40px;
    height: 28px;
    border: 1px solid #bdbdbd;
    background: var(--primary-bright-color);
    color: var(--primary-dark-color);
    text-align: center;
    font-size: 0.84rem;
    line-height: 1;
    padding: 0;
}

#business_product_detail .business-product-drawer__item-meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    font-size: 0.84rem;
    line-height: 1.7;
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-drawer__remove {
    border: none;
    background: none;
    color: var(--primary-dark-color);
    font-size: var(--business-product-drawer-item-remove-size);
    line-height: 1.2;
    font-weight: 300;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    cursor: pointer;
    padding: 0;
    justify-self: start;
}

#business_product_detail .business-product-drawer__footer {
    border-top: 1px solid #bdbdbd;
    background: var(--primary-bright-color);
    padding: var(--business-product-drawer-subtotal-pad-y) var(--business-product-drawer-subtotal-pad-x);
}

#business_product_detail .business-product-drawer__summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin: 0;
    font-size: var(--business-product-drawer-subtotal-size);
    line-height: 1.4;
    font-weight: 300;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-drawer__actions {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

#business_product_detail .business-product-drawer__checkout-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: var(--business-product-drawer-checkout-height);
    border-top: 1px solid #bdbdbd;
    border-left: none;
    border-right: none;
    border-bottom: none;
    background: var(--primary-bright-color);
    color: var(--primary-dark-color);
    font-size: var(--business-product-drawer-checkout-size);
    line-height: 1.2;
    font-weight: 300;
    text-decoration: none;
    padding: 0;
}

@media screen and (max-width: 900px) {
    #business_product_detail .business-product-detail-page {
        min-height: auto;
        padding:
            var(--business-product-detail-top-padding-mobile)
            var(--business-product-detail-inline-padding-mobile)
            var(--business-product-detail-bottom-padding-mobile);
    }

    #business_product_detail .business-product-detail__inner {
        width: 100%;
        max-width: var(--business-product-detail-max-width-mobile);
        margin: 0 auto;
        grid-template-columns: 1fr;
        gap: var(--business-product-detail-grid-gap-mobile);
    }

    #business_product_detail .business-product-detail__media-col {
        justify-content: center;
        transform: none;
    }

    #business_product_detail .business-product-detail__image-stage {
        width: 100%;
        max-width: 100%;
        margin: 0 auto;
    }

    #business_product_detail .business-product-detail__content-col {
        width: 100%;
        max-width: 100%;
        justify-self: stretch;
        transform: none;
    }

    #business_product_detail .business-product-detail__title {
        font-size: var(--business-product-detail-title-size-mobile);
    }

    #business_product_detail .business-product-detail__subtitle {
        font-size: var(--business-product-detail-subtitle-size-mobile);
    }

    #business_product_detail .business-product-detail__price {
        font-size: var(--business-product-detail-price-size-mobile);
    }

    #business_product_detail .business-product-detail__price-note {
        font-size: var(--business-product-detail-price-note-size-mobile);
    }

    #business_product_detail .business-product-detail__qty-row {
        font-size: var(--business-product-detail-qty-size-mobile);
    }

    #business_product_detail .business-product-detail__add-button {
        width: var(--business-product-detail-cart-width-mobile);
        height: var(--business-product-detail-cart-height-mobile);
        font-size: var(--business-product-detail-cart-font-size-mobile);
    }

    #business_product_detail .business-product-detail__description {
        font-size: var(--business-product-detail-description-size-mobile);
    }

    #business_product_detail .business-product-detail__link {
        font-size: var(--business-product-detail-link-size-mobile);
    }

    #business_product_detail .business-product-detail__shipping-note {
        font-size: var(--business-product-detail-shipping-note-size-mobile);
    }

    #business_product_detail .business-product-detail__mobile-cart-button {
        display: none !important;
    }

    #business_product_detail .business-product-drawer-backdrop {
        display: none;
    }

    #business_product_detail .business-product-drawer {
        top: auto;
        right: auto;
        left: 0;
        bottom: 0;
        width: var(--business-product-drawer-width-mobile);
        height: var(--business-product-drawer-height-mobile);
        max-height: var(--business-product-drawer-max-height-mobile);
        border-top: var(--business-product-drawer-border-top-mobile);
        border-left: none;
        transform: var(--business-product-drawer-transform-closed-mobile);
        transition: var(--business-product-drawer-transition-mobile);
        z-index: var(--business-product-drawer-z-index-mobile);
        grid-template-rows: var(--business-product-drawer-grid-template-rows-mobile);
        overflow: visible;
    }

    #business_product_detail .business-product-drawer.open {
        transform: var(--business-product-drawer-transform-open-mobile);
    }

    #business_product_detail .business-product-drawer.open.is-collapsed {
        transform: var(--business-product-drawer-transform-collapsed-mobile);
    }

    #business_product_detail .business-product-drawer__sheet-toggle {
        display: block;
        position: relative;
        width: 100%;
        height: var(--business-product-drawer-sheet-height-mobile);
        padding: 0;
        border: none;
        background: transparent;
        color: var(--primary-dark-color);
        cursor: pointer;
        appearance: none;
        -webkit-appearance: none;
        touch-action: pan-y;
    }

    #business_product_detail .business-product-drawer__sheet-toggle::before {
        content: "";
        position: absolute;
        top: var(--business-product-drawer-sheet-line-top-mobile);
        left: 0;
        right: 0;
        height: 1px;
        background:
            linear-gradient(
                to right,
                #bdbdbd 0,
                #bdbdbd calc(50% - var(--business-product-drawer-sheet-line-gap-mobile)),
                transparent calc(50% - var(--business-product-drawer-sheet-line-gap-mobile)),
                transparent calc(50% + var(--business-product-drawer-sheet-line-gap-mobile)),
                #bdbdbd calc(50% + var(--business-product-drawer-sheet-line-gap-mobile)),
                #bdbdbd 100%
            );
        pointer-events: none;
    }

    #business_product_detail .business-product-drawer__sheet-icon {
        position: absolute;
        left: 50%;
        top: var(--business-product-drawer-sheet-icon-top-mobile);
        width: var(--business-product-drawer-sheet-icon-size-mobile);
        height: var(--business-product-drawer-sheet-icon-size-mobile);
        transform: translateX(-50%);
        display: grid;
        place-items: center;
        pointer-events: none;
    }

    #business_product_detail .business-product-drawer__sheet-icon span {
        display: block;
        width: var(--business-product-drawer-sheet-icon-inner-size-mobile);
        height: var(--business-product-drawer-sheet-icon-inner-size-mobile);
        border-right: var(--business-product-drawer-sheet-icon-border-width-mobile) solid var(--primary-dark-color);
        border-bottom: var(--business-product-drawer-sheet-icon-border-width-mobile) solid var(--primary-dark-color);
        transform: rotate(45deg);
        margin: var(--business-product-drawer-sheet-icon-margin-mobile);
    }

    #business_product_detail .business-product-drawer.is-collapsed .business-product-drawer__sheet-icon span {
        transform: rotate(225deg);
    }

    #business_product_detail .business-product-drawer__body {
        min-height: 0;
        overflow: auto;
        padding: var(--business-product-drawer-body-padding-mobile);
        -webkit-overflow-scrolling: touch;
    }

    #business_product_detail .business-product-drawer__footer {
        padding: var(--business-product-drawer-footer-padding-mobile);
    }

    #business_product_detail .business-product-drawer__actions {
        padding: var(--business-product-drawer-actions-padding-mobile);
    }
}

/* Business product detail - bank transfer lock modal */
#business_product_detail .business-product-lock-modal[hidden] {
    display: none;
}

#business_product_detail .business-product-lock-modal {
    position: fixed;
    inset: 0;
    z-index: 5000;
    pointer-events: none;
}

#business_product_detail .business-product-lock-modal__backdrop {
    position: absolute;
    inset: 0;
    background: transparent;
    pointer-events: none;
}

#business_product_detail .business-product-lock-modal__panel {
    position: fixed;
    top: calc(var(--header-height-desktop) + 10px);
    left: 50%;
    transform: translateX(-50%);
    width: min(620px, calc(100vw - 40px));
    max-width: calc(100vw - 40px);
    padding: 20px 24px;
    background: var(--primary-bright-color);
    border: 1px solid #d8d8d8;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.16);
    color: var(--primary-dark-color);
    pointer-events: auto;
    animation: businessProductLockModalDrop 0.22s ease-out;
}

#business_product_detail .business-product-lock-modal__title {
    margin: 0 0 10px;
    font-family: var(--primary-font-family);
    font-size: clamp(1rem, 1.04rem, 1.14rem);
    line-height: 1.35;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#business_product_detail .business-product-lock-modal__message {
    margin: 0 0 18px;
    font-family: var(--primary-font-family);
    font-size: clamp(0.9rem, 0.96rem, 1rem);
    line-height: 1.8;
    font-weight: 300;
    color: var(--primary-dark-color);
    white-space: normal;
    word-break: normal;
    overflow-wrap: break-word;
}

#business_product_detail .business-product-lock-modal__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

#business_product_detail .business-product-lock-modal__link,
#business_product_detail .business-product-lock-modal__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    box-sizing: border-box;
    font-family: var(--primary-font-family);
    font-size: 14px;
    line-height: 1.4;
    font-weight: 300;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

#business_product_detail .business-product-lock-modal__link {
    background: var(--primary-dark-color);
    color: var(--primary-bright-color);
    border: 2px solid var(--primary-dark-color);
}

#business_product_detail .business-product-lock-modal__close {
    background: var(--primary-bright-color);
    color: var(--primary-dark-color);
    border: 2px solid var(--primary-dark-color);
}

#business_product_detail .business-product-lock-modal__link:hover,
#business_product_detail .business-product-lock-modal__close:hover {
    opacity: 0.68;
}

@keyframes businessProductLockModalDrop {
    from {
        opacity: 0;
        transform: translate(-50%, -18px);
    }
    to {
        opacity: 1;
        transform: translate(-50%, 0);
    }
}

@media screen and (max-width: 900px) {
    #business_product_detail .business-product-lock-modal__panel {
        top: var(--business-product-lock-modal-top-mobile);
        width: var(--business-product-lock-modal-width-mobile);
        max-width: var(--business-product-lock-modal-width-mobile);
        padding: var(--business-product-lock-modal-padding-mobile);
    }

    #business_product_detail .business-product-lock-modal__actions {
        grid-template-columns: var(--mobile-grid-one-column);
        gap: var(--business-product-lock-modal-actions-gap-mobile);
    }

    #business_product_detail .business-product-lock-modal__link,
    #business_product_detail .business-product-lock-modal__close {
        width: var(--mobile-full-width);
    }
}


/* =========================
   Business payment member
========================= */
#business_payment_member {
    background: var(--primary-bright-color);
}

#business_payment_member .viewport {
    min-height: var(--business-payment-page-min-height);
    padding:
        var(--business-payment-top-padding)
        var(--business-payment-inline-padding)
        var(--business-payment-bottom-padding);
    display: block;
}

#business_payment_member .stage {
    width: 100%;
    max-width: var(--business-payment-max-width);
    margin: 0 auto;
}

#business_payment_member .grid {
    display: grid;
    grid-template-columns:
        minmax(0, var(--business-payment-left-col-width))
        minmax(0, var(--business-payment-right-col-width));
    gap: var(--business-payment-grid-gap);
    align-items: start;
}

#business_payment_member .business-payment-member__left-col,
#business_payment_member .business-payment-member__right-col {
    min-width: 0;
}

#business_payment_member .panel {
    border: var(--business-payment-panel-border);
    padding: var(--business-payment-panel-padding);
    background: var(--primary-bright-color);
}

#business_payment_member h2,
#business_payment_member .summary-card__title {
    margin: 0 0 14px;
    font-size: var(--business-payment-title-size);
    line-height: 1.35;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#business_payment_member .info-grid {
    display: grid;
    grid-template-columns: var(--business-payment-info-label-width) minmax(0, 1fr);
    column-gap: var(--business-payment-info-col-gap);
    row-gap: var(--business-payment-info-row-gap);
    align-items: start;
}

#business_payment_member .label {
    margin: 0;
    font-size: var(--business-payment-text-size);
    line-height: 1.42;
    font-weight: 400;
    color: #555;
}

#business_payment_member .value {
    margin: 0;
    font-size: var(--business-payment-text-size);
    line-height: 1.42;
    font-weight: 400;
    color: var(--primary-dark-color);
    word-break: break-word;
}

#business_payment_member .actions {
    display: flex;
    gap: 12px;
    margin-top: 16px;
}

#business_payment_member .btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--business-payment-btn-height);
    padding: 0 18px;
    border: 1px solid #000;
    background: #fff;
    color: #000;
    text-decoration: none;
    font-size: var(--business-payment-btn-font-size);
    font-weight: 700;
}

#business_payment_member .note {
    margin-top: 10px;
    font-size: var(--business-payment-note-size);
    line-height: 1.65;
    color: #666;
}

#business_payment_member .method-list {
    display: grid;
    row-gap: var(--business-payment-method-gap);
}

#business_payment_member .method-card {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    column-gap: 10px;
    align-items: start;
    padding: var(--business-payment-method-card-padding);
    border: 1px solid #d8d8d8;
    background: #fff;
}

#business_payment_member .method-card input[type="radio"] {
    margin: 2px 0 0;
}

#business_payment_member .method-copy {
    min-width: 0;
}

#business_payment_member .method-title {
    display: block;
    font-size: var(--business-payment-method-title-size);
    line-height: 1.34;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#business_payment_member .method-note {
    margin-top: 3px;
    font-size: var(--business-payment-method-note-size);
    line-height: 1.55;
    color: #666;
}

#business_payment_member #cardPane,
#business_payment_member #bankTransferPane {
    margin-top: var(--business-payment-paymentbox-top-gap);
}

#business_payment_member .field-label {
    display: block;
    margin: 0 0 8px;
    font-size: var(--business-payment-text-size);
    line-height: 1.35;
    font-weight: 400;
    color: var(--primary-dark-color);
}

#business_payment_member .payment-box,
#business_payment_member .bank-note-box {
    border: 1px solid #d8d8d8;
    padding: 14px;
    background: #fff;
}

#business_payment_member .bank-note-box {
    font-size: var(--business-payment-note-size);
    line-height: 1.7;
    color: #444;
}

#business_payment_member .stripe-msg {
    margin-top: 10px;
    font-size: var(--business-payment-note-size);
    line-height: 1.6;
    color: #8b1e1e;
}

#business_payment_member .stripe-msg.show {
    display: block;
}

#business_payment_member .summary-card {
    margin-top: var(--business-payment-summary-top-gap);
    padding-top: 14px;
    border-top: 1px solid #d8d8d8;
}

#business_payment_member .product-mini {
    display: grid;
    grid-template-columns: var(--business-payment-product-thumb-width) minmax(0, 1fr);
    column-gap: var(--business-payment-product-gap);
    align-items: start;
    margin-bottom: 12px;
}

#business_payment_member .product-thumb {
    width: var(--business-payment-product-thumb-width);
    aspect-ratio: var(--business-payment-product-thumb-aspect);
    overflow: hidden;
    background: #f4f4f4;
}

#business_payment_member .product-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

#business_payment_member .product-copy {
    min-width: 0;
}

#business_payment_member .product-name {
    font-size: var(--business-payment-product-name-size);
    line-height: 1.34;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#business_payment_member .product-desc {
    margin-top: 3px;
    font-size: var(--business-payment-product-desc-size);
    line-height: 1.45;
    color: #555;
}

#business_payment_member .summary-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin: var(--business-payment-summary-gap) 0;
    font-size: var(--business-payment-text-size);
    line-height: 1.55;
    color: var(--primary-dark-color);
}

#business_payment_member .summary-total {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-top: 10px;
    font-size: var(--business-payment-summary-total-size);
    line-height: 1.55;
    font-weight: 800;
    color: var(--primary-dark-color);
}

#business_payment_member .checkout-agreement {
    margin-top: 14px;
}

#business_payment_member .checkout-agreement__label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    line-height: 1.7;
    font-size: var(--business-payment-note-size);
    color: var(--primary-dark-color);
}

#business_payment_member .checkout-agreement__checkbox {
    margin-top: 3px;
}

#business_payment_member .checkout-agreement__link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

#business_payment_member .checkout-agreement__note {
    margin: 8px 0 0;
    font-size: var(--business-payment-note-size);
    line-height: 1.7;
    color: #666;
}

#business_payment_member .btn-solid {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: var(--business-payment-btn-height);
    margin-top: 16px;
    border: none;
    background: #000;
    color: #fff;
    font-size: var(--business-payment-btn-font-size);
    font-weight: 700;
    cursor: pointer;
}

@media (max-width: 860px) {
    #business_payment_member .grid {
        grid-template-columns: var(--business-payment-grid-columns-mobile);
    }

    #business_payment_member .info-grid {
        grid-template-columns: var(--business-payment-info-grid-columns-mobile);
        row-gap: var(--business-payment-info-row-gap-mobile);
    }

    #business_payment_member .label {
        margin-top: var(--business-payment-label-margin-top-mobile);
    }
}


/* =========================
   Business registration
========================= */
#business_registration_info {
    background: var(--primary-bright-color);
}

#business_registration_info .business-registration-page {
    width: 100%;
    min-height: var(--business-registration-page-min-height);
    padding:
        var(--business-registration-top-padding)
        var(--business-registration-inline-padding)
        var(--business-registration-bottom-padding);
    background: var(--primary-bright-color);
}

#business_registration_info .business-registration-page__inner {
    width: 100%;
    max-width: var(--business-registration-max-width);
    margin: 0 auto;
    transform: translate(
        var(--business-registration-content-offset-x),
        var(--business-registration-content-offset-y)
    );
}

#business_registration_info .business-registration-page__hero {
    margin-bottom: 18px;
}

#business_registration_info .business-registration-page__title {
    margin: 0 0 var(--business-registration-title-gap);
    font-size: var(--business-registration-title-size);
    line-height: 1.1;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#business_registration_info .business-registration-page__lead {
    margin: 0;
    font-size: var(--business-registration-lead-size);
    line-height: var(--business-registration-lead-line-height);
    color: #444;
}

#business_registration_info .business-registration-page__msg {
    margin: 0 0 14px;
    padding: 12px 14px;
    font-size: 14px;
    line-height: 1.7;
    border: 1px solid #d9a7a7;
    background: #fff4f4;
    color: #8b1e1e;
}

#business_registration_info .business-registration-page__msg--success {
    border-color: #b7d7c0;
    background: #f5fbf7;
    color: #1e5b34;
}

#business_registration_info .business-registration-card {
    border: var(--business-registration-card-border);
    background: var(--primary-bright-color);
    padding: var(--business-registration-card-padding);
}

#business_registration_info .business-registration-card + .business-registration-card {
    margin-top: var(--business-registration-card-gap);
}

#business_registration_info .business-registration-card__title,
#business_registration_info .business-registration-orders__title {
    margin: 0 0 12px;
    font-size: var(--business-registration-card-title-size);
    line-height: 1.35;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#business_registration_info .business-registration-meta {
    display: grid;
    row-gap: var(--business-registration-meta-row-gap);
}

#business_registration_info .business-registration-meta__row {
    display: grid;
    grid-template-columns: var(--business-registration-meta-label-width) minmax(0, 1fr);
    column-gap: var(--business-registration-meta-col-gap);
    align-items: start;
}

#business_registration_info .business-registration-meta__label,
#business_registration_info .business-registration-meta__value {
    font-size: var(--business-registration-meta-size);
    line-height: var(--business-registration-meta-line-height);
    color: var(--primary-dark-color);
}

#business_registration_info .business-registration-meta__label {
    font-weight: 400;
}

#business_registration_info .business-registration-meta__value {
    font-weight: 300;
    word-break: break-word;
}

#business_registration_info .business-registration-form {
    display: block;
}

#business_registration_info .business-registration-form__grid {
    display: grid;
    gap: var(--business-registration-form-grid-gap);
}

#business_registration_info .business-registration-form__field {
    display: grid;
    gap: 8px;
}

#business_registration_info .business-registration-form__field--full {
    grid-column: 1 / -1;
}

#business_registration_info .business-registration-form__label {
    font-size: var(--business-registration-form-label-size);
    line-height: 1.4;
    color: #444;
}

#business_registration_info .business-registration-form__input,
#business_registration_info .business-registration-form__select,
#business_registration_info .business-registration-form__textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #bbb;
    background: #fff;
    color: #111;
    font-size: var(--business-registration-form-input-size);
    font-family: inherit;
    padding: 10px 12px;
}

#business_registration_info .business-registration-form__input,
#business_registration_info .business-registration-form__select {
    min-height: var(--business-registration-form-input-height);
}

#business_registration_info .business-registration-form__textarea {
    min-height: 110px;
    resize: vertical;
}

#business_registration_info .business-registration-orders {
    position: relative;
    overflow: visible;
}

#business_registration_info .business-registration-orders__table-wrap {
    position: relative;
    overflow: visible;
}

#business_registration_info .business-registration-orders__table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

#business_registration_info .business-registration-orders__table thead th {
    padding: 0 14px 10px 0;
    border-bottom: 1px solid #d9d9d9;
    text-align: left;
    font-size: var(--business-registration-orders-head-size);
    line-height: 1.4;
    font-weight: 400;
    color: #555;
    vertical-align: bottom;
}

#business_registration_info .business-registration-orders__table tbody td {
    padding: var(--business-registration-orders-row-padding-y) 14px var(--business-registration-orders-row-padding-y) 0;
    border-bottom: 1px solid #eeeeee;
    text-align: left;
    font-size: var(--business-registration-orders-row-size);
    line-height: 1.5;
    font-weight: 300;
    color: var(--primary-dark-color);
    vertical-align: top;
    word-break: break-word;
}

#business_registration_info .business-registration-orders__table tbody tr:last-child td {
    border-bottom: none;
}

#business_registration_info .business-registration-orders__table thead th:last-child,
#business_registration_info .business-registration-orders__table tbody td:last-child {
    padding-right: 0;
}

#business_registration_info .business-registration-orders__table-wrap tbody tr:nth-child(n + 4) {
    display: none;
}

#business_registration_info .business-registration-orders__table-wrap.is-expanded tbody tr:nth-child(n + 4) {
    display: table-row;
}

#business_registration_info .business-registration-orders__table a {
    color: var(--primary-dark-color);
    text-decoration: underline;
    text-underline-offset: 2px;
}

#business_registration_info .business-registration-orders__toggle {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 50%);
    width: var(--business-registration-orders-toggle-size);
    height: var(--business-registration-orders-toggle-size);
    padding: 0;
    margin: 0;
    border: none;
    outline: none;
    background: var(--primary-bright-color);
    cursor: pointer;
    z-index: 2;
}

#business_registration_info .business-registration-orders__toggle-icon {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}

#business_registration_info .business-registration-orders__toggle-icon::before,
#business_registration_info .business-registration-orders__toggle-icon::after {
    content: "";
    position: absolute;
    left: 50%;
    width: var(--business-registration-orders-toggle-line-size);
    height: var(--business-registration-orders-toggle-line-size);
    border-right: var(--business-registration-orders-toggle-line-thickness) solid #000;
    border-bottom: var(--business-registration-orders-toggle-line-thickness) solid #000;
    transform-origin: center;
    transform: translateX(-50%) rotate(45deg);
}

#business_registration_info .business-registration-orders__toggle-icon::before {
    top: 0;
}

#business_registration_info .business-registration-orders__toggle-icon::after {
    top: calc(var(--business-registration-orders-toggle-line-size) - 1px);
}

#business_registration_info .business-registration-orders__toggle.is-expanded .business-registration-orders__toggle-icon::before,
#business_registration_info .business-registration-orders__toggle.is-expanded .business-registration-orders__toggle-icon::after {
    transform: translateX(-50%) rotate(225deg);
}

#business_registration_info .business-registration-orders__toggle:focus-visible {
    outline: none;
}

#business_registration_info .business-registration-page__actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: var(--business-registration-actions-top-gap);
}

#business_registration_info .business-registration-page__actions .btn-outline,
#business_registration_info .business-registration-page__actions .btn-solid {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--business-registration-button-height);
    padding: 0 var(--business-registration-button-padding-x);
    font-size: var(--business-registration-button-font-size);
    font-weight: 700;
    text-decoration: none;
    box-sizing: border-box;
    cursor: pointer;
}

#business_registration_info .business-registration-page__actions .btn-outline {
    color: #000;
    background: #fff;
    border: var(--business-registration-button-border-width) solid #000;
}

#business_registration_info .business-registration-page__actions .btn-solid {
    color: #fff;
    background: #000;
    border: var(--business-registration-button-border-width) solid #000;
}

@media (max-width: 900px) {
    #business_registration_info .business-registration-page {
        padding:
            var(--business-registration-top-padding-mobile)
            var(--business-registration-inline-padding-mobile)
            var(--business-registration-bottom-padding-mobile);
    }

    #business_registration_info .business-registration-meta__row {
        grid-template-columns: var(--business-registration-meta-grid-columns-mobile);
        row-gap: var(--business-registration-meta-row-gap-mobile);
    }

    #business_registration_info .business-registration-orders__table-wrap {
        overflow-x: auto;
        padding-bottom: var(--business-registration-orders-table-wrap-padding-bottom-mobile);
    }

    #business_registration_info .business-registration-orders__table {
        min-width: var(--business-registration-orders-table-min-width-mobile);
    }
}


/* =========================
   Business payment result
========================= */
#business_payment_result {
    background: #fff;
}

#business_payment_result .business-payment-result-page {
    width: 100%;
    min-height: var(--business-payment-result-page-min-height);
    padding:
        var(--business-payment-result-top-padding)
        var(--business-payment-result-inline-padding)
        var(--business-payment-result-bottom-padding);
    background: #fff;
}

#business_payment_result .business-payment-result-page__inner {
    width: 100%;
    max-width: var(--business-payment-result-max-width);
    margin: 0 auto;
}

#business_payment_result .business-payment-result__stage {
    min-height: calc(100vh - var(--header-height-desktop) - 120px);
    display: grid;
    place-items: center;
}

#business_payment_result .business-payment-result__message {
    display: block;
    width: 100%;
    max-width: var(--business-payment-result-hero-width);
    text-align: left;
    color: var(--primary-dark-color);
    text-decoration: none;
    transform: translate(var(--business-payment-result-hero-x), var(--business-payment-result-hero-y));
}

#business_payment_result .business-payment-result__message-line {
    display: block;
    margin: 0;
    font-size: var(--business-payment-result-hero-line-size);
    line-height: var(--business-payment-result-hero-line-height);
    color: inherit;
}

#business_payment_result .business-payment-result__message-line + .business-payment-result__message-line {
    margin-top: var(--business-payment-result-hero-gap);
}

#business_payment_result .business-payment-result__message--error .business-payment-result__message-line {
    color: #8b1e1e;
}

#business_payment_result .business-payment-result__panel {
    width: 100%;
    max-width: var(--business-payment-result-panel-width);
    margin: 0 auto;
    border: var(--business-payment-result-panel-border);
    padding: var(--business-payment-result-panel-padding);
    background: var(--primary-bright-color);
}

#business_payment_result .business-payment-result__meta {
    font-size: var(--business-payment-result-note-size);
    line-height: 1.4;
    color: #555;
}

#business_payment_result .business-payment-result__meta > div + div {
    margin-top: 2px;
}

#business_payment_result .business-payment-result__summary {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #d9d9d9;
}

#business_payment_result .business-payment-result__summary-item {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: var(--business-payment-result-text-size);
    line-height: 1.4;
    color: var(--primary-dark-color);
}

#business_payment_result .business-payment-result__summary-item + .business-payment-result__summary-item {
    margin-top: var(--business-payment-result-summary-gap);
}

#business_payment_result .business-payment-result__summary-item-main {
    min-width: 0;
}

#business_payment_result .business-payment-result__summary-item-name {
    line-height: 1.4;
}

#business_payment_result .business-payment-result__summary-item-qty {
    margin-top: 10px;
    font-size: var(--business-payment-result-note-size);
    line-height: 1.4;
    color: #555;
}

#business_payment_result .business-payment-result__summary-item-price {
    white-space: nowrap;
}

#business_payment_result .business-payment-result__summary-title {
    margin: 0 0 12px;
    font-size: var(--business-payment-result-status-size);
    line-height: 1.4;
    font-weight: 700;
    color: var(--primary-dark-color);
}

#business_payment_result .business-payment-result__summary-row,
#business_payment_result .business-payment-result__summary-total {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-size: var(--business-payment-result-text-size);
    line-height: 1.4;
    color: var(--primary-dark-color);
}

#business_payment_result .business-payment-result__summary-row + .business-payment-result__summary-row {
    margin-top: var(--business-payment-result-summary-gap);
}

#business_payment_result .business-payment-result__summary-total {
    margin-top: 10px;
    font-weight: 700;
}

#business_payment_result .business-payment-result__bank {
    margin-top: 12px;
}

#business_payment_result .business-payment-result__bank-details {
    margin-top: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #d9d9d9;
}

#business_payment_result .business-payment-result__bank-title {
    margin: 0 0 12px;
    font-size: var(--business-payment-result-status-size);
    line-height: 1.4;
    font-weight: 700;
    color: var(--primary-dark-color);
    padding-top: 12px;
    border-top: 1px solid #d9d9d9;
}

#business_payment_result .business-payment-result__bank-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: var(--business-payment-result-text-size);
    line-height: 1.4;
    color: var(--primary-dark-color);
}

#business_payment_result .business-payment-result__bank-row + .business-payment-result__bank-row {
    margin-top: 6px;
}

#business_payment_result .business-payment-result__bank-separator {
    margin: 12px 0;
}

#business_payment_result .business-payment-result__bank-note {
    margin-top: 12px;
    font-size: var(--business-payment-result-note-size);
    line-height: 1.8;
    color: #555;
}

#business_payment_result .business-payment-result__bank-hosted-link {
    margin-top: 14px;
}

#business_payment_result .business-payment-result__order-link-box {
    margin-top: 16px;
}

#business_payment_result .business-payment-result__pending-actions {
    margin-top: 18px;
}

#business_payment_result .business-payment-result__solid-btn,
#business_payment_result .business-payment-result__outline-btn,
#business_payment_result .business-payment-result__text-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--business-payment-result-button-height);
    padding: 0 18px;
    text-decoration: none;
    font-size: var(--business-payment-result-button-font-size);
    font-weight: 700;
    cursor: pointer;
    box-sizing: border-box;
}

#business_payment_result .business-payment-result__outline-btn {
    background: #fff;
    color: #000;
    border: 2px solid #000;
}

#business_payment_result .business-payment-result__outline-btn--danger {
    color: #8b1e1e;
    border-color: #8b1e1e;
}

#business_payment_result .business-payment-result__text-link {
    padding: 0;
    min-height: auto;
    color: var(--primary-dark-color);
    text-decoration: underline;
    text-underline-offset: 2px;
    border: none;
    background: transparent;
}

@media (max-width: 900px) {
    #business_payment_result .business-payment-result-page {
        width: var(--mobile-full-width);
        min-height: var(--business-payment-result-page-min-height-mobile);
        padding:
            var(--business-payment-result-top-padding-mobile)
            var(--business-payment-result-inline-padding-mobile)
            var(--business-payment-result-bottom-padding-mobile);
    }

    #business_payment_result .business-payment-result-page__inner {
        width: var(--mobile-full-width);
        max-width: var(--business-payment-result-inner-max-width-mobile);
        margin: 0 auto;
    }

    #business_payment_result .business-payment-result__stage {
        width: var(--mobile-full-width);
        min-height: var(--business-payment-result-stage-min-height-mobile);
        display: grid;
        place-items: center;
    }

    #business_payment_result .business-payment-result__message {
        width: var(--business-payment-result-message-width-mobile);
        max-width: var(--business-payment-result-message-max-width-mobile);
        margin: 0 auto;
        transform: var(--mobile-reset-transform);
        text-align: var(--mobile-text-align-left);
    }

    #business_payment_result .business-payment-result__message-line {
        font-size: var(--business-payment-result-message-line-size-mobile);
        line-height: var(--business-payment-result-message-line-height-mobile);
    }

    #business_payment_result .business-payment-result__panel {
        width: var(--business-payment-result-panel-width-mobile);
        max-width: var(--business-payment-result-panel-width-mobile);
        margin: 0 auto;
        padding: var(--business-payment-result-panel-padding-mobile);
    }

    #business_payment_result .business-payment-result__meta {
        font-size: var(--business-payment-result-meta-size-mobile);
        line-height: var(--business-payment-result-meta-line-height-mobile);
    }

    #business_payment_result .business-payment-result__summary-title,
    #business_payment_result .business-payment-result__bank-title {
        font-size: var(--business-payment-result-heading-size-mobile);
        line-height: var(--business-payment-result-heading-line-height-mobile);
    }

    #business_payment_result .business-payment-result__summary-item,
    #business_payment_result .business-payment-result__summary-row,
    #business_payment_result .business-payment-result__summary-total,
    #business_payment_result .business-payment-result__bank-row {
        display: grid;
        grid-template-columns: var(--business-payment-result-row-grid-mobile);
        column-gap: var(--business-payment-result-row-column-gap-mobile);
        row-gap: var(--business-payment-result-row-gap-mobile);
        align-items: start;
        font-size: var(--business-payment-result-row-size-mobile);
        line-height: var(--business-payment-result-row-line-height-mobile);
    }

    #business_payment_result .business-payment-result__summary-item {
        grid-template-columns: var(--business-payment-result-row-grid-mobile);
    }

    #business_payment_result .business-payment-result__summary-item-price,
    #business_payment_result .business-payment-result__summary-row > div:last-child,
    #business_payment_result .business-payment-result__summary-total > div:last-child,
    #business_payment_result .business-payment-result__bank-row > div:last-child {
        text-align: right;
        word-break: break-word;
    }

    #business_payment_result .business-payment-result__bank-row > div:first-child,
    #business_payment_result .business-payment-result__summary-row > div:first-child,
    #business_payment_result .business-payment-result__summary-total > div:first-child {
        min-width: 0;
    }

    #business_payment_result .business-payment-result__bank-note {
        font-size: var(--business-payment-result-bank-note-size-mobile);
        line-height: var(--business-payment-result-bank-note-line-height-mobile);
    }

    #business_payment_result .business-payment-result__outline-btn,
    #business_payment_result .business-payment-result__solid-btn {
        width: var(--mobile-full-width);
        min-height: var(--business-payment-result-button-min-height-mobile);
    }
}

