@charset "UTF-8";

/* ══════════════════════════════════════════════════════════
   pub.css  —  FastOrder X 공개 페이지 공통 스타일
   모든 public/* 페이지에서 pub_template.jsp 를 통해 로드됨
══════════════════════════════════════════════════════════ */

/* ── Local Fonts ── */
@import url('/resources/css/sub/montserrat.css');
@import url('/resources/css/sub/noto-sans-kr.css');

/* ── CSS 변수 (테마) ── */
:root {
    /* Bootstrap 오버라이드 */
    --bs-primary:                #003597;
    --bs-primary-rgb:            0, 53, 151;
    --bs-link-color:             #003597;
    --bs-link-color-rgb:         0, 53, 151;
    --bs-link-hover-color:       #002b7a;
    --bs-btn-bg:                 #003597;
    --bs-btn-border-color:       #003597;
    --bs-btn-hover-bg:           #002b7a;
    --bs-btn-hover-border-color: #002b7a;
    --bs-btn-active-bg:          #002270;

    /* FastOrder 전용 */
    --fo-accent:       #003597;
    --fo-accent-dark:  #002b7a;
    --fo-accent-light: #e2eaf6;
    --fo-accent-xl:    #f0f4fb;
    --fo-orange:       #ff6a00;
    --fo-bg:           #f7f9fc;
    --fo-text:         #1a1a2e;

    /* Flat design — 모든 라운딩 제거 */
    --bs-border-radius:     0;
    --bs-border-radius-sm:  0;
    --bs-border-radius-lg:  0;
    --bs-border-radius-xl:  0;
    --bs-border-radius-xxl: 0;
    --bs-border-radius-pill:0;
}

/* ── Bootstrap 컴포넌트 라운딩 강제 제거 ── */
.btn, .form-control, .form-select, .input-group,
.card, .alert, .badge, .modal-content, .dropdown-menu,
.navbar-toggler, .list-group-item, .nav-tabs, .nav-pills {
    border-radius: 0 !important;
}

/* ── 전역 링크 / 텍스트 ── */
a                   { color: var(--fo-accent); }
a:hover             { color: var(--fo-accent-dark); }
.text-primary       { color: var(--fo-accent) !important; }

.btn-outline-primary {
    color: var(--fo-accent);
    border-color: var(--fo-accent);
}
.btn-outline-primary:hover {
    background-color: var(--fo-accent);
    border-color: var(--fo-accent);
    color: #fff;
}
.form-control:focus {
    border-color: var(--fo-accent);
    box-shadow: 0 0 0 3px rgba(0, 53, 151, 0.12);
}

/* ── 기본 body / 폰트 ── */
body,
body p, body span, body li, body a,
body td, body th, body label, body input,
body button, body select, body textarea, body div {
    font-family: 'Noto Sans KR', sans-serif;
}
body {
    background: var(--fo-bg);
    color: var(--fo-text);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
main { flex: 1; }

/* ── 로고 공통 ── */
.fo-logo-text {
    font-family: 'Montserrat', sans-serif;
    font-style: italic;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: var(--fo-accent);
}
.fo-logo-text sup {
    font-size: 0.85em;
    position: relative;
    top: -0.3em;
    color: var(--fo-orange);
    font-weight: 900;
}

/* ── Navbar ── */
.pub-nav {
    background: var(--fo-accent);
    border-bottom: none;
}
.pub-nav .navbar-brand {
    font-family: 'Montserrat', sans-serif;
    font-style: italic;
    font-weight: 800;
    font-size: 1.3rem;
    letter-spacing: 0.02em;
    color: #fff;
}
.pub-nav .navbar-brand sup {
    font-size: 0.85em;
    position: relative;
    top: -0.3em;
    color: var(--fo-orange);
    font-weight: 900;
}
.pub-nav .nav-link { color: rgba(255,255,255,0.8) !important; }
.pub-nav .nav-link:hover { color: #fff !important; }
.pub-nav .navbar-toggler {
    border-color: rgba(255,255,255,0.4);
}
.pub-nav .navbar-toggler-icon { filter: invert(1); }
.pub-nav .btn-nav-dl {
    background: #fff;
    color: var(--fo-accent);
    border: none;
    padding: 5px 14px;
    font-weight: 700;
    font-size: 0.78rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    letter-spacing: 0.02em;
    transition: opacity 0.15s;
    white-space: nowrap;
}
.pub-nav .btn-nav-dl:hover { opacity: 0.88; color: var(--fo-accent); }
.pub-nav .btn-nav-login {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.5);
    padding: 5px 16px;
    font-weight: 700;
    font-size: 0.84rem;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    letter-spacing: 0.02em;
    transition: background 0.15s, border-color 0.15s;
}
.pub-nav .btn-nav-login:hover {
    background: rgba(255,255,255,0.1);
    border-color: #fff;
    color: #fff;
}

/* ── Footer ── */
.pub-footer {
    background: #2b2d36;
    color: rgba(255,255,255,0.45);
    padding: 52px 0 0;
    font-size: 0.88rem;
    border-top: none;
}
.pub-footer a { color: rgba(255,255,255,0.45); text-decoration: none; }
.pub-footer a:hover { color: #fff; }

.footer-cols {
    display: flex;
    gap: 48px;
    align-items: flex-start;
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    flex-wrap: wrap;
}
.footer-col-brand { flex: 1.6; min-width: 200px; }
.footer-cols-links { display: contents; }
.footer-col { flex: 1; min-width: 140px; }

.footer-logo {
    font-family: 'Montserrat', sans-serif;
    font-style: italic;
    font-weight: 800;
    color: #fff;
    font-size: 1.05rem;
    margin-bottom: 12px;
    display: block;
}
.footer-logo sup { color: var(--fo-orange); }
.footer-desc {
    font-size: 0.83rem;
    color: rgba(255,255,255,0.38);
    line-height: 1.8;
    margin: 0;
    white-space: nowrap;
}

.footer-col-title {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.6);
    margin-bottom: 14px;
}
.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.footer-links a {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.42);
    text-decoration: none;
    transition: color 0.15s;
}
.footer-links a:hover { color: #fff; }

.footer-bottom {
    padding: 20px 0;
    font-size: 0.78rem;
    color: rgba(255,255,255,0.25);
    text-align: center;
}
.footer-biz-info {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px 20px;
    margin-bottom: 8px;
    font-size: 0.76rem;
    color: rgba(255,255,255,0.3);
}
.footer-copyright {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.2);
}

@media (max-width: 640px) {
    .footer-cols {
        flex-direction: column;
        gap: 0;
        align-items: center;
    }
    .footer-col-brand {
        flex: none;
        width: 100%;
        min-width: 0;
        order: -1;
        text-align: center;
        padding-bottom: 20px;
        margin-bottom: 20px;
        border-bottom: 1px solid rgba(255,255,255,0.08);
    }
    .footer-cols-links {
        display: flex;
        flex-direction: row;
        gap: 16px;
        width: 100%;
        justify-content: center;
    }
    .footer-col {
        flex: 0 0 auto;
        min-width: 120px;
        max-width: 160px;
    }
    .footer-links { gap: 8px; }
}

/* ── 공통 카드 ── */
.fo-card {
    background: #fff;
    border: 1px solid #e8edf5;
    box-shadow: 0 2px 16px rgba(0,53,151,0.05);
    padding: 28px 32px;
}

/* ── 섹션 공통 레이블 ── */
.fo-eyebrow {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--fo-accent);
    margin-bottom: 0.5rem;
}
