    .notice-hero .container {
      width: min(100% - 48px, 1440px);
      max-width: 1440px;
      margin-inline: auto;
    }

    .notice-board .container {
      width: min(100% - 48px, 1440px);
      max-width: 1440px;
      margin-inline: auto;
    }

    .notice-page {
      font-family: "Pretendard", "Noto Sans KR", sans-serif;
      color: var(--ink);
      background:
        linear-gradient(180deg, #faf6f2 0%, #ffffff 35%, #ffffff 100%);
    }

    .notice-hero {
      position: relative;
      min-height: clamp(420px, 58vh, 620px);
      display: flex;
      align-items: flex-end;
      overflow: hidden;
      color: var(--white);
      background: var(--navy);
    }

    .notice-hero-image,
    .notice-hero-shade {
      position: absolute;
      inset: 0;
    }

    .notice-hero-image {
      background: url("/assets/visual.jpg") center 32% / cover no-repeat;
      transform: scale(1.03);
    }

    .notice-hero-shade {
      background:
        linear-gradient(180deg, rgba(3,11,18,.28) 0%, rgba(3,11,18,.46) 26%, rgba(3,11,18,.82) 100%),
        radial-gradient(circle at 18% 20%, rgba(0,167,232,.24), transparent 28%);
    }

    .notice-hero-inner {
      position: relative;
      z-index: 1;
      padding: 140px 0 92px;
      display: grid;
      gap: 18px;
    }

    .notice-kicker {
      color: rgba(255,255,255,.72);
      font-size: 18px;
      letter-spacing: .18em;
    }

    .notice-hero h1 {
      margin: 0;
      font-size: clamp(56px, 9vw, 68px);
      line-height: .95;
    }

    .notice-hero p {
      max-width: 720px;
      margin: 0;
      color: rgba(255,255,255,.8);
      font-size: clamp(16px, 1.4vw, 18px);
    }

    .notice-board {
      padding: 108px 0 124px;
    }

    .notice-board-inner {
      display: grid;
      /* gap: 30px; */
    }

    .notice-board-head {
      padding-bottom: 16px;
      display: flex;
      justify-content: space-between;
      align-items: end;
      gap: 24px;
      /*border-bottom: 1px solid #d8d8d8;*/
    }

    .notice-board-head small {
      display: block;
      color: #1e63b7;
      font-weight: 700;
      letter-spacing: .06em;
    }

    .notice-board-head h2 {
      margin: 6px 0 0;
      font-size: clamp(30px, 4.2vw, 42px);
      line-height: 1;
    }

    .notice-board-head p {
      max-width: 470px;
      margin: 0;
      color: #666;
      font-size: 16px;
    }

    .notice-list-shell {
      border-top: 1px solid #000;
      border-bottom: 1px solid #d8d8d8;
      background: #fff;
      overflow: visible;
      box-shadow: none;
    }

    .notice-board-tools {
      padding: 16px 0 22px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      border-bottom: 1px solid #d8d8d8;
    }

    .notice-total {
      margin: 0;
      font-size: 14px;
      color: #555;
      white-space: nowrap;
    }

    .notice-total strong {
      color: #1e63b7;
      font-weight: 700;
    }

    .notice-search {
      display: flex;
      align-items: center;
      gap: 0;
    }

    .notice-search select,
    .notice-search input,
    .notice-search button {
      height: 40px;
      border: 1px solid #ddd;
      font-size: 13px;
    }

    .notice-search select {
      min-width: 100px;
      padding: 0 12px;
      border-right: 0;
      color: #333;
      background: #fff;
    }

    .notice-search input {
      width: 240px;
      padding: 0 14px;
      border-left: 0;
      border-right: 0;
      color: #333;
    }

    .notice-search button {
      width: 100px;
      border-color: #1e63b7;
      border-top-right-radius: 15px;
      border-bottom-right-radius: 15px;
      background-color: #1e63b7;
      color: #fff;
      font-weight: 500;
      transition: background-color .2s ease;
    }

    .notice-search button:hover {
      background-color: #174f98;
    }

    .notice-list-group {
      display: flex;
      flex-direction: column;
    }

    .page-tabs {
      display: flex;
      align-items: stretch;
      gap: 8px;
      width: 100%;
      margin: 4px 0 22px;
      padding: 8px;
      border-radius: 28px;
      background: linear-gradient(180deg, #4f8fd8 0%, #1e63b7 100%);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
    }

    .page-tab {
      position: relative;
      flex: 1 1 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 56px;
      padding: 0 18px;
      border-radius: 22px;
      background: rgba(255, 255, 255, 0.14);
      color: #fff;
      font-size: 16px;
      font-weight: 700;
      letter-spacing: -.02em;
      transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
      box-shadow: none;
    }

    .page-tab:hover {
      transform: translateY(-1px);
      background: rgba(255, 255, 255, 0.22);
    }

    .page-tab.is-active {
      background: #0f4a8a;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

    .about-page .notice-board-inner,
    .orgnization-page .notice-board-inner {
      gap: 18px;
    }

    .notice-empty {
      padding: 60px 10px;
      border-bottom: 1px solid #d8d8d8;
      color: #999;
      font-size: 15px;
      text-align: center;
    }

    /* 언론보도 리스트 */
    .news-item {
      grid-template-columns: minmax(0, 1fr) auto;
    }

    .news-item-main {
      display: flex;
      align-items: center;
      gap: 10px;
      min-width: 0;
    }

    .news-company {
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      height: 30px;
      padding: 0 13px;
      border-radius: 999px;
      border: 1px solid #1e63b7;
      color: #1e63b7;
      font-size: 14px;
      font-weight: 700;
      letter-spacing: .03em;
      white-space: nowrap;
    }

    .news-item strong {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      min-width: 0;
    }

    .news-item-meta {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
    }

    .news-link-icon {
      color: #1e63b7;
      font-size: 14px;
      line-height: 1;
    }

    @media (max-width: 760px) {
      .page-tabs {
        width: 100%;
        margin-bottom: 18px;
        padding: 6px;
        gap: 6px;
        border-radius: 22px;
      }

      .page-tab {
        min-height: 46px;
        padding: 0 12px;
        font-size: 14px;
        white-space: nowrap;
      }

      .news-item {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
      }

      .news-item-main {
        flex-wrap: wrap;
      }

      .news-item strong {
        white-space: normal;
        font-size: 17px;
      }

      .news-company {
        height: 28px;
        padding: 0 12px;
        font-size: 13px;
      }

      .news-item-meta {
        gap: 10px;
      }
    }

    .notice-item {
      padding: 20px 10px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 20px;
      align-items: center;
      border-bottom: 1px solid #d8d8d8;
      background: #fff;
      color: #222;
      transition: background .2s ease;
    }

    .notice-item:hover {
      background: #fafafa;
    }

    .notice-item-fixed strong::before {
      content: "공지";
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 56px;
      height: 28px;
      margin-right: 14px;
      padding: 0 12px;
      border-radius: 999px;
      background-color: #1e63b7;
      color: #fff;
      font-size: 14px;
      font-weight: 700;
      line-height: 1;
      letter-spacing: -0.02em;
      vertical-align: middle;
    }

    .notice-item strong {
      margin: 0;
      font-size: 20px;
      font-weight: 600;
      line-height: 1.45;
      letter-spacing: -0.01em;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .notice-item time {
      color: #8a96a3;
      font-size: 19px;
      line-height: 1;
      letter-spacing: -0.01em;
      text-align: center;
    }

    .notice-pagination {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 4px;
      padding: 40px 0;
    }

    .notice-pagination a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 34px;
      height: 34px;
      padding: 0 6px;
      border: 1px solid #ddd;
      border-radius: 3px;
      background-color: #fff;
      color: #555;
      font-size: 14px;
      transition: all .2s ease;
    }

    .notice-pagination .is-disabled {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 34px;
      height: 34px;
      padding: 0 6px;
      border: 1px solid #eee;
      border-radius: 3px;
      background-color: #fff;
      color: #ccc;
      font-size: 14px;
      cursor: default;
    }

    .notice-pagination a:hover {
      border-color: #1e63b7;
      color: #1e63b7;
    }

    .notice-pagination a.is-active {
      background-color: #1e63b7;
      border-color: #1e63b7;
      color: #fff;
      font-weight: 700;
    }

    .notice-page .site-footer {
      margin-top: 0;
    }

    @media (max-width: 1100px) {
      .notice-page .container {
        width: min(100% - 32px, 1440px);
      }

      .notice-item {
        grid-template-columns: minmax(0, 1fr) auto;
      }

      .notice-item strong {
        font-size: 18px;
      }

      .notice-item time {
        font-size: 16px;
      }
    }

    @media (max-width: 760px) {
      .notice-page .container {
        width: min(100% - 24px, 1440px);
      }

      .notice-hero-inner {
        padding: 122px 0 72px;
      }

      .notice-board {
        padding: 84px 0 96px;
      }

      .notice-board-head {
        display: grid;
        gap: 16px;
      }

      .notice-board-head h2 {
        font-size: clamp(32px, 9vw, 44px);
      }

      .notice-board-head p {
        max-width: 100%;
        font-size: 14px;
      }

      .notice-board-tools {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 14px 0 16px;
      }

      .notice-search {
        display: grid;
        grid-template-columns: 88px minmax(0, 1fr) 84px;
        width: 100%;
      }

      .notice-search select {
        min-width: 0;
        width: 100%;
        border-right: 1px solid #ddd;
      }

      .notice-search input {
        width: 100%;
        min-width: 0;
        border-left: 0;
      }

      .notice-search button {
        width: 100%;
        border-top-right-radius: 10px;
        border-bottom-right-radius: 10px;
      }

      .notice-item {
        padding: 14px 6px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
      }

      .notice-item strong {
        font-size: 17px;
        line-height: 1.5;
        white-space: normal;
      }

      .notice-item-fixed strong::before {
        min-width: 52px;
        height: 26px;
        margin-right: 10px;
        padding: 0 10px;
        font-size: 13px;
      }

      .notice-item time {
        font-size: 16px;
        text-align: left;
        padding-left: 2px;
      }

      .notice-pagination {
        padding: 30px 0;
      } 
    }

    @media (max-width: 480px) {
      .page-tabs {
        padding: 5px;
        gap: 5px;
      }

      .page-tab {
        min-height: 42px;
        padding: 0 10px;
        font-size: 13px;
      }

      .notice-search {
        grid-template-columns: 80px minmax(0, 1fr) 72px;
      }

      .notice-search select,
      .notice-search input,
      .notice-search button {
        height: 38px;
        font-size: 12px;
      }

      .notice-item strong {
        font-size: 16px;
      }

      .notice-item time {
        font-size: 14px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .notice-hero-image,
      .notice-item {
        transition: none;
        transform: none;
      }
    }

    /* =============================================
       공지사항 상세 (notice_view.html)
    ============================================= */

    .nv-wrap {
      display: grid;
      gap: 0;
    }

    /* 목록으로 돌아가기 버튼 */
    .nv-top-actions {
      padding: 0 0 20px;
    }

    .nv-bottom-actions {
      padding: 24px 0;
      border-top: 1px solid #e8e8e8;
    }

    .nv-back-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 9px 20px;
      border: 1px solid #ccc;
      border-radius: 3px;
      background: #fff;
      color: #555;
      font-size: 14px;
      transition: border-color .2s, color .2s;
    }

    .nv-back-btn:hover {
      border-color: #1e63b7;
      color: #1e63b7;
    }

    /* 게시글 본문 */
    .nv-article {
      border-top: 2px solid #222;
      border-bottom: 1px solid #d8d8d8;
      margin-bottom: 0;
    }

    .nv-head {
      padding: 28px 24px 24px;
      border-bottom: 1px solid #e8e8e8;
    }

    .nv-category {
      display: inline-block;
      margin-bottom: 10px;
      padding: 3px 10px;
      border-radius: 999px;
      background: #1e63b7;
      color: #fff;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .04em;
    }

    .nv-title {
      margin: 0 0 12px;
      font-size: 26px;
      font-weight: 700;
      line-height: 1.45;
      letter-spacing: -.02em;
      color: #222;
      word-break: keep-all;
    }

    .nv-date {
      margin: 0;
      color: #8a96a3;
      font-size: 15px;
      letter-spacing: -.01em;
    }

    .nv-body {
      padding: 36px 24px 44px;
      font-size: 16px;
      line-height: 1.9;
      color: #343434;
      word-break: keep-all;
    }

    .nv-body img {
      max-width: 100%;
      height: auto;
      display: block;
      border-radius: 4px;
    }

    .nv-body p {
      margin-bottom: 1em;
    }

    /* 첨부파일 */
    .nv-files {
      padding: 20px 24px;
      border-top: 1px solid #e8e8e8;
      border-bottom: 1px solid #d8d8d8;
      background: #f9fafb;
    }

    .nv-files-title {
      display: flex;
      align-items: center;
      gap: 8px;
      margin: 0 0 12px;
      font-size: 14px;
      font-weight: 700;
      color: #333;
    }

    .nv-file-list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 8px;
      padding: 0;
      margin: 0;
    }

    .nv-file-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 8px 16px;
      border: 1px solid #e0e0e0;
      border-radius: 4px;
      background: #fff;
      color: #333;
      font-size: 14px;
      transition: background .15s, border-color .15s, color .15s;
    }

    .nv-file-link:hover {
      background: #f1f7ff;
      border-color: #1e63b7;
      color: #1e63b7;
    }

    .nv-file-name {
      word-break: break-all;
    }

    /* 이전글 / 다음글 */
    .nv-nav {
      border-top: 1px solid #e0e0e0;
      margin-top: 0;
    }

    .nv-nav-item {
      display: flex;
      align-items: center;
      gap: 20px;
      padding: 18px 12px;
      border-bottom: 1px solid #f0f0f0;
      color: #333;
      transition: background .2s;
    }

    a.nv-nav-item:hover {
      background: #fafafa;
    }

    .nv-nav-item.is-disabled {
      color: #bbb;
      cursor: default;
    }

    .nv-nav-label {
      flex-shrink: 0;
      min-width: 44px;
      font-size: 13px;
      font-weight: 700;
      color: #1e63b7;
    }

    .nv-nav-item.is-disabled .nv-nav-label {
      color: #bbb;
    }

    .nv-nav-title {
      font-size: 15px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      flex: 1;
    }

    /* 게시물 없음 */
    .nv-not-found {
      padding: 80px 0;
      text-align: center;
      color: #999;
      font-size: 15px;
      border-top: 2px solid #222;
      border-bottom: 1px solid #d8d8d8;
    }

    /* 반응형 */
    @media (max-width: 760px) {
      .nv-head {
        padding: 20px 16px 18px;
      }

      .nv-title {
        font-size: 20px;
      }

      .nv-date {
        font-size: 14px;
      }

      .nv-body {
        padding: 28px 16px 36px;
        font-size: 15px;
      }

      .nv-files {
        padding: 16px;
      }

      .nv-nav-item {
        padding: 14px 8px;
        gap: 12px;
      }

      .nv-nav-title {
        font-size: 14px;
      }
    }

    @media (max-width: 480px) {
      .nv-head {
        padding: 16px 12px;
      }

      .nv-title {
        font-size: 18px;
        margin-bottom: 8px;
      }

      .nv-body {
        padding: 22px 12px 28px;
        font-size: 14px;
        line-height: 1.8;
      }

      .nv-nav-item {
        padding: 12px 6px;
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
      }

      .nv-nav-title {
        white-space: normal;
        font-size: 13px;
      }
    }

    /* =============================================
       갤러리 리스트 (gallery.html)
    ============================================= */

    .gallery-page .notice-board-inner {
      gap: 24px;
    }

    .gl-tabs {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      padding-top: 2px;
    }

    .gl-tab {
      display: inline-flex;
      align-items: center;
      height: 36px;
      padding: 0 14px;
      border: 1px solid #ddd;
      border-radius: 999px;
      color: #666;
      font-size: 13px;
      font-weight: 600;
      background: #fff;
      transition: all .2s ease;
    }

    .gl-tab:hover {
      border-color: #1e63b7;
      color: #1e63b7;
    }

    .gl-tab.is-active {
      border-color: #1e63b7;
      background: #1e63b7;
      color: #fff;
    }

    .gl-toolbar {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      padding-bottom: 18px;
      border-bottom: 1px solid #d8d8d8;
    }

    .gl-total {
      margin: 0;
      color: #555;
      font-size: 14px;
      white-space: nowrap;
    }

    .gl-total strong {
      color: #1e63b7;
      font-weight: 700;
    }

    .gl-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 24px;
    }

    .gl-card {
      display: flex;
      flex-direction: column;
      border: 1px solid #e0e0e0;
      border-radius: 20px;
      overflow: hidden;
      background: #fff;
      box-shadow: 0 2px 10px rgba(10, 22, 36, .08);
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .gl-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 10px 20px rgba(10, 22, 36, .12);
    }

    .gl-thumb-wrap {
      position: relative;
      width: 100%;
      aspect-ratio: 1;
      overflow: hidden;
      background: #f0f0f0;
    }

    .gl-thumb-wrap::after {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, .34);
      opacity: 0;
      transition: opacity .25s ease;
      pointer-events: none;
    }

    .gl-card:hover .gl-thumb-wrap::after {
      opacity: 1;
    }

    .gl-thumb {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .3s ease;
    }

    .gl-card:hover .gl-thumb {
      transform: scale(1.04);
    }

    .gl-no-image {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      font-size: 13px;
      color: #bbb;
      letter-spacing: .06em;
    }

    .gl-zoom-btn {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -40%);
      z-index: 2;
      opacity: 0;
      padding: 10px 18px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.9);
      background: rgba(255,255,255,.96);
      color: #222;
      font-size: 13px;
      font-weight: 700;
      box-shadow: 0 10px 24px rgba(0, 0, 0, .18);
      transition: opacity .25s ease, transform .25s ease, background-color .2s ease, color .2s ease;
    }

    .gl-card:hover .gl-zoom-btn {
      opacity: 1;
      transform: translate(-50%, -50%);
    }

    .gl-zoom-btn:hover {
      background: #1e63b7;
      color: #fff;
    }

    .gl-card-body {
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding: 16px 16px 18px;
    }

    .gl-category {
      margin: 0;
      color: #7b8797;
      font-size: 13px;
      font-weight: 600;
      line-height: 1.4;
    }

    .gl-title {
      color: #222;
      font-size: 17px;
      font-weight: 700;
      line-height: 1.55;
      letter-spacing: -.01em;
      display: -webkit-box;
      line-clamp: 2;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      transition: color .2s ease;
      min-height: 52px;
    }

    .gl-title:hover {
      color: #1e63b7;
    }

    .gl-date {
      margin: 0;
      color: #8c98a8;
      font-size: 13px;
    }

    .gl-empty {
      grid-column: 1 / -1;
      padding: 80px 0;
      text-align: center;
      color: #999;
      font-size: 15px;
      border-top: 1px solid #ececec;
      border-bottom: 1px solid #ececec;
    }

    .gl-lightbox {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 9999;
      background: rgba(0, 0, 0, .95);
      flex-direction: column;
      align-items: center;
      justify-content: center;
    }

    .gl-lightbox[aria-hidden="false"] {
      display: flex;
    }

    .gl-lightbox-close {
      position: absolute;
      right: 20px;
      top: 16px;
      width: 44px;
      height: 44px;
      color: #fff;
      font-size: 36px;
      line-height: 1;
      opacity: .8;
      transition: opacity .2s ease;
    }

    .gl-lightbox-close:hover {
      opacity: 1;
    }

    .gl-lightbox-nav {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      width: 50px;
      height: 50px;
      border-radius: 50%;
      background: rgba(255,255,255,.15);
      color: #fff;
      font-size: 30px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      transition: background-color .2s ease;
    }

    .gl-lightbox-nav:hover {
      background: rgba(44, 90, 160, .7);
    }

    .gl-lightbox-nav.prev { left: 16px; }
    .gl-lightbox-nav.next { right: 16px; }

    .gl-lightbox-inner {
      width: 90%;
      max-width: 1000px;
      max-height: calc(100vh - 180px);
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    .gl-lightbox-inner img {
      max-width: 100%;
      max-height: calc(100vh - 280px);
      object-fit: contain;
      display: block;
    }

    .gl-lightbox-meta {
      width: 100%;
      padding: 18px 0 10px;
      text-align: center;
      color: #fff;
    }

    .gl-lightbox-title {
      margin: 0 0 8px;
      font-size: 16px;
      font-weight: 600;
    }

    .gl-lightbox-date {
      margin: 0 0 10px;
      color: #aaa;
      font-size: 12px;
    }

    .gl-lightbox-view-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 6px 16px;
      border: 1px solid rgba(255,255,255,.35);
      border-radius: 3px;
      color: #fff;
      font-size: 12px;
      transition: all .2s ease;
    }

    .gl-lightbox-view-link:hover {
      border-color: #1e63b7;
      background: rgba(30, 99, 183, .2);
    }

    .gl-lightbox-thumbs {
      width: 90%;
      max-width: 1000px;
      display: flex;
      justify-content: center;
      gap: 8px;
      padding: 12px 20px 0;
      overflow-x: auto;
    }

    .gl-lightbox-thumbs button {
      width: 60px;
      height: 60px;
      padding: 0;
      border: 2px solid transparent;
      border-radius: 3px;
      overflow: hidden;
      opacity: .6;
      flex-shrink: 0;
      transition: border-color .2s ease, opacity .2s ease;
    }

    .gl-lightbox-thumbs button img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .gl-lightbox-thumbs button:hover,
    .gl-lightbox-thumbs button.is-active {
      opacity: 1;
      border-color: #1e63b7;
    }

    @media (max-width: 1200px) {
      .gl-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }

    @media (max-width: 900px) {
      .gl-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 760px) {
      .gl-toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
      }

      .gl-title {
        font-size: 15px;
        min-height: auto;
      }

      .gl-lightbox-inner,
      .gl-lightbox-thumbs {
        width: 95%;
      }
    }

    @media (max-width: 480px) {
      .gl-grid {
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .gl-lightbox-nav {
        width: 44px;
        height: 44px;
        font-size: 24px;
      }

      .gl-lightbox-thumbs button {
        width: 50px;
        height: 50px;
      }
    }

    /* =============================================
       갤러리 상세 (gallery_view.html)
    ============================================= */

    .gv-wrap {
      display: grid;
      gap: 0;
    }

    .gv-top-actions {
      padding: 0 0 20px;
    }

    .gv-bottom-actions {
      padding: 24px 0;
      border-top: 1px solid #e8e8e8;
    }

    .gv-back-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 9px 20px;
      border: 1px solid #ccc;
      border-radius: 3px;
      background: #fff;
      color: #555;
      font-size: 14px;
      transition: border-color .2s, color .2s;
    }

    .gv-back-btn:hover {
      border-color: #1e63b7;
      color: #1e63b7;
    }

    .gv-article {
      border-top: 2px solid #222;
      border-bottom: 1px solid #d8d8d8;
      margin-bottom: 0;
      background: #fff;
    }

    .gv-head {
      padding: 28px 24px 24px;
      border-bottom: 1px solid #e8e8e8;
    }

    .gv-category {
      display: inline-block;
      margin-bottom: 10px;
      padding: 3px 10px;
      border-radius: 999px;
      background: #f5f5f5;
      color: #666;
      font-size: 11px;
      font-weight: 600;
    }

    .gv-title {
      margin: 0 0 12px;
      font-size: 24px;
      font-weight: 700;
      color: #222;
      line-height: 1.5;
      letter-spacing: -.01em;
      word-break: keep-all;
    }

    .gv-date {
      margin: 0;
      color: #999;
      font-size: 13px;
    }

    .gv-images {
      padding: 30px 24px 8px;
    }

    .gv-images figure {
      margin: 0 0 20px;
      padding: 0;
    }

    .gv-images img {
      max-width: 100%;
      height: auto;
      display: block;
      border-radius: 4px;
    }

    .gv-content {
      padding: 10px 24px 40px;
      color: #444;
      font-size: 15px;
      line-height: 1.8;
      word-break: break-word;
    }

    .gv-content img {
      max-width: 100%;
      height: auto;
      border-radius: 4px;
    }

    .gv-content p {
      margin-bottom: 1em;
    }

    .gv-nav {
      border-top: 1px solid #e0e0e0;
      margin-top: 0;
    }

    .gv-nav-item {
      display: flex;
      align-items: center;
      gap: 20px;
      padding: 18px 12px;
      border-bottom: 1px solid #f0f0f0;
      color: #333;
      transition: background-color .2s;
    }

    a.gv-nav-item:hover {
      background-color: #fafafa;
    }

    .gv-nav-item.is-disabled {
      color: #bbb;
      cursor: default;
    }

    .gv-nav-label {
      font-size: 12px;
      font-weight: 600;
      color: #1e63b7;
      white-space: nowrap;
      min-width: 44px;
      flex-shrink: 0;
    }

    .gv-nav-item.is-disabled .gv-nav-label {
      color: #bbb;
    }

    .gv-nav-title {
      font-size: 14px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      flex: 1;
    }

    .gv-not-found {
      padding: 80px 0;
      text-align: center;
      color: #999;
      font-size: 15px;
      border-top: 2px solid #222;
      border-bottom: 1px solid #d8d8d8;
    }

    @media (max-width: 760px) {
      .gv-head {
        padding: 20px 16px 18px;
      }

      .gv-title {
        font-size: 20px;
      }

      .gv-images {
        padding: 20px 16px 8px;
      }

      .gv-content {
        padding: 8px 16px 30px;
        font-size: 14px;
        line-height: 1.7;
      }

      .gv-nav-item {
        padding: 14px 8px;
        gap: 12px;
      }
    }

    @media (max-width: 480px) {
      .gv-head {
        padding: 16px 12px;
      }

      .gv-title {
        font-size: 16px;
        margin-bottom: 10px;
      }

      .gv-images {
        padding: 16px 12px 6px;
      }

      .gv-content {
        padding: 8px 12px 24px;
        font-size: 13px;
        line-height: 1.6;
      }

      .gv-nav-item {
        padding: 12px 6px;
        gap: 8px;
      }

      .gv-nav-title {
        font-size: 13px;
        white-space: normal;
      }
    }

    /* =============================================
       소속 협회 (assoc.html)
    ============================================= */

    .assoc-page .notice-board-inner {
      gap: 24px;
    }

    .assoc-toolbar {
      padding: 4px 0 0;
    }

    .assoc-intro {
      margin-top: 6px;
      padding: 24px 26px;
      border: 1px solid #e4ded4;
      border-radius: 12px;
      background:
        radial-gradient(circle at 92% 18%, rgba(30, 99, 183, 0.13), rgba(30, 99, 183, 0) 42%),
        linear-gradient(165deg, #eef5ff 0%, #ffffff 64%);
      box-shadow: 0 12px 26px rgba(42, 30, 18, 0.08);
    }

    .assoc-intro-kicker {
      display: inline-block;
      margin: 0 0 10px;
      color: #1e63b7;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .assoc-intro-title {
      margin: 0;
      color: #2b251f;
      font-size: 28px;
      line-height: 1.28;
      letter-spacing: -.02em;
      word-break: keep-all;
    }

    .assoc-intro-content {
      margin-top: 14px;
      display: grid;
      gap: 8px;
    }

    .assoc-intro-content p {
      margin: 0;
      color: #5a5248;
      font-size: 16px;
      line-height: 1.85;
      letter-spacing: -.01em;
      word-break: keep-all;
    }

    .assoc-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 28px 24px;
    }

    .assoc-empty {
      grid-column: 1 / -1;
      text-align: center;
      padding: 42px 20px;
      border: 1px solid #e4ddd3;
      border-radius: 12px;
      background:
        radial-gradient(circle at 10% 12%, rgba(30, 99, 183, 0.12), rgba(30, 99, 183, 0) 34%),
        linear-gradient(180deg, #f4f8ff 0%, #ffffff 72%);
      box-shadow: 0 10px 24px rgba(40, 28, 17, 0.07);
    }

    .assoc-empty::before {
      content: '';
      display: inline-block;
      width: 46px;
      height: 46px;
      margin-bottom: 10px;
      border-radius: 50%;
      background: rgba(30, 99, 183, 0.16);
      box-shadow: inset 0 0 0 8px rgba(30, 99, 183, 0.1);
    }

    .assoc-empty strong {
      display: block;
      margin: 0;
      color: #2c2722;
      font-size: 23px;
      line-height: 1.35;
      letter-spacing: -.02em;
    }

    .assoc-empty p {
      margin: 10px 0 0;
      color: #665d52;
      font-size: 15px;
      line-height: 1.75;
      letter-spacing: -.01em;
    }

    .assoc-card {
      display: grid;
      grid-template-rows: auto 1fr;
      border: 1px solid #e6e0d9;
      border-radius: 12px;
      overflow: hidden;
      background: linear-gradient(180deg, #fbf8f3 0%, #ffffff 32%);
      box-shadow: 0 10px 24px rgba(40, 28, 17, 0.08);
    }

    .assoc-card.is-full {
      grid-column: 1 / -1;
    }

    .assoc-media {
      position: relative;
      width: 100%;
      aspect-ratio: 16 / 9;
      overflow: hidden;
      background: #f0f0f0;
    }

    .assoc-card.is-full .assoc-media {
      aspect-ratio: 21 / 8;
    }

    .assoc-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .3s ease;
    }

    .assoc-card:hover .assoc-media img {
      transform: scale(1.03);
    }

    .assoc-no-image {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #bbb;
      font-size: 13px;
      letter-spacing: .06em;
    }

    .assoc-body {
      padding: 35px;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .assoc-body h3 {
      margin: 0;
      color: #222;
      font-size: 23px;
      font-weight: 700;
      line-height: 1.35;
      letter-spacing: -.02em;
      word-break: keep-all;
    }

    .assoc-card.is-full .assoc-body h3 {
      font-size: 28px;
    }

    .assoc-desc-list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 6px;
    }

    .assoc-desc-list li {
      margin: 0;
      padding-left: 14px;
      color: #5a5248;
      font-size: 15px;
      line-height: 1.8;
      letter-spacing: -.01em;
      word-break: keep-all;
      position: relative;
    }

    .assoc-desc-list li::before {
      content: '';
      position: absolute;
      left: 0;
      top: .78em;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: #1e63b7;
      transform: translateY(-50%);
    }

    .assoc-card.is-full .assoc-desc-list {
      columns: 2;
      column-gap: 24px;
    }

    .assoc-card.is-full .assoc-desc-list li {
      break-inside: avoid;
      margin-bottom: 6px;
    }

    .assoc-body p,
    .assoc-desc-list li {
      margin: 0;
      color: #5a5248;
      font-size: 15px;
      line-height: 1.8;
      letter-spacing: -.01em;
      word-break: keep-all;
    }

    @media (max-width: 1100px) {
      .assoc-intro {
        padding: 20px 20px;
      }

      .assoc-intro-title {
        font-size: 24px;
      }

      .assoc-intro-content p {
        font-size: 15px;
      }

      .assoc-grid {
        gap: 22px 18px;
      }

      .assoc-empty {
        padding: 36px 18px;
      }

      .assoc-empty strong {
        font-size: 20px;
      }

      .assoc-body h3 {
        font-size: 20px;
      }

      .assoc-card.is-full .assoc-body h3 {
        font-size: 24px;
      }
    }

    @media (max-width: 760px) {
      .assoc-grid {
        grid-template-columns: 1fr;
        gap: 18px;
      }

      .assoc-empty {
        padding: 28px 14px;
      }

      .assoc-empty::before {
        width: 40px;
        height: 40px;
        margin-bottom: 8px;
      }

      .assoc-empty strong {
        font-size: 18px;
      }

      .assoc-empty p {
        font-size: 14px;
        line-height: 1.65;
      }

      .assoc-intro {
        padding: 16px 14px;
      }

      .assoc-intro-title {
        font-size: 20px;
      }

      .assoc-intro-content p {
        font-size: 14px;
        line-height: 1.75;
      }

      .assoc-card.is-full {
        grid-column: auto;
      }

      .assoc-card.is-full .assoc-media {
        aspect-ratio: 16 / 9;
      }

      .assoc-body {
        padding: 30px;
      }

      .assoc-body h3,
      .assoc-card.is-full .assoc-body h3 {
        font-size: 18px;
      }

      .assoc-body p,
      .assoc-desc-list li {
        font-size: 14px;
        line-height: 1.7;
      }

      .assoc-card.is-full .assoc-desc-list {
        columns: 1;
      }
    }