/*상단 바*/

.box-border {
    box-sizing: border-box;
}
*, ::after, ::before {
    border: 0 solid #e5e7eb;
}
.bg-w-white {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.border-title {
    border-bottom-width: 1px;
}
.z-topBar {
    z-index: 20;
}
.top-Bar {
    top: 0;
}
.right-topBar {
    right: 0;
}
.left-top {
    left: 0;
}

@media (min-width: 960px) {
    .desktop\:grid-areas-topBar-desktop {
        grid-template-areas: "ci ci ci . . . . . . action action action";
    }
}
@media (min-width: 960px) {
    .desktop\:px-9 {
        padding-left: 2.25rem;
        padding-right: 2.25rem;
    }
}
@media (min-width: 960px) {
    .desktop\:gap-x-6 {
        -moz-column-gap: 1.5rem;
    }
}
.top-padding {
    padding-top: 1rem;
    padding-bottom: 1rem;
}
.bg-white {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.auto-cols-1fr {
    grid-auto-columns: 1fr;
}
.max-w-container {
    max-width: 1200px;
}
.w-full {
    width: 100%;
}
.grid {
    display: grid
;
}
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}
*, ::after, ::before {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style: ;
}
@media (min-width: 960px) {
    .desktop\:block {
        display: block;
    }
}
.grid-top-title {
    grid-area: ci;
}
.justify-center {
    justify-content: center;
}
a {
    color: inherit;
    text-decoration: inherit;
}
@media (min-width: 960px) {
    .desktop\:text-base {
        font-size: 1rem;
        line-height: 1.5rem;
    }
}
.text-w-gray-900 {
    --tw-text-opacity: 1;
    color: rgb(33 33 33 / var(--tw-text-opacity, 1));
}
.text-box {
    letter-spacing: .48px;
}
.font-medium {
    font-weight: 500;
}
@media (min-width: 960px) {
    .desktop\:flex {
        display: flex;
    }
}
.grid-in-action {
    grid-area: action;
}
.whitespace-nowrap {
    white-space: nowrap;
}
.justify-end {
    justify-content: flex-end;
}
.items-center {
    align-items: center;
}
.gap-2 {
    gap: .5rem;
}
.relative {
    position: relative;
}
.typo-body2 {
    font-size: 14px;
    line-height: 24px;
}
.text-w-gray-600 {
    --tw-text-opacity: 1;
    color: rgb(97 97 97 / var(--tw-text-opacity, 1));
}

/*바디 부분*/
.flex-col {
    flex-direction: column;
}
.min-h-screen {
    min-height: 100vh;
}
.flex {
    display: flex;
}
@media (min-width: 960px) {
    .desktop\:py-12 {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }
}
@media (min-width: 960px) {
    .desktop\:min-h-\[80vh\] {
        min-height: 80vh;
    }
}
.flex-1 {
    flex: 1 1 0%;
}
.h-full {
    height: 100%;
}
@media (min-width: 960px) {
    .desktop\:grid-areas-center-content-desktop {
        grid-template-areas: ". . . content content content content content content . . .";
    }
}
@media (min-width: 960px) {
    .desktop\:gap-x-6 {
        -moz-column-gap: 1.5rem;
        column-gap: 1.5rem;
    }
}
.grid-in-content {
    grid-area: content;
}
.m-auto {
    margin: auto;
}
@media (min-width: 960px) {
    .desktop\:shadow-contents-container, .desktop\:shadow-graymedium {
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    }
}
@media (min-width: 960px) {
    .desktop\:shadow-contents-container {
        --tw-shadow: 0 2px 8px 0px rgba(0, 0, 0, 0.16);
        /*--tw-shadow-colored: 0 2px 8px 0px var(--tw-shadow-color);*/
    }
}
@media (min-width: 960px) {
    .desktop\:p-0 {
        padding: 0;
    }
}
@media (min-width: 960px) {
    .desktop\:rounded-2xl {
        border-radius: 1rem;
    }
}
@media (min-width: 960px) {
    .desktop\:flex-col {
        flex-direction: column;
    }
}
@media (min-width: 960px) {
    .desktop\:box-border {
        box-sizing: border-box;
    }
}

.py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}
.px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
}
.border-w-gray-200 {
    --tw-border-opacity: 1;
    border-color: rgb(224 224 224 / var(--tw-border-opacity, 1));
}
.mb-8 {
    margin-bottom: 2rem;
}
@media (min-width: 960px) {
    .desktop\:pb-8 {
        padding-bottom: 2rem;
    }
}
@media (min-width: 960px) {
    .desktop\:px-8 {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}
.gap-8 {
    gap: 2rem;
}
@media (min-width: 960px) {
    .desktop\:whitespace-pre-line {
        white-space: pre-line;
    }
}
.break-keep {
    word-break: keep-all;
}
.select-none {
    -moz-user-select: none;
    user-select: none;
}
.min-w-fit {
    min-width: fit-content;
}
.cursor-text {
    cursor: text;
}
.py-\[11px\] {
    padding-top: 11px;
    padding-bottom: 11px;
}
.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}
.bg-w-white {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.border-w-gray-200 {
    --tw-border-opacity: 1;
    border-color: rgb(224 224 224 / var(--tw-border-opacity, 1));
}
.border {
    border-width: 1px;
}
.rounded-xl {
    border-radius: .75rem;
}
.overflow-hidden {
    overflow: hidden;
}
.gap-3 {
    gap: .75rem;
}
.py-px {
    padding-top: 1px;
    padding-bottom: 1px;
}
.gap-0\.5 {
    gap: .125rem;
}
.h-\[42px\] {
    height: 42px;
}
.duration-300 {
    transition-duration: .3s;
}
.typo-body1 {
    font-size: 16px;
    line-height: 26px;
}
.transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
}
.text-w-gray-400 {
    --tw-text-opacity: 1;
    color: rgb(158 158 158 / var(--tw-text-opacity, 1));
}
.tracking-default {
    letter-spacing: .48px;
}
.translate-y-2 {
    --tw-translate-y: 0.5rem;
}
.translate-y-1\/2, .translate-y-2 {
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.origin-top-left {
    transform-origin: top left;
}
.absolute {
    position: absolute;
}
.outline-none {
    outline: 2px solid transparent;
    outline-offset: 2px;
}
.pt-\[14px\] {
    padding-top: 14px;
}
input {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-size: 100%;
    font-weight: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    color: inherit;
    margin: 0;
    padding: 0;
}


/* 버튼 */

.text-w-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.leading-\[26px\] {
    line-height: 26px;
}
.text-base {
    line-height: 1.5rem;
}
.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}
.bg-primary-500 {
    --tw-bg-opacity: 1;
    background: linear-gradient(to right, #005792, #001A2C);
}
.border-0 {
    border-width: 0;
}
.rounded-xl {
    border-radius: .75rem;
}
.gap-x-1\.5 {
    -moz-column-gap: .375rem;
    column-gap: .375rem;
}
.h-\[50px\] {
    height: 50px;
}

button{
    background-image: none;
    text-transform: none;
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    margin: 0;
    padding: 0;
}
.label-float {
    transform: translateY(-0.4rem) scale(0.75);
    transform-origin: top left;
    transition: transform 0.3s ease, color 0.3s ease;
}
/* - 라벨 hover 시 색상 반영 */
.label-float-hover {
    color: #005792;
    transition: color 0.3s;
}

/* - 인풋 호버/포커스 효과 */
.input-hover-focus {
    border: 1.5px solid #005792 !important;
    box-shadow: 0 0 0 2px rgba(0, 87, 146, 0.08);
    transition: border 0.3s, box-shadow 0.3s;
    z-index: 1;
}

.btn-transition {
    transition: background 0.3s ease, transform 0.3s ease;
}

.btn-hover-lift:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 87, 146, 0.25);
}
.btn-click-active:active {
    transform: translateY(0);
    box-shadow: none;
}

.hidden {
    display: none !important;
}

/* ======================================================== */
/*           반응형 추가 코드 (480px 이하 모바일용)            */
/* ======================================================== */

/*
  기본적으로 데스크톱(960px 이상) 스타일이 적용된 상태에서,
  화면이 960px 미만일 때 적용할 스타일을 여기에 정의합니다.
*/

@media (max-width: 959px) {

    /* --- 상단 바 모바일 레이아웃 --- */
    .desktop\:grid-areas-topBar-desktop {
        grid-template-areas: "ci action" !important; /* 모바일에서는 2단으로 변경 */
        grid-template-columns: 1fr auto !important; /* 로고는 남은 공간 모두, 액션은 내용만큼 */
        padding-left: 1rem !important; /* 모바일용 좌우 패딩 */
        padding-right: 1rem !important;
    }

    /* --- 바디 콘텐츠 모바일 레이아웃 --- */
    .desktop\:grid-areas-center-content-desktop {
        display: block !important; /* 데스크톱 그리드 레이아웃 해제 */
        padding-top: 1.5rem !important;
        padding-bottom: 1.5rem !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .desktop\:min-h-\[80vh\] {
        min-height: auto !important; /* 모바일에서는 최소 높이 제한 해제 */
    }

    .grid-in-content {
        /* 데스크톱에서 적용된 그림자 및 둥근 모서리 제거 */
        box-shadow: none !important;
        border-radius: 0 !important;
        padding: 0 !important; /* 내부 패딩 제거하여 화면 전체 사용 */
    }

    /* --- 폰트 및 패딩 조정 --- */
    .desktop\:text-base {
        font-size: 14px !important; /* 모바일에서 기본 텍스트 크기 살짝 줄임 */
        line-height: 1.4rem !important;
    }

    .desktop\:px-9,
    .desktop\:px-8 {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .desktop\:py-12 {
        padding-top: 1.5rem !important;
        padding-bottom: 1.5rem !important;
    }

    /* --- 기타 데스크톱 전용 스타일 초기화 --- */
    .desktop\:flex {
        display: block !important; /* 필요에 따라 block 또는 다른 값으로 변경 */
    }

    .desktop\:block {
        /* 이 클래스는 이미 display: block 이므로 변경 필요 없음 */
    }
}
