/* =============================================
   ブランドページ 専用スタイル
   ============================================= */
.brand-section {
    padding: clamp(80px,10vw,120px) 0;
    border-bottom: 1px solid rgba(255,255,255,.04);
}
.brand-section.brand-alt {
    background: var(--ink2);
}
.brand-section.brand-hanabi {
    background: linear-gradient(160deg, var(--ink2) 0%, var(--ink3) 100%);
}

/* 2カラムレイアウト */
.brand-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(40px,5vw,72px);
    align-items: center;
}
.brand-layout.rev {
    direction: rtl;
}
.brand-layout.rev > * {
    direction: ltr;
}

/* ビジュアル */
.brand-visual {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.brand-img-main {
    width: 100%;
    aspect-ratio: 4/3;
    background: var(--ink3);
    border: 1px dashed rgba(232,80,26,.2);
    display: flex;
    align-items: center;
    justify-content: center;
}
.brand-img-label {
    font-size: .6rem;
    color: rgba(232,80,26,.3);
    text-transform: uppercase;
    letter-spacing: .1em;
}
.hanabi-img {
    background: linear-gradient(135deg, var(--ink2), var(--ink3));
    border-color: rgba(232,80,26,.25);
}

/* テキストボディ */
.brand-tag {
    display: inline-block;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--fire);
    border: 1px solid rgba(232,80,26,.28);
    padding: 4px 10px;
    background: rgba(232,80,26,.06);
    margin-bottom: 12px;
}
.brand-name {
    font-size: clamp(1.8rem,3vw,2.8rem);
    font-weight: 900;
    letter-spacing: -.03em;
    line-height: 1.1;
    margin-bottom: 8px;
}
.brand-catch {
    font-size: .92rem;
    font-weight: 700;
    color: var(--fog);
    margin-bottom: 16px;
    letter-spacing: .02em;
}
.brand-desc {
    font-size: .84rem;
    color: var(--fog);
    line-height: 1.9;
    margin-bottom: 24px;
}

/* フィーチャー */
.brand-feats {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 28px;
}
.brand-feat {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 16px;
    background: var(--ink3);
    border-left: 3px solid rgba(232,80,26,.25);
    transition: border-left-color .25s;
}
.brand-feat:hover {
    border-left-color: var(--fire);
}
.bf-icon {
    font-size: 1.2rem;
    flex-shrink: 0;
    line-height: 1;
    padding-top: 2px;
}
.brand-feat strong {
    font-size: .82rem;
    font-weight: 800;
    display: block;
    margin-bottom: 4px;
}
.brand-feat p {
    font-size: .76rem;
    color: var(--fog);
    line-height: 1.7;
    margin: 0;
}

/* CTAボタン */
.brand-ctas {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}
.ext-icon {
    font-style: normal;
}

/*　花火大会　統計 */

/*　花火大会　オプション */
.hanabi-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 28px;
}
.hanabi-opt {
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.06);
    padding: 20px;
    transition: border-color .3s;
}
.hanabi-opt:hover {
    border-color: rgba(232,80,26,.2);
}
.hanabi-opt h4 {
    font-size: .84rem;
    font-weight: 800;
    margin-bottom: 8px;
}
.hanabi-opt p {
    font-size: .76rem;
    color: var(--fog);
    line-height: 1.8;
    margin: 0;
}

/*　レスポンシブ */
@media (max-width: 768px) {
    .brand-layout, .brand-layout.rev {
        grid-template-columns: 1fr;
        direction: ltr;
    }
    .brand-visual {
        order: -1;
    }
    .hanabi-options {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 480px) {
    .brand-ctas {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* bf-icon を数字マーカーに変更　*/
.bf-icon {
    font-size: .62rem !important;
    font-weight: 900 !important;
    color: var(--fire) !important;
    letter-spacing: .05em;
    min-width: 28px;
    height: 28px;
    border: 1px solid rgba(232,80,26,.3);
    background: rgba(232,80,26,.08);
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 2px;
    
}

/* ========== デザイン強化 ========== */

/* セクション上部装飾ライン */
.brand-section {
    border-top: 1px solid rgba(255,255,255,.03);
}
.brand-section:first-child {
    border-top: none;
}

/*　ブランド名：グラデーション */
.brand-name {
    background: linear-gradient(135deg, var(--paper) 60%, rgba(232,80,26,.6));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/*　花火セクション：背景強化 */
.brand-section.brand-haanbi {
    background: radial-gradient(ellipse 60% 70% at 80% 30%, rgba(232,80,26,.08), transparent),
    linear-gradient(160deg, var(--ink2) 0%, var(--ink3) 100%) !important;
}

/*　画像メインのアスペクト比とホバー　*/
.brand-img-main {
    transition: border-color .3s;
}
.brand-img-main:hover {
    border-color: rgba(232,80,26,.45);
}

/* stats　数値強調 */

/* ===== Roy Lexie コンセプト ===== */

/* ブランド紹介とコンセプトの間のスペース */
#roy-lexie .brand-layout {
    margin-bottom: clamp(40px,6vw,72px);
}

/* 3ストリップ：横並びで全幅 */
.rl-concepts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid rgba(255,255,255,.08);
    border-bottom: 1px solid rgba(255,255,255,.08);
    margin-bottom: clamp(32px,4vw,56px);
}
.rl-concept {
    display: flex;
    align-items: flex-start;
    gap: clamp(16px,2vw,28px);
    padding: clamp(28px,3.5vw,48px) clamp(20px,2.5vw,36px);
    border-right: 1px solid rgba(255,255,255,.06);
    position: relative;
    transition: background .3s;
}
.rl-concept:last-child {
    border-right: none;
}
.rl-concept:hover {
    background: rgba(255,255,255,.025);
}

/* 大きなナンバー：縦向きに左端 */
.rl-num {
    font-size: clamp(3rem,5vw,5.5rem);
    font-weight: 900;
    color: rgba(232,80,26,.18);
    letter-spacing: -.06em;
    line-height: 1;
    flex-shrink: 0;
    width: clamp(52px,6vw,80px);
    transition: color .3s;
    font-variant-numeric: tabular-nums;
}
.rl-concept:hover .rl-num {
    color: rgba(232,80,26,.5);
}
.rl-text {
    flex: 1;
    padding-top: clamp(6px,1vw,12px);
}
.rl-text h4 {
    font-size: clamp(.84rem,1.1vw,.96rem);
    font-weight: 800;
    color: var(--paper);
    margin-bottom: 10px;
    letter-spacing: -.01em;
}
.rl-text p {
    font-size: .76rem;
    color: var(--fog);
    line-height: 1.95;
    margin: 0;
}

/* フィロソフィー：中央寄せ引用ブロック */
.rl-phil {
    margin: 0;
    padding: clamp(48px,6vw,80px) var(--pad-x);
    text-align: center;
    position: relative;
}
.rl-phil::before{
    content: '"';
    position: absolute;
    top: clamp(12px,2vw,24px);
    left: 50%;
    transform: translateX(-50%);
    font-size: clamp(5rem,10vw,10rem);
    line-height: 1;
    color: rgba(232,80,26,.08);
    font-family: Georgia, "Times New Roman", serif;
    pointer-events: none;
}
.rl-phil-inner {
    position: relative;
    z-index: 1;
    max-width: 640px;
    margin: 0 auto;
}
.rl-phil p {
    font-size: clamp(1rem,1.5vw,1.2rem);
    color: var(--paper);
    line-height: 2;
    font-style: italic;
    font-weight: 500;
    margin: 0 0 20px;
    letter-spacing: .01em;
}
.rl-phil cite {
    font-size: .72rem;
    color: var(--ash);
    font-style: normal;
    letter-spacing: .15em;
    text-transform: uppercase;
}

/* hanabi 統計数値を大きく */

@media (max-width: 768px) {
    .rl-concepts {
        grid-template-columns: 1fr;
    }
    .rl-concept {
       border-right: none;
       border-bottom: 1px solid rgba(255,255,255,.06);
       padding: 24px 0;
    }
    .rl-concept:last-child {
        border-bottom: none;
    }
    .rl-num {
        font-size: clamp(2.4rem,8vw,3.5rem);
        width: 48px;
    }
}
@media (max-width: 480px) {
    .rl-phil {
        padding: 40px var(--pad-x);
    }
    .rl-phil p {
        font-size: .95rem;
    }
}


/* ===== 知立花火大会 統計ボックス（改訂）===== */
.hanabi-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    background: rgba(232,80,26,.15);
    margin: clamp(24px,3vw,36px) 0;
    border: 1px solid rgba(232,80,26,.2);
}
.h-stat {
    background: var(--ink);
    padding: clamp(20px,2.5vw,32px) clamp(16px,2vw,24px);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.h-stat-num {
    display: block;
    font-size: clamp(1.8rem,3vw,2.8rem);
    font-weight: 900;
    color: var(--paper);
    letter-spacing: -.04em;
    line-height: 1.1;
}
.h-stat-unit {
    font-size: .78em;
    font-weight: 700;
    color: var(--fire);
    letter-spacing: 0;
}
.h-stat-label {
    display: block;
    font-size: .68rem;
    color: var(--ash);
    letter-spacing: .08em;
    text-transform: uppercase;
    padding-top: 4px;
    border-top: 1px solid rgba(255,255,255,.06);
    width: 100%;
    text-align: center;
}