/* ================================================

   운암동 벽산블루밍 1단지 - Apple-Style Design System

   ================================================ */



/* --- Design Tokens --- */

:root {

    --c-bg: #fff;

    --c-bg-secondary: #f5f5f7;

    --c-bg-elevated: #fbfbfd;

    --c-text: #1d1d1f;

    --c-text-secondary: #6e6e73;

    --c-text-tertiary: #86868b;

    --c-border: #d2d2d7;

    --c-border-light: #e8e8ed;

    --c-accent: #0071e3;

    --c-accent-hover: #0077ed;

    --c-danger: #ff3b30;

    --c-success: #34c759;

    --c-warning: #ff9500;

    --c-nav-bg: rgba(251, 251, 253, 0.8);

    --c-nav-border: rgba(0, 0, 0, 0.08);

    --nav-h: 48px;

    --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --max-w: 980px;

    --max-w-lg: 1200px;

    --radius: 18px;

    --radius-sm: 10px;

    --shadow-card: 0 4px 30px rgba(0, 0, 0, 0.06);

    --shadow-elevated: 0 12px 40px rgba(0, 0, 0, 0.12);

    --transition: 0.3s cubic-bezier(.25, .1, .25, 1);

}



/* --- Base Reset --- */

*,

*::before,

*::after {

    box-sizing: border-box;

    margin: 0;

    padding: 0;

}



html {

    scroll-behavior: smooth;

    -webkit-font-smoothing: antialiased;

}



body {

    font-family: var(--font);

    color: var(--c-text);

    background: var(--c-bg);

    line-height: 1.5;

    overflow-x: hidden;

}



a {

    text-decoration: none;

    color: inherit;

}



ul {

    list-style: none;

}



img {

    max-width: 100%;

    display: block;

}



button {

    cursor: pointer;

    border: none;

    background: none;

    font-family: inherit;

}



input,

textarea {

    font-family: inherit;

}



/* --- Apple-Style Navigation --- */

.navbar {

    position: fixed;

    top: 0;

    left: 0;

    right: 0;

    height: var(--nav-h);

    background: var(--c-nav-bg);

    backdrop-filter: saturate(180%) blur(20px);

    -webkit-backdrop-filter: saturate(180%) blur(20px);

    border-bottom: 1px solid var(--c-nav-border);

    z-index: 9000;

    transition: background var(--transition);

}



.navbar.hero-mode {

    background: rgba(0, 0, 0, 0.5);

    border-bottom-color: transparent;

}



.navbar.hero-mode .nav-link,

.navbar.hero-mode .nav-logo,

.navbar.hero-mode .nav-icon-btn,

.navbar.hero-mode .mobile-menu-btn {

    color: rgba(255, 255, 255, 0.92);

}



.navbar.hero-mode .nav-link:hover {

    color: #fff;

}



.navbar.scrolled {

    background: var(--c-nav-bg);

    border-bottom-color: var(--c-nav-border);

}



.navbar.scrolled .nav-link,

.navbar.scrolled .nav-logo,

.navbar.scrolled .nav-icon-btn,

.navbar.scrolled .mobile-menu-btn {

    color: var(--c-text);

}



.nav-container {

    max-width: var(--max-w);

    margin: 0 auto;

    height: 100%;

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 0 22px;

}



.nav-links-left,

.nav-links-right {

    display: flex;

    align-items: center;

    gap: 24px;

}



.nav-link {

    font-size: 12px;

    font-weight: 500;

    color: var(--c-text);

    opacity: 0.85;

    transition: opacity var(--transition);

    letter-spacing: -0.01em;

}



.nav-link:hover {

    opacity: 1;

}



.nav-logo {

    font-size: 16px;

    font-weight: 700;

    color: var(--c-text);

    letter-spacing: -0.03em;

    white-space: nowrap;

}



.nav-icon-btn {

    display: flex;

    align-items: center;

    justify-content: center;

    color: var(--c-text);

    opacity: 0.85;

    transition: opacity var(--transition);

}



.nav-icon-btn:hover {

    opacity: 1;

}



.mobile-menu-btn {

    display: none;

    color: var(--c-text);

}



/* --- Mobile Menu --- */

.mobile-menu {

    position: fixed;

    top: var(--nav-h);

    left: 0;

    right: 0;

    background: var(--c-bg);

    transform: translateY(-100%);

    opacity: 0;

    transition: transform 0.4s ease, opacity 0.3s ease;

    z-index: 8999;

    border-bottom: 1px solid var(--c-border-light);

    pointer-events: none;

}



.mobile-menu.open {

    transform: translateY(0);

    opacity: 1;

    pointer-events: auto;

}



.mobile-menu-inner {

    padding: 12px 22px 24px;

}



.mobile-link {

    display: block;

    padding: 14px 0;

    font-size: 17px;

    font-weight: 600;

    color: var(--c-text);

    border-bottom: 1px solid var(--c-border-light);

    transition: color var(--transition);

}



.mobile-link:last-child {

    border-bottom: none;

}



.mobile-link:hover {

    color: var(--c-accent);

}



.mobile-overlay {

    position: fixed;

    inset: 0;

    background: rgba(0, 0, 0, 0.4);

    z-index: 8998;

    opacity: 0;

    pointer-events: none;

    transition: opacity 0.3s;

}



.mobile-overlay.show {

    opacity: 1;

    pointer-events: auto;

}



/* --- Hero Section (Apple-style full bleed) --- */

.hero {

    position: relative;

    width: 100%;

    min-height: 100vh;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    background: #000;

}



.hero-bg {

    position: absolute;

    inset: 0;

    background-size: cover;

    background-position: center 40%;

    opacity: 1;

    transition: transform 8s ease;

}



.hero:hover .hero-bg {

    transform: scale(1.03);

}



.hero-overlay {

    position: absolute;

    inset: 0;

    background: linear-gradient(180deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.15) 40%, rgba(0, 0, 0, 0.55) 100%);

}



.hero-content {

    position: relative;

    z-index: 2;

    text-align: center;

    color: #fff;

    padding: 0 24px;

}



.hero-title {

    font-size: clamp(48px, 8vw, 80px);

    font-weight: 800;

    letter-spacing: -0.04em;

    line-height: 1.05;

    margin-bottom: 20px;

}



.hero-subtitle {

    font-size: clamp(18px, 2.5vw, 24px);

    font-weight: 400;

    opacity: 0.85;

    letter-spacing: -0.01em;

}



.hero-scroll-indicator {

    position: absolute;

    bottom: 40px;

    left: 50%;

    transform: translateX(-50%);

    z-index: 2;

    animation: bounce 2s infinite;

}



@keyframes bounce {



    0%,

    20%,

    50%,

    80%,

    100% {

        transform: translateX(-50%) translateY(0);

    }



    40% {

        transform: translateX(-50%) translateY(-10px);

    }



    60% {

        transform: translateX(-50%) translateY(-5px);

    }

}



/* --- Container --- */

.container {

    max-width: var(--max-w);

    margin: 0 auto;

    padding: 0 22px;

}



.container-lg {

    max-width: var(--max-w-lg);

    margin: 0 auto;

    padding: 0 22px;

}



/* --- Apple-style Section Cards (Grid) --- */

.grid-section {

    padding: 60px 0;

}



.grid-cards {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

    gap: 16px;

}



.grid-card {

    position: relative;

    border-radius: var(--radius);

    overflow: hidden;

    background: var(--c-bg-secondary);

    min-height: 500px;

    display: flex;

    flex-direction: column;

    cursor: pointer;

    transition: transform var(--transition);

}



.grid-card:hover {

    transform: scale(1.01);

}



.grid-card-img {

    position: absolute;

    inset: 0;

    background-size: cover;

    background-position: center;

    transition: transform 0.6s ease;

}



.grid-card:hover .grid-card-img {

    transform: scale(1.05);

}



.grid-card-gradient {

    position: absolute;

    inset: 0;

    background: linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, 0.75) 100%);

}



.grid-card-text {

    position: absolute;

    bottom: 0;

    left: 0;

    right: 0;

    padding: 32px;

    color: #fff;

    z-index: 2;

}



.grid-card-text h3 {

    font-size: 28px;

    font-weight: 700;

    letter-spacing: -0.02em;

    margin-bottom: 8px;

}



.grid-card-text p {

    font-size: 15px;

    opacity: 0.85;

    font-weight: 400;

}



/* --- Intro Section --- */

.intro-section {

    padding: 100px 0;

    text-align: center;

}



.intro-section h2 {

    font-size: clamp(32px, 5vw, 56px);

    font-weight: 800;

    letter-spacing: -0.04em;

    margin-bottom: 24px;

    color: var(--c-text);

}



.intro-section p {

    font-size: clamp(16px, 2vw, 21px);

    color: var(--c-text-secondary);

    max-width: 700px;

    margin: 0 auto;

    line-height: 1.6;

    white-space: pre-wrap;

}



/* --- Page Header (sub-pages) --- */

.page-header {

    padding: 100px 22px 60px;

    text-align: center;

    background: var(--c-bg-secondary);

}



.page-header h1 {

    font-size: clamp(32px, 5vw, 48px);

    font-weight: 800;

    letter-spacing: -0.04em;

    margin-bottom: 12px;

}



.page-header p {

    font-size: clamp(15px, 2vw, 18px);

    color: var(--c-text-secondary);

    max-width: 600px;

    margin: 0 auto;

}



/* --- Sections --- */

.section {

    padding: 80px 22px;

}



.section-title {

    font-size: 24px;

    font-weight: 700;

    letter-spacing: -0.02em;

    margin-bottom: 32px;

    padding-bottom: 12px;

    border-bottom: 2px solid var(--c-text);

}



/* --- Feature Cards --- */

.feature-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));

    gap: 20px;

}



.feature-card {

    background: var(--c-bg);

    border: 1px solid var(--c-border-light);

    border-radius: var(--radius);

    padding: 40px 28px;

    transition: transform var(--transition), box-shadow var(--transition);

}



.feature-card:hover {

    transform: translateY(-4px);

    box-shadow: var(--shadow-card);

}



.feature-card h3 {

    font-size: 22px;

    font-weight: 700;

    margin-bottom: 12px;

    letter-spacing: -0.02em;

}



.feature-card p {

    color: var(--c-text-secondary);

    line-height: 1.6;

    font-size: 15px;

}



/* --- Stats Bar --- */

.stats-bar {

    display: flex;

    justify-content: space-around;

    background: var(--c-bg-secondary);

    border-radius: var(--radius-sm);

    padding: 28px;

    margin-bottom: 60px;

    gap: 20px;

    flex-wrap: wrap;

}



.stat-item {

    text-align: center;

    min-width: 120px;

}



.stat-label {

    font-size: 13px;

    color: var(--c-text-secondary);

    margin-bottom: 6px;

    font-weight: 500;

}



.stat-value {

    font-size: 22px;

    font-weight: 800;

    letter-spacing: -0.02em;

}



/* --- Data Table --- */

.data-table {

    width: 100%;

    border-collapse: collapse;

    text-align: left;

}



.data-table thead tr {

    background: var(--c-bg-secondary);

    border-bottom: 1px solid var(--c-border);

}



.data-table th {

    padding: 14px 16px;

    font-weight: 600;

    font-size: 14px;

    color: var(--c-text-secondary);

}



.data-table td {

    padding: 14px 16px;

    font-size: 15px;

    border-bottom: 1px solid var(--c-border-light);

}



.data-table tr {

    transition: background var(--transition);

}



.data-table tbody tr:hover {

    background: var(--c-bg-secondary);

}



/* --- Notice Table --- */

.notice-table {

    width: 100%;

    border-collapse: collapse;

    text-align: center;

}



.notice-table thead tr {

    background: var(--c-bg-secondary);

    border-bottom: 1px solid var(--c-border);

    height: 48px;

}



.notice-table th {

    padding: 12px 16px;

    font-weight: 600;

    font-size: 14px;

}



.notice-table td {

    padding: 14px 16px;

    font-size: 15px;

    border-bottom: 1px solid var(--c-border-light);

}



.notice-table tbody tr {

    cursor: pointer;

    transition: background var(--transition);

    height: 56px;

}



.notice-table tbody tr:hover {

    background: var(--c-bg-secondary);

}



.notice-important-badge {

    display: inline-flex;

    align-items: center;

    gap: 4px;

    background: #fee2e2;

    color: #b91c1c;

    padding: 3px 10px;

    border-radius: 4px;

    font-size: 12px;

    font-weight: 700;

}



/* --- Notice Detail --- */

.notice-detail {

    background: var(--c-bg);

    border-radius: var(--radius);

    border: 1px solid var(--c-border-light);

    overflow: hidden;

    box-shadow: var(--shadow-card);

}



.notice-detail-header {

    padding: 40px;

    border-bottom: 1px solid var(--c-border-light);

    background: var(--c-bg-secondary);

}



.notice-detail-header h1 {

    font-size: clamp(24px, 3vw, 32px);

    font-weight: 800;

    line-height: 1.3;

    margin-bottom: 16px;

}



.notice-detail-meta {

    display: flex;

    gap: 24px;

    color: var(--c-text-secondary);

    font-size: 15px;

}



.notice-detail-meta span {

    display: flex;

    align-items: center;

    gap: 6px;

}



.notice-detail-body {

    padding: 50px 40px;

    min-height: 250px;

    font-size: 17px;

    line-height: 1.8;

    color: #374151;

    white-space: pre-line;

}



/* --- Info Card (Office, Facilities) --- */

.info-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));

    gap: 28px;

}



.info-card {

    background: var(--c-bg-secondary);

    border-radius: var(--radius);

    padding: 36px;

}



.info-card-header {

    display: flex;

    align-items: center;

    gap: 14px;

    margin-bottom: 20px;

    padding-bottom: 14px;

    border-bottom: 2px solid var(--c-text);

}



.info-card-header svg {

    flex-shrink: 0;

}



.info-card-header h2 {

    font-size: 22px;

    font-weight: 700;

}



.info-list {

    display: flex;

    flex-direction: column;

    gap: 10px;

}



.info-list-item {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 8px 0;

    font-size: 16px;

}



.info-list-item .label {

    font-weight: 600;

}



.info-list-item.highlight {

    color: var(--c-danger);

    font-weight: 600;

}



.info-list-item.emergency {

    color: var(--c-danger);

}



/* --- Facility Card --- */

.facility-card {

    display: flex;

    gap: 28px;

    padding: 36px;

    border: 1px solid var(--c-border-light);

    border-radius: var(--radius);

    align-items: center;

    background: var(--c-bg);

    position: relative;

    overflow: hidden;

    transition: transform var(--transition);

}



.facility-card:hover {

    transform: translateY(-2px);

}



.facility-closed-overlay {

    position: absolute;

    inset: 0;

    background: rgba(245, 245, 247, 0.6);

    z-index: 1;

    pointer-events: none;

}



.facility-icon {

    flex: 0 0 100px;

    height: 100px;

    background: var(--c-bg-secondary);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    z-index: 2;

}



.facility-icon svg {

    width: 40px;

    height: 40px;

}



.facility-info {

    flex: 1;

    z-index: 2;

}



.facility-info h2 {

    font-size: 22px;

    font-weight: 700;

    margin-bottom: 8px;

}



.facility-info p {

    color: var(--c-text-secondary);

    margin-bottom: 12px;

    line-height: 1.6;

}



.facility-time {

    display: inline-block;

    background: var(--c-bg-secondary);

    padding: 10px 18px;

    border-radius: var(--radius-sm);

    font-weight: 600;

    font-size: 14px;

}



.facility-time .note {

    color: var(--c-text-secondary);

    font-weight: 400;

    margin-left: 8px;

}



.closed-badge {

    background: #fee2e2;

    color: #b91c1c;

    padding: 4px 12px;

    border-radius: 20px;

    font-size: 13px;

    font-weight: 700;

    display: inline-flex;

    align-items: center;

    gap: 4px;

}



/* --- Civil Section Card --- */

.civil-card {

    border: 1px solid var(--c-border-light);

    border-radius: var(--radius);

    overflow: hidden;

    margin-bottom: 28px;

}



.civil-card-header {

    background: var(--c-bg-secondary);

    padding: 24px 28px;

    border-bottom: 1px solid var(--c-border-light);

    display: flex;

    align-items: center;

    gap: 18px;

}



.civil-card-icon {

    width: 56px;

    height: 56px;

    background: var(--c-text);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-shrink: 0;

}



.civil-card-icon svg {

    color: #fff;

    width: 28px;

    height: 28px;

}



.civil-card-header-text h2 {

    font-size: 20px;

    font-weight: 700;

    margin-bottom: 4px;

}



.civil-card-header-text p {

    color: var(--c-text-secondary);

    font-size: 14px;

}



.civil-card-body {

    padding: 36px 28px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    flex-wrap: wrap;

    gap: 24px;

}



.civil-phone h3 {

    font-size: 14px;

    color: var(--c-text-secondary);

    margin-bottom: 6px;

}



.civil-phone .phone-number {

    font-size: 28px;

    font-weight: 800;

    letter-spacing: -0.02em;

}



.civil-note {

    background: #fffbeb;

    color: #b45309;

    padding: 14px 20px;

    border-radius: var(--radius-sm);

    border: 1px solid #fde68a;

    max-width: 350px;

    line-height: 1.6;

    font-size: 14px;

}



.civil-hours {

    display: flex;

    flex-direction: column;

    gap: 8px;

    font-size: 15px;

}



.civil-hours span {

    display: flex;

    align-items: center;

    gap: 8px;

}



/* --- Ads Section --- */

.ads-intro {

    background: var(--c-bg-secondary);

    padding: 24px 28px;

    border-radius: var(--radius);

    border-left: 4px solid var(--c-text);

    margin-bottom: 48px;

    display: flex;

    gap: 18px;

    align-items: flex-start;

}



.ads-intro svg {

    flex-shrink: 0;

    margin-top: 3px;

}



.ads-intro h3 {

    font-size: 18px;

    font-weight: 700;

    margin-bottom: 8px;

}



.ads-intro p {

    color: var(--c-text-secondary);

    line-height: 1.6;

    white-space: pre-wrap;

}



.ads-grid {

    display: grid;

    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));

    gap: 20px;

}



.ad-card {

    border: 1px solid var(--c-border-light);

    border-radius: var(--radius);

    padding: 40px 28px;

    text-align: center;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    min-height: 280px;

    background: var(--c-bg);

    transition: transform var(--transition), box-shadow var(--transition);

}



.ad-card:hover {

    transform: translateY(-4px);

    box-shadow: var(--shadow-card);

}



.ad-card.empty {

    border-style: dashed;

    background: #fafafa;

}



.ad-card svg {

    margin-bottom: 18px;

}



.ad-card h3 {

    font-size: 20px;

    font-weight: 700;

    margin-bottom: 8px;

}



.ad-card p {

    color: var(--c-text-secondary);

    line-height: 1.6;

}



/* --- Address Card --- */

.address-card {

    text-align: center;

    padding: 40px;

    border: 1px solid var(--c-border-light);

    border-radius: var(--radius);

    margin-top: 40px;

}



.address-card svg {

    margin: 0 auto 14px;

    color: var(--c-text-secondary);

}



.address-card h3 {

    font-size: 20px;

    font-weight: 700;

    margin-bottom: 10px;

}



.address-card p {

    color: var(--c-text-secondary);

    font-size: 16px;

}



/* --- Gallery --- */

.gallery-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));

    gap: 16px;

}



.gallery-grid img {

    width: 100%;

    height: 250px;

    object-fit: cover;

    border-radius: var(--radius-sm);

    background: var(--c-bg-secondary);

}



/* --- Back Button --- */

.back-btn {

    display: inline-flex;

    align-items: center;

    gap: 6px;

    color: var(--c-text-secondary);

    font-weight: 600;

    font-size: 15px;

    margin-bottom: 24px;

    transition: color var(--transition);

}



.back-btn:hover {

    color: var(--c-accent);

}



/* --- Footer (Apple-style) --- */

.footer {

    background: var(--c-bg-secondary);

    border-top: 1px solid var(--c-border);

    padding: 30px 22px 20px;

    font-size: 12px;

    color: var(--c-text-secondary);

}



.footer-inner {

    max-width: var(--max-w);

    margin: 0 auto;

}



.footer-top {

    display: flex;

    justify-content: space-between;

    gap: 40px;

    padding-bottom: 24px;

    border-bottom: 1px solid var(--c-border);

    margin-bottom: 16px;

    flex-wrap: wrap;

}



.footer-brand h2 {

    font-size: 18px;

    font-weight: 700;

    color: var(--c-text);

    margin-bottom: 6px;

}



.footer-brand p {

    color: var(--c-text-tertiary);

    font-size: 13px;

}



.footer-columns {

    display: flex;

    gap: 60px;

    flex-wrap: wrap;

}



.footer-col h4 {

    font-size: 12px;

    font-weight: 600;

    color: var(--c-text);

    margin-bottom: 10px;

    letter-spacing: 0.05em;

}



.footer-col ul {

    display: flex;

    flex-direction: column;

    gap: 6px;

}



.footer-col a {

    color: var(--c-text-secondary);

    transition: color var(--transition);

    font-size: 12px;

}



.footer-col a:hover {

    color: var(--c-text);

}



.footer-bottom {

    display: flex;

    justify-content: space-between;

    align-items: center;

    flex-wrap: wrap;

    gap: 12px;

}



.footer-legal {

    display: flex;

    gap: 16px;

}



.footer-legal a {

    color: var(--c-text-secondary);

    font-size: 12px;

}



.footer-legal a:hover {

    color: var(--c-text);

}



/* --- Admin Modal --- */

.admin-modal {

    position: fixed;

    inset: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    z-index: 10000;

    opacity: 0;

    pointer-events: none;

    transition: opacity 0.3s;

}



.admin-modal.show {

    opacity: 1;

    pointer-events: auto;

}



.admin-modal-backdrop {

    position: absolute;

    inset: 0;

    background: rgba(0, 0, 0, 0.5);

}



.admin-modal-content {

    position: relative;

    z-index: 1;

    background: var(--c-bg);

    border-radius: var(--radius);

    padding: 36px;

    width: 320px;

    box-shadow: var(--shadow-elevated);

}



.admin-modal-header {

    text-align: center;

    margin-bottom: 24px;

}



.admin-lock-icon {

    width: 48px;

    height: 48px;

    background: var(--c-bg-secondary);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 12px;

}



.admin-modal-header h3 {

    font-size: 20px;

    font-weight: 700;

}



#adminLoginForm {

    display: flex;

    flex-direction: column;

    gap: 14px;

}



#adminLoginForm input {

    padding: 12px 16px;

    border-radius: var(--radius-sm);

    border: 1px solid var(--c-border);

    outline: none;

    font-size: 15px;

    transition: border-color var(--transition);

}



#adminLoginForm input:focus {

    border-color: var(--c-accent);

}



.admin-login-btn {

    padding: 14px;

    border-radius: var(--radius-sm);

    background: var(--c-text);

    color: #fff;

    font-weight: 600;

    font-size: 15px;

    transition: background var(--transition);

}



.admin-login-btn:hover {

    background: #333;

}



.admin-cancel-btn {

    color: var(--c-text-secondary);

    font-size: 14px;

    transition: color var(--transition);

}



.admin-cancel-btn:hover {

    color: var(--c-text);

}



/* --- Admin Toolbar --- */

.admin-toolbar {

    position: fixed;

    bottom: 20px;

    right: 20px;

    background: var(--c-bg);

    padding: 12px 20px;

    border-radius: var(--radius);

    box-shadow: var(--shadow-elevated);

    border: 1px solid var(--c-border-light);

    display: flex;

    align-items: center;

    gap: 14px;

    z-index: 9999;

}



.admin-toolbar-dot {

    width: 10px;

    height: 10px;

    border-radius: 50%;

    background: var(--c-text-tertiary);

    transition: background var(--transition);

}



.admin-toolbar-dot.active {

    background: var(--c-success);

}



.admin-toolbar-label {

    font-size: 14px;

    font-weight: 600;

}



.admin-toolbar-btn {

    display: flex;

    align-items: center;

    gap: 6px;

    padding: 8px 14px;

    border-radius: 8px;

    font-size: 13px;

    font-weight: 600;

    transition: all var(--transition);

}



.admin-toolbar-btn.edit-btn {

    background: var(--c-bg-secondary);

    color: var(--c-text);

    border: 1px solid var(--c-text);

}



.admin-toolbar-btn.edit-btn.active {

    background: var(--c-text);

    color: #fff;

}



.admin-toolbar-btn.logout-btn {

    background: transparent;

    color: var(--c-danger);

    border: 1px solid var(--c-danger);

}



/* --- Admin FAB --- */

.admin-fab {

    position: fixed;

    bottom: 24px;

    right: 24px;

    width: 52px;

    height: 52px;

    border-radius: 50%;

    background: var(--c-text);

    color: #fff;

    display: flex;

    align-items: center;

    justify-content: center;

    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);

    z-index: 9999;

    transition: transform var(--transition);

}



.admin-fab:hover {

    transform: scale(1.1);

}



/* --- Edit Modal --- */

.edit-modal {

    position: fixed;

    inset: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    z-index: 10001;

}



.edit-modal-backdrop {

    position: absolute;

    inset: 0;

    background: rgba(0, 0, 0, 0.5);

}



.edit-modal-content {

    position: relative;

    z-index: 1;

    background: var(--c-bg);

    border-radius: var(--radius);

    width: 500px;

    max-width: 95vw;

    max-height: 85vh;

    display: flex;

    flex-direction: column;

    box-shadow: var(--shadow-elevated);

    overflow: hidden;

}



.edit-modal-header {

    padding: 20px 24px;

    border-bottom: 1px solid var(--c-border-light);

    background: var(--c-bg-secondary);

    display: flex;

    justify-content: space-between;

    align-items: center;

}



.edit-modal-header h3 {

    font-size: 18px;

    font-weight: 700;

}



.edit-close-btn {

    font-size: 24px;

    color: var(--c-text-secondary);

    transition: color var(--transition);

}



.edit-close-btn:hover {

    color: var(--c-text);

}



.edit-modal-body {

    padding: 24px;

    overflow-y: auto;

    flex: 1;

}



.edit-modal-body label {

    display: block;

    font-size: 13px;

    font-weight: 600;

    color: #374151;

    margin-bottom: 6px;

}



.edit-modal-body input,

.edit-modal-body textarea {

    width: 100%;

    padding: 10px 14px;

    border-radius: 8px;

    border: 1px solid var(--c-border);

    outline: none;

    font-size: 15px;

    margin-bottom: 16px;

    transition: border-color var(--transition);

}



.edit-modal-body input:focus,

.edit-modal-body textarea:focus {

    border-color: var(--c-accent);

}



.edit-modal-body textarea {

    height: 120px;

    resize: vertical;

}



.edit-modal-footer {

    padding: 16px 24px;

    border-top: 1px solid var(--c-border-light);

    background: var(--c-bg-secondary);

    display: flex;

    justify-content: flex-end;

    gap: 10px;

}



.edit-cancel-btn {

    padding: 10px 20px;

    border-radius: 8px;

    border: 1px solid var(--c-border);

    background: var(--c-bg);

    font-weight: 600;

    transition: background var(--transition);

}



.edit-cancel-btn:hover {

    background: var(--c-bg-secondary);

}



.edit-save-btn {

    padding: 10px 20px;

    border-radius: 8px;

    background: var(--c-text);

    color: #fff;

    font-weight: 600;

    display: flex;

    align-items: center;

    gap: 8px;

    transition: background var(--transition);

}



.edit-save-btn:hover {

    background: #333;

}



/* --- CMS Editable Highlight --- */

.cms-editable {

    position: relative;

    outline: 2px dashed rgba(59, 130, 246, 0.5);

    outline-offset: 4px;

    border-radius: 8px;

    transition: outline-color var(--transition);

}



.cms-editable:hover {

    outline-color: var(--c-accent);

}



.cms-edit-btn {

    position: absolute;

    top: 8px;

    right: 8px;
    z-index: 999;

    background: var(--c-accent);

    color: #fff;

    padding: 6px 12px;

    border-radius: 6px;

    font-size: 12px;

    font-weight: 600;

    display: flex;

    align-items: center;

    gap: 4px;

    opacity: 0;

    transition: opacity var(--transition);

    z-index: 100;

}



.cms-editable:hover .cms-edit-btn {

    opacity: 1;

}



/* --- Animations --- */

.fade-in {

    animation: fadeIn 0.5s ease forwards;

}



@keyframes fadeIn {

    from {

        opacity: 0;

        transform: translateY(20px);

    }



    to {

        opacity: 1;

        transform: translateY(0);

    }

}



/* --- Responsive --- */

@media (max-width: 833px) {



    .nav-links-left,

    .nav-links-right {

        display: none;

    }



    .mobile-menu-btn {

        display: flex;

    }



    .nav-container {

        justify-content: space-between;

    }



    .grid-cards {

        grid-template-columns: 1fr;

    }



    .grid-card {

        min-height: 420px;

    }



    .hero-title {

        font-size: 40px;

    }



    .stats-bar {

        flex-direction: column;

        align-items: center;

    }



    .info-grid {

        grid-template-columns: 1fr;

    }



    .facility-card {

        flex-direction: column;

        text-align: center;

    }



    .facility-icon {

        margin: 0 auto;

    }



    .civil-card-body {

        flex-direction: column;

        align-items: flex-start;

    }



    .civil-note {

        max-width: 100%;

    }



    .footer-top {

        flex-direction: column;

    }



    .footer-columns {

        gap: 30px;

    }



    .footer-bottom {

        flex-direction: column;

        align-items: flex-start;

    }



    .notice-detail-body {

        padding: 30px 20px;

    }



    .notice-detail-header {

        padding: 28px 20px;

    }



    .notice-detail-meta {

        flex-direction: column;

        gap: 8px;

    }



    .admin-toolbar {

        bottom: 12px;

        right: 12px;

        left: 12px;

        flex-wrap: wrap;

        justify-content: center;

    }

}



@media (max-width: 480px) {

    :root {

        --nav-h: 44px;

    }



    .hero-title {

        font-size: 32px;

    }



    .grid-card {

        min-height: 360px;

    }



    .grid-card-text {

        padding: 20px;

    }



    .grid-card-text h3 {

        font-size: 22px;

    }



    .section {

        padding: 50px 16px;

    }



    .page-header {

        padding: 80px 16px 40px;

    }

}



/* ================================================

   CMS WordPress-style Editing - Additional Styles

   ================================================ */



/* --- Add Item Button --- */

.cms-add-btn {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    padding: 12px 24px;

    margin-top: 16px;

    border-radius: 10px;

    border: 2px dashed var(--c-accent);

    background: rgba(0, 113, 227, 0.04);

    color: var(--c-accent);

    font-weight: 600;

    font-size: 14px;

    cursor: pointer;

    transition: all var(--transition);

    width: 100%;

    justify-content: center;

}



.cms-add-btn:hover {

    background: rgba(0, 113, 227, 0.1);

    border-color: var(--c-accent-hover);

}



/* --- Delete Item Button --- */

.cms-delete-btn {

    position: absolute;

    top: 12px;

    right: 12px;

    width: 28px;

    height: 28px;

    border-radius: 50%;

    background: #fee2e2;

    color: #b91c1c;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    z-index: 200;

    opacity: 0;

    transition: opacity var(--transition), background var(--transition);

    border: 1px solid #fecaca;

}



.cms-editable:hover .cms-delete-btn,

div:hover>.cms-delete-btn {

    opacity: 1;

}



.cms-delete-btn:hover {

    background: #b91c1c;

    color: #fff;

}



/* --- Inline Edit/Delete Buttons (for table rows) --- */

.cms-inline-edit-btn,

.cms-inline-del-btn {

    display: inline-flex;

    align-items: center;

    gap: 4px;

    padding: 4px 10px;

    border-radius: 6px;

    font-size: 12px;

    font-weight: 600;

    cursor: pointer;

    transition: all var(--transition);

    vertical-align: middle;

    border: none;

}



.cms-inline-edit-btn {

    background: #eff6ff;

    color: #1d4ed8;

    border: 1px solid #bfdbfe;

}



.cms-inline-edit-btn:hover {

    background: #1d4ed8;

    color: #fff;

}



.cms-inline-del-btn {

    background: #fef2f2;

    color: #b91c1c;

    border: 1px solid #fecaca;

    margin-left: 4px;

}



.cms-inline-del-btn:hover {

    background: #b91c1c;

    color: #fff;

}



/* --- Image Edit Overlay Button --- */

.cms-img-edit-btn {

    position: absolute;

    top: 8px;

    right: 8px;

    padding: 6px 14px;

    border-radius: 8px;

    background: rgba(0, 0, 0, 0.7);

    color: #fff;

    font-size: 12px;

    font-weight: 600;

    cursor: pointer;

    display: flex;

    align-items: center;

    gap: 6px;

    z-index: 10;

    opacity: 0;

    transition: opacity var(--transition);

    border: none;

}



div:hover>.cms-img-edit-btn {

    opacity: 1;

}



.cms-img-edit-btn:hover {

    background: rgba(0, 0, 0, 0.9);

}



/* --- Toast Notification --- */

.cms-toast {

    position: fixed;

    bottom: 80px;

    left: 50%;

    transform: translateX(-50%) translateY(20px);

    background: var(--c-text);

    color: #fff;

    padding: 12px 28px;

    border-radius: 10px;

    font-size: 14px;

    font-weight: 600;

    z-index: 99999;

    opacity: 0;

    pointer-events: none;

    transition: opacity 0.3s, transform 0.3s;

    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);

}



.cms-toast.show {

    opacity: 1;

    transform: translateX(-50%) translateY(0);

}



/* --- Edit Modal Checkbox --- */

.edit-field-row {

    margin-bottom: 16px;

}



.edit-checkbox-label {

    display: flex;

    align-items: center;

    gap: 10px;

    cursor: pointer;

    font-size: 15px;

    font-weight: 500;

}



.edit-checkbox-label input[type="checkbox"] {

    width: 20px;

    height: 20px;

    accent-color: var(--c-accent);

    cursor: pointer;

}



/* --- Gallery relative position for edit buttons --- */

.gallery-grid>div {

    position: relative;

    overflow: hidden;

    border-radius: var(--radius-sm);

}



/* --- Reset Button in Admin Toolbar --- */

.admin-toolbar-btn.reset-btn {

    background: transparent;

    color: var(--c-text-secondary);

    border: 1px solid var(--c-border);

    font-size: 12px;

}



.admin-toolbar-btn.reset-btn:hover {

    background: #fee2e2;

    color: #b91c1c;

    border-color: #fecaca;

}
