@charset "utf-8";

/* 서브상단 타이틀 바 */
.breadcrumbs .page-header {padding:140px 0 80px 0;position:relative;background-color:#1a232f;background-size:cover;background-position:center;background-repeat:no-repeat;}
.breadcrumbs .page-header:before {content:"";background: url("../img/pattern.png");background-repeat:repeat;position:absolute;inset:0;}
.breadcrumbs .page-header h2 {font-size:2.50rem;font-weight:500;color:#fff;padding:0 0 20px 0;}
.breadcrumbs .page-header p {color:rgba(255, 255, 255, 0.8);}

@media (max-width:768px) {
.breadcrumbs .page-header {padding:80px 0 40px 0;position:relative;background-color:#1a232f;background-size:cover;background-position:center;background-repeat:no-repeat;}
.breadcrumbs .page-header:before {content:"";background: url("../img/pattern.png");background-repeat:repeat;position:absolute;inset:0;}
.breadcrumbs .page-header h2 {font-size:1.25rem;font-weight:500;color:#fff;padding:0;}
.breadcrumbs .page-header p {font-size:0.69rem;color:rgba(255, 255, 255, 0.8);}
}

/* 서브페이지 네비 */
.sub_navi_wrap {position:relative;width:100%;height:46px;border-bottom:1px solid #ddd;background:#fff;}
.sub_navi {position:relative;width:100%;max-width:1296px;margin:0 auto;}
.sub_navi .navi {float:left;font-size:1.00rem;font-weight:600;letter-spacing:-0px;}
.sub_navi .navi > li.home a {display:block;width:46px;height:46px;background:url("../img/navi_home.png") no-repeat 17px 50%;text-indent:-99999px;}
.sub_navi .navi > li {float:left;position:relative;height:46px;border-left:1px solid #ddd;border-right:1px solid #ddd;margin-left:-1px;}

.sub_navi .navi > li:first-child {margin-left:0px;}
.sub_navi .navi > li.navili > a {display:block;padding:0 0px 0 15px;min-width:160px;line-height:46px;color:#555;font-size:0.88rem;}
.sub_navi .navi > li.navili > a {background:url("../img/navi_down.png") no-repeat right 21px;}
.sub_navi .navi > li.navili.on > a {background:url("../img/navi_up.png") no-repeat right 21px;}
.sub_navi .navi > li.navili .selectnavi {position:absolute;left:-1px;top:45px;width:100%;border:1px solid #e7e7e7;border-top:0;
background:#fff;box-sizing:content-box;display:none;z-index:9999999}
.sub_navi .navi > li.navili .selectnavi.open {display:block;}	
.sub_navi .navi > li.navili .selectnavi li {background:#fff;}
.sub_navi .navi > li.navili .selectnavi li a {display:block;padding:0 0 0 25px;border-top:1px solid #e7e7e7;color:#777;text-decoration:none;line-height:46px;font-size:0.88rem;}
.sub_navi .navi > li.navili .selectnavi li a:hover,
.sub_navi .navi > li.navili .selectnavi li a:focus {background:#f9f9f9;}
.sub_navi .navi > li.navili .selectnavi li.on a {color:#777;}

@media (max-width:1140px) {
.sub_navi_wrap {position:relative;width:100%;height:36px;border-bottom:1px solid #ddd;background:#fff;}
.sub_navi {position:relative;width:100%;margin:0 auto;}
.sub_navi .navi {float:left;font-size:0.88rem;font-weight:600;letter-spacing:-0px;}
.sub_navi .navi > li.home a {display:block;width:36px;height:36px;background:url("../img/navi_home.png") no-repeat 11px 50%;text-indent:-99999px;}
.sub_navi .navi > li {float:left;position:relative;height:36px;border-left:1px solid #ddd;border-right:1px solid #ddd;margin-left:-1px;}

.sub_navi .navi > li.navili > a {display:block;padding:0 0px 0 15px;min-width:130px;line-height:36px;color:#555;font-size:0.75rem;}
.sub_navi .navi > li.navili > a {background:url("../img/navi_down.png") no-repeat right 16px;}
.sub_navi .navi > li.navili.on > a {background:url("../img/navi_up.png") no-repeat right 16px;}
.sub_navi .navi > li.navili .selectnavi {position:absolute;left:-1px;top:35px;width:100%;border:1px solid #e7e7e7;border-top:0;}

.sub_navi .navi > li.navili .selectnavi li a {display:block;padding:0 0 0 25px;border-top:1px solid #e7e7e7;color:#777;text-decoration:none;line-height:36px;font-size:0.75rem;}
}

/* 폰트사이즈 보정 */
.information, .fee, .reservation, .airport {font-size:0.875rem;}

/* ==========================================================================
   내용관리 (Content) 공통 스타일
   ========================================================================== */
#ctt {
    margin: 0;
    padding: 0;
    background: #ffffff;
}
#ctt_con {
    padding: 0;
    line-height: 1.8;
    color: #334155;
    font-size: 0.96rem;
    word-break: keep-all;
}
#ctt_con img {
    max-width: 100%;
    height: auto;
}

/* 공통 테이블 스타일 (room, fundiving, reservation 통일) */
.table-container11 {
    width: 100%;
    margin: 10px 0 20px 0;
    overflow-x: auto;
}
.table-container11:last-child {
    margin-bottom: 0;
}

table.formtable1 {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    text-align: left;
    border-top: 2px solid #0284c7;
    margin: 5px 0 15px 0;
    table-layout: fixed;
    background: #ffffff;
}

table.formtable1 th {
    width: 150px;
    padding: 14px 18px;
    font-size: 0.95rem;
    font-weight: 700;
    color: #334155;
    vertical-align: middle;
    border-bottom: 1px solid #e2e8f0;
    border-right: 1px solid #e2e8f0;
    background: #f8fafc;
    white-space: nowrap;
}

table.formtable1 td {
    width: calc(100% - 150px);
    padding: 13px 20px;
    font-size: 0.95rem;
    line-height: 1.65;
    vertical-align: middle;
    border-bottom: 1px solid #e2e8f0;
    color: #1e293b;
    word-break: break-word;
}

/* 지도 임베드 래퍼 */
.map_embed_wrap {
    width: 100%;
    margin: 20px 0 30px 0;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e2e8f0;
}
.map_embed_wrap iframe {
    display: block;
    width: 100%;
    height: 380px;
}

/* ==========================================================================
   1. 찾아오시는 길 (map) 스타일
   ========================================================================== */
.map_route_steps {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 18px 20px;
    margin-bottom: 35px;
    gap: 10px;
}
.map_step_item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex: 1;
}
.map_step_badge {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    color: #0284c7;
    background: #e0f2fe;
    padding: 2px 8px;
    border-radius: 12px;
    margin-bottom: 5px;
    line-height: 1.2;
}
.map_step_txt {
    font-size: 0.92rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.3;
}
.map_step_sub {
    font-size: 0.78rem;
    color: #64748b;
    margin-top: 2px;
}
.map_step_arrow {
    color: #94a3b8;
    font-size: 1.1rem;
    font-weight: bold;
    flex-shrink: 0;
}

.map_section_title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #0f172a;
    margin: 35px 0 14px 0;
    display: flex;
    align-items: center;
    gap: 8px;
    letter-spacing: -0.02em;
}
.map_section_title:first-of-type {
    margin-top: 15px;
}
.map_section_title .bullet {
    color: #0284c7;
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1;
}
.map_section_title .sub_badge {
    font-size: 0.75rem;
    font-weight: 600;
    color: #0369a1;
    background: #e0f2fe;
    padding: 2px 8px;
    border-radius: 4px;
    margin-left: 6px;
}

.txt_price {
    font-weight: 700;
    color: #0284c7;
    font-size: 1.05rem;
}
.badge_meet {
    display: inline-block;
    background: #0f172a;
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 4px;
    margin-right: 6px;
}

.map_tip_box {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-left: 4px solid #0284c7;
    border-radius: 8px;
    padding: 14px 18px;
    margin: 15px 0 0 0;
    font-size: 0.92rem;
    color: #0369a1;
    line-height: 1.6;
}
.map_tip_box strong {
    color: #0284c7;
    font-weight: 700;
}

/* ==========================================================================
   2. 리조트 소개 (about) 스타일
   ========================================================================== */
.about_wrap {
    padding: 0;
}
.about_header {
    margin-bottom: 25px;
}
.about_title {
    font-size: 2.2rem;
    font-weight: 900;
    color: #034ea2;
    letter-spacing: -0.03em;
    margin: 0 0 4px 0;
    line-height: 1.1;
}
.about_sub {
    font-size: 1.15rem;
    font-weight: 600;
    color: #0284c7;
    letter-spacing: 0.05em;
    margin-bottom: 12px;
}
.about_bar {
    width: 50px;
    height: 3px;
    background: #0284c7;
    border-radius: 2px;
}

.about_txt_block {
    margin-bottom: 25px;
}
.about_txt_block:last-child {
    margin-bottom: 0;
}
.about_txt_block p {
    font-size: 1.02rem;
    line-height: 1.85;
    color: #334155;
    margin: 0 0 12px 0;
}
.about_txt_block p:last-child {
    margin-bottom: 0;
}

/* 리조트 소개 이미지 콜라주 / 갤러리 그리드 */
.about_gallery_container {
    margin: 30px 0 35px 0;
    padding: 0;
    position: relative;
}
.about_gallery_grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 16px;
}
.about_img_card {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    background: #f1f5f9;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e2e8f0;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.about_img_card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
.about_img_card.card_lg {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
    aspect-ratio: auto;
    height: 100%;
    min-height: 100%;
}
#ctt_con .about_img_card img,
#ctt_con .tour_img_card img,
.about_img_card img,
.about_img_card .about_img_placeholder img,
.tour_img_card img,
.tour_img_card .about_img_placeholder img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 12px;
}
.about_img_placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #94a3b8;
    font-size: 0.85rem;
    gap: 6px;
    padding: 10px;
    text-align: center;
    box-sizing: border-box;
}
.about_img_placeholder:has(img) {
    padding: 0;
}
.about_img_placeholder i {
    font-size: 1.8rem;
    color: #cbd5e1;
}

/* ==========================================================================
   3. 프에르토 갈레라 (tour) 스타일
   ========================================================================== */
.tour_wrap {
    padding: 0;
}
.tour_header {
    margin-bottom: 25px;
    border-bottom: 2px solid #0284c7;
    padding-bottom: 15px;
}
.tour_title {
    font-size: 2.1rem;
    font-weight: 800;
    color: #034ea2;
    letter-spacing: -0.03em;
    margin: 0 0 6px 0;
}
.tour_title .en {
    font-size: 1.4rem;
    font-weight: 600;
    color: #64748b;
}
.tour_slogan {
    font-size: 1.15rem;
    font-weight: 700;
    color: #0284c7;
    margin: 0;
}

.tour_txt_block {
    margin-bottom: 25px;
}
.tour_txt_block:last-child {
    margin-bottom: 0;
}
.tour_txt_block p {
    font-size: 1.0rem;
    line-height: 1.85;
    color: #334155;
    margin: 0 0 14px 0;
}
.tour_txt_block p:last-child {
    margin-bottom: 0;
}

/* 6개 이미지 그리드 (2열 3행) */
.tour_gallery_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 16px;
    margin: 25px 0;
}
.tour_img_card {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    background: #f1f5f9;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e2e8f0;
    transition: transform 0.3s ease;
}
.tour_img_card:hover {
    transform: translateY(-2px);
}
.tour_img_card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.tour_img_overlay_txt {
    position: absolute;
    bottom: 12px;
    left: 14px;
    color: #ffffff;
    font-weight: 900;
    font-size: 1.25rem;
    letter-spacing: 0.05em;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
    line-height: 1.1;
}

/* ==========================================================================
   모바일 반응형
   ========================================================================== */
@media screen and (max-width: 768px) {
    #ctt_con {
        padding: 0;
        font-size: 0.92rem;
        line-height: 1.75;
    }

    /* 테이블 */
    table.formtable1 th {
        width: 105px;
        padding: 10px 10px;
        font-size: 0.85rem;
        white-space: normal;
    }
    table.formtable1 td {
        width: calc(100% - 105px);
        padding: 10px 12px;
        font-size: 0.88rem;
    }

    /* 지도 */
    .map_embed_wrap iframe {
        height: 280px;
    }

    /* 찾아오시는 길 스텝 바 */
    .map_route_steps {
        flex-wrap: wrap;
        padding: 14px 12px;
        gap: 8px;
    }
    .map_step_item {
        flex: 1 1 40%;
        margin-bottom: 6px;
    }
    .map_step_arrow {
        display: none;
    }
    .map_step_txt {
        font-size: 0.85rem;
    }
    .map_section_title {
        font-size: 1.05rem;
        margin: 26px 0 10px 0;
    }

    /* 리조트 소개 */
    .about_title {
        font-size: 1.7rem;
    }
    .about_sub {
        font-size: 0.95rem;
    }
    .about_txt_block p {
        font-size: 0.92rem;
    }
    .about_gallery_grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
        gap: 12px;
    }
    .about_img_card {
        border-radius: 10px;
    }
    #ctt_con .about_img_card img,
    #ctt_con .tour_img_card img,
    .about_img_card img,
    .about_img_card .about_img_placeholder img,
    .tour_img_card img,
    .tour_img_card .about_img_placeholder img {
        border-radius: 10px;
    }
    .about_img_card.card_lg {
        grid-column: 1 / -1;
        grid-row: auto;
        aspect-ratio: 16 / 10;
        height: auto;
        min-height: auto;
    }

    /* 프에르토 갈레라 */
    .tour_title {
        font-size: 1.6rem;
    }
    .tour_title .en {
        font-size: 1.1rem;
        display: block;
        margin-top: 2px;
    }
    .tour_slogan {
        font-size: 0.98rem;
    }
    .tour_txt_block p {
        font-size: 0.92rem;
    }
    .tour_gallery_grid {
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 10px;
    }
    .tour_img_card {
        border-radius: 10px;
    }

    /* 약관 및 정책 모바일 */
    .policy_title {
        font-size: 1.6rem;
    }
    .policy_title .en {
        font-size: 1.05rem;
        display: block;
        margin-top: 2px;
        margin-left: 0;
    }
    .policy_highlight_box {
        padding: 16px 16px;
        margin-bottom: 20px;
    }
    .policy_section {
        padding: 16px 16px;
        margin-bottom: 15px;
    }
    .policy_sec_title {
        font-size: 1.0rem;
    }
    .policy_sec_content {
        font-size: 0.92rem;
    }
    .policy_table th {
        width: 35%;
        padding: 8px 10px;
        font-size: 0.85rem;
    }
    .policy_table td {
        padding: 8px 10px;
        font-size: 0.85rem;
    }
}

/* ==========================================================================
   4. 약관 및 정책 (Policy & Terms) 공통 스타일
   ========================================================================== */
.policy_wrap {
    padding: 0;
    color: #334155;
}
.policy_header {
    margin-bottom: 25px;
    border-bottom: 2px solid #0284c7;
    padding-bottom: 15px;
}
.policy_title {
    font-size: 2.1rem;
    font-weight: 800;
    color: #034ea2;
    letter-spacing: -0.03em;
    margin: 0 0 6px 0;
}
.policy_title .en {
    font-size: 1.25rem;
    font-weight: 600;
    color: #64748b;
    margin-left: 6px;
}
.policy_intro {
    font-size: 1.02rem;
    line-height: 1.8;
    color: #475569;
    margin: 0;
}

/* 정책 하이라이트/경고 박스 */
.policy_highlight_box {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-left: 5px solid #0284c7;
    border-radius: 10px;
    padding: 22px 24px;
    margin-bottom: 30px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
}
.policy_highlight_box.danger {
    background: #fffafa;
    border-color: #fecaca;
    border-left-color: #ef4444;
}
.policy_highlight_box.danger .box_icon {
    color: #ef4444;
}
.policy_highlight_box.danger .box_title {
    color: #b91c1c;
}
.policy_highlight_box .box_top {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.policy_highlight_box .box_icon {
    font-size: 1.5rem;
    color: #0284c7;
    line-height: 1;
}
.policy_highlight_box .box_title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0;
}
.policy_highlight_box p {
    font-size: 0.98rem;
    line-height: 1.75;
    color: #334155;
    margin: 0;
}
.policy_highlight_box p strong {
    color: #0f172a;
}
.policy_highlight_box.danger p strong {
    color: #b91c1c;
}

/* 조항 섹션 카드 */
.policy_section {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 22px 24px;
    margin-bottom: 20px;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.policy_section:hover {
    border-color: #cbd5e1;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}
.policy_sec_title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 14px 0;
    display: flex;
    align-items: center;
    gap: 8px;
    letter-spacing: -0.01em;
}
.policy_sec_title .badge_article {
    display: inline-block;
    background: #e0f2fe;
    color: #0284c7;
    font-size: 0.78rem;
    font-weight: 800;
    padding: 3px 8px;
    border-radius: 4px;
    letter-spacing: 0.02em;
}
.policy_sec_content {
    font-size: 0.96rem;
    line-height: 1.85;
    color: #475569;
}
.policy_sec_content p {
    margin: 0 0 10px 0;
}
.policy_sec_content p:last-child {
    margin-bottom: 0;
}
.policy_sec_content ol,
.policy_sec_content ul {
    margin: 8px 0;
    padding-left: 20px;
}
.policy_sec_content li {
    margin-bottom: 6px;
    line-height: 1.75;
}
.policy_sec_content li:last-child {
    margin-bottom: 0;
}
.policy_sec_content strong {
    color: #1e293b;
}

/* 테이블형 정책 정보 */
.policy_table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0;
    font-size: 0.92rem;
}
.policy_table th,
.policy_table td {
    padding: 10px 14px;
    border: 1px solid #e2e8f0;
}
.policy_table th {
    background: #f8fafc;
    color: #334155;
    font-weight: 700;
    text-align: center;
    width: 25%;
}
.policy_table td {
    background: #ffffff;
    color: #475569;
}

/* 법률 명시 박스 */
.policy_law_box {
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 16px 18px;
    margin: 14px 0;
}
.policy_law_title {
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 8px;
    font-size: 0.95rem;
}
.policy_law_box ol {
    margin: 0;
    padding-left: 20px;
}
.policy_law_box li {
    font-size: 0.92rem;
    line-height: 1.7;
    color: #334155;
    margin-bottom: 6px;
}
.policy_law_box li:last-child {
    margin-bottom: 0;
}

/* 부칙 / 일자 표기 */
.policy_footer_note {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 14px 18px;
    margin-top: 25px;
    font-size: 0.92rem;
    color: #64748b;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.policy_footer_note strong {
    color: #334155;
}