/**
 * home.css - 홈 히어로 슬라이더 및 홈 전용 스타일
 */

/* =============================================
   Hero Slider
   ============================================= */
.hero-slider {
    position: relative;
    width: 100%;
    height: calc(100vh - var(--header-height));
    min-height: 480px;
    max-height: 600px;
    height: 100vh;
    overflow: hidden;
    background: #0d1b33;
}

.hero-swiper {
    width: 100%;
    height: 100%;
}

/* 페이드 효과 - 비활성 슬라이드 완전 투명 처리 */
.hero-swiper.swiper-fade .swiper-slide {
    pointer-events: none;
    opacity: 0 !important;
}
.hero-swiper.swiper-fade .swiper-slide-active {
    pointer-events: auto;
    opacity: 1 !important;
}

/* 슬라이드 배경 */
.hero-slide {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    background-color: #0d1b33;
    overflow: hidden;
}

/* 배경 이미지 레이어 (줌 애니메이션 적용 대상) */
.hero-slide::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: var(--hero-bg, none);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    transform: scale(1.0);
    will-change: transform;
}

/* 대기 중인 슬라이드는 미리 1.08로 준비 */
.swiper-slide-next.hero-slide::before {
    transform: scale(1.08);
}

/* 활성 슬라이드에서 줌아웃 시작 */
.swiper-slide-active.hero-slide::before {
    animation: hero-zoom-out 6s ease-out both;
}

@keyframes hero-zoom-out {
    from { transform: scale(1.08); }
    to   { transform: scale(1.0); }
}

/* 어두운 그라디언트 오버레이 */
.hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to right, rgba(0,0,0,.72) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.18) 100%),
        linear-gradient(to top, rgba(0,0,0,.4) 0%, transparent 50%);
    z-index: 1;
    pointer-events: none;
}

.hero-slide-inner {
    position: relative;
    z-index: 2;
}

/* 슬라이드 텍스트 콘텐츠 */
.hero-content {
    position: relative;
    z-index: 3;
    padding-top: 0;
    padding-bottom: 0px;
}

.hero-eyebrow {
    display: block;
    margin-bottom: 20px;
    font-size: .72rem;
    font-weight: 400;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .52);
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1.2s ease .3s, transform 1.2s ease .3s;
}

.hero-title {
    margin: 0 0 30px;
    font-size: clamp(2rem, 3.8vw, 3.8rem);
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: 0;
    color: #fff;
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 1.3s ease .6s, transform 1.3s ease .6s;
}

.hero-sub {
    margin: 0;
    padding-left: 18px;
    border-left: 2px solid rgba(255, 255, 255, .38);
    font-size: 1rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, .66);
    font-style: italic;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1.2s ease 1s, transform 1.2s ease 1s;
}

/* 활성 슬라이드 텍스트 등장 */
.swiper-slide-active .hero-eyebrow,
.swiper-slide-active .hero-title,
.swiper-slide-active .hero-sub {
    opacity: 1;
    transform: translateY(0);
}

/* =============================================
   하단 좌측 컨트롤
   ============================================= */
.hero-controls {
    position: absolute;
    bottom: 44px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 15px;
}

.hero-ctrl-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 50%;
    color: rgba(255, 255, 255, .8);
    background: rgba(255, 255, 255, .06);
    backdrop-filter: blur(8px);
    transition: background .2s, border-color .2s, color .2s;
}

.hero-ctrl-btn:hover {
    background: rgba(255, 255, 255, .16);
    border-color: rgba(255, 255, 255, .55);
    color: #fff;
}

.hero-count {
    display: flex;
    align-items: center;
    gap: 0;
    font-size: .82rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .8);
    letter-spacing: .04em;
    min-width: 36px;
    margin-left: 0;
}

.hero-count-cur {
    font-size: .82rem;
    font-weight: 500;
    color: #fff;
}

.hero-count-sep {
    display: inline-block;
    width: 28px;
    height: 1px;
    background: rgba(255, 255, 255, .35);
    margin: 0 8px;
    vertical-align: middle;
}

.hero-count-tot {
    color: rgba(255, 255, 255, .45);
}

/* =============================================
   우측 스크롤 인디케이터
   ============================================= */
.hero-scroll {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 104px;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.hero-scroll-text {
    font-size: .65rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .45);
    writing-mode: vertical-rl;
    text-orientation: mixed;
}

.hero-scroll-track {
    width: 1px;
    height: 52px;
    background: rgba(255, 255, 255, .18);
    position: relative;
    overflow: hidden;
    border-radius: 1px;
}

.hero-scroll-dot {
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: 10px;
    background: rgba(255, 255, 255, .75);
    border-radius: 2px;
    animation: hero-scroll-move 1.8s ease-in-out infinite;
}

@keyframes hero-scroll-move {
    0%   { top: -10px; opacity: 0; }
    20%  { opacity: 1; }
    80%  { opacity: 1; }
    100% { top: 52px; opacity: 0; }
}

/* =============================================
   Home Lawyers Section
   ============================================= */
.home-lawyers-section {
    position: relative;
    padding: 120px 0;
    overflow: hidden;
    background: var(--bg-light, #f5f6f8);
}

.home-lawyers-watermark {
    position: absolute;
    top: 40px;
    right: -10px;
    font-size: clamp(3.5rem, 9vw, 7.5rem);
    font-weight: 800;
    color: rgba(0, 0, 0, .04);
    letter-spacing: 0;
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    line-height: 1;
}

.home-lawyers-layout {
    display: flex;
    align-items: center;
    gap: 48px;
}

.home-lawyers-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    flex: 1 1 0;
    min-width: 0;
}

.home-lawyer-card {
    min-width: 0;
}

.home-lawyer-card-link {
    display: block;
    text-decoration: none;
}

.home-lawyer-card-photo {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: #d4d9e4;
    border-radius: 4px;
}

.home-lawyer-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform .5s ease;
}

.home-lawyer-card-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(160deg, #1e3259 0%, #0d1b33 100%);
}

.home-lawyer-card-overlay {
    position: absolute;
    inset: 0;
    background: rgba(159, 130, 102, .75);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity .35s ease;
}

.home-lawyer-card-plus {
    font-size: 2.8rem;
    font-weight: 200;
    color: rgba(255, 255, 255, .9);
    line-height: 1;
    display: block;
    transition: transform .35s ease;
}

.home-lawyer-card-link:hover .home-lawyer-card-photo img {
    transform: scale(1.05);
}

.home-lawyer-card-link:hover .home-lawyer-card-overlay {
    opacity: 1;
}

.home-lawyer-card-link:hover .home-lawyer-card-plus {
    transform: rotate(90deg);
}

.home-lawyer-card-info {
    margin-top: 14px;
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.home-lawyer-card-info strong {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--text-dark);
}

.home-lawyer-card-info span {
    font-size: .95rem;
    color: var(--text-light, #888);
}

.home-lawyers-intro {
    flex: 0 0 220px;
    padding-top: 0;
}

.home-lawyers-intro .mkt-section-eyebrow {
    margin-bottom: 12px;
}

.home-lawyers-intro h2 {
    font-size: clamp(1.5rem, 2.4vw, 1.9rem);
    font-weight: 700;
    color: var(--text-dark);
    margin: 0 0 18px;
    line-height: 1.22;
}

.home-lawyers-intro > p {
    font-size: .86rem;
    line-height: 1.75;
    color: var(--text-light, #888);
    margin-bottom: 28px;
}

.home-lawyers-intro .btn {
    font-size: .82rem;
}

/* =============================================
   Home Practice Slider
   ============================================= */
.home-practice-section {
    padding: 100px 0;
    overflow: hidden;
    background: #fff;
}

.home-practice-inner {
    display: flex;
    align-items: center;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
    gap: 0;
}

.home-practice-text {
    flex: 0 0 260px;
    position: relative;
    padding-right: 48px;
    z-index: 1;
}

.home-practice-watermark {
    position: absolute;
    top: -32px;
    left: -8px;
    font-size: clamp(2rem, 5vw, 4rem);
    font-weight: 800;
    color: rgba(0, 0, 0, .04);
    letter-spacing: 0;
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    line-height: 1;
}

.home-practice-text .mkt-section-eyebrow,
.mkt-case-section-head-text .mkt-section-eyebrow {
    display: block;
    margin: 0 0 12px;
    font-family: inherit;
    font-size: .86rem;
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: .18em;
    color: var(--text-light, #888);
    text-transform: uppercase;
}

.home-practice-text h2 {
    font-size: clamp(1.6rem, 2.8vw, 2rem);
    font-weight: 700;
    color: var(--text-dark);
    margin: 0 0 16px;
    line-height: 1.2;
}

.home-practice-text > p {
    font-size: .86rem;
    line-height: 1.75;
    color: var(--text-light, #888);
    margin-bottom: 28px;
}

.home-practice-arrows {
    display: flex;
    gap: 8px;
}

.home-practice-prev,
.home-practice-next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--border, #ddd);
    border-radius: 50%;
    background: #fff;
    color: var(--text-dark);
    cursor: pointer;
    transition: background .2s, border-color .2s, color .2s;
}

/* 데스크탑: next 버튼 숨김 */
@media (min-width: 769px) {
    .home-practice-next {
        display: none;
    }
}

.home-practice-prev:hover,
.home-practice-next:hover {
    background: var(--primary, #0d1b33);
    border-color: var(--primary, #0d1b33);
    color: #fff;
}

.home-practice-prev:disabled,
.home-practice-next:disabled {
    opacity: .35;
    cursor: default;
}

/* Swiper 영역 */
.home-practice-swiper-wrap {
    flex: 1;
    min-width: 0;
    overflow: visible;
    clip-path: inset(0 -100vw 0 0);
}

.home-practice-swiper {
    overflow: visible;
}

/* 슬라이드 */
.home-practice-slide {
    position: relative;
    width: 220px;
    height: 440px;
    border-radius: 6px;
    overflow: hidden;
    transition: width .45s ease;
    cursor: pointer;
}

.home-practice-slide-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transform: scale(1);
    transition: transform .6s ease;
}

.home-practice-slide .home-practice-slide-link {
    position: absolute;
    inset: 0;
    text-decoration: none;
}

/* 슬라이드별 배경색 폴백 (이미지 없을 때) */
.home-practice-slide--real-estate { background-color: #1a2d4e; }
.home-practice-slide--corporate   { background-color: #0d1b33; }
.home-practice-slide--family      { background-color: #3d2a24; }
.home-practice-slide--criminal    { background-color: #1c1c1c; }
.home-practice-slide--civil       { background-color: #1e2a38; }
.home-practice-slide--pharmacy    { background-color: #0d2820; }

/* 오버레이 */
.home-practice-slide-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.80) 0%, rgba(0,0,0,.20) 55%, rgba(0,0,0,.10) 100%);
    transition: opacity .5s ease;
}

.home-practice-slide-overlay::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(184,153,122,.75) 0%, rgba(184,153,122,.40) 55%, rgba(184,153,122,.15) 100%);
    opacity: 0;
    transition: opacity .5s ease;
}

/* 슬라이드 텍스트 */
.home-practice-slide-body {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 24px 20px;
    color: #fff;
}

.home-practice-slide-body h3 {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 10px;
    line-height: 1.3;
    letter-spacing: 0;
}

.home-practice-slide-desc {
    font-size: .85rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, .72);
    margin: 0 0 14px;
    display: none;
}

.home-practice-slide-more {
    display: none;
    align-items: center;
    gap: 4px;
    font-size: .78rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .85);
    letter-spacing: .04em;
}

/* 활성 슬라이드 (데스크톱에서만 너비 확장) */
@media (min-width: 769px) {
    .swiper-slide-active.home-practice-slide {
        width: 460px;
    }
}

.swiper-slide-active .home-practice-slide-overlay {
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.30) 60%, rgba(0,0,0,.10) 100%);
}

/* hover 효과 (공통) */
.home-practice-slide-link:hover .home-practice-slide-img {
    transform: scale(1.06);
}

.home-practice-slide-link:hover .home-practice-slide-overlay::after {
    opacity: 1;
}

.swiper-slide-active .home-practice-slide-body h3 {
    font-size: 1.25rem;
    margin-bottom: 12px;
}

.swiper-slide-active .home-practice-slide-desc {
    display: block;
}

.swiper-slide-active .home-practice-slide-more {
    display: flex;
}

/* =============================================
   사건사례 슬라이더
   ============================================= */
.mkt-case-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
}

.mkt-case-section-head-text h2 {
    font-size: clamp(1.6rem, 2.8vw, 2rem);
    font-weight: 700;
    color: var(--text-dark);
    margin: 0 0 16px;
    line-height: 1.2;
}

.mkt-case-section-head-text p:last-child {
    margin: 0;
    font-size: .86rem;
    line-height: 1.75;
    color: var(--text-light, #888);
}

.mkt-case-controls {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.mkt-case-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: #fff;
    color: var(--text-dark);
    cursor: pointer;
    transition: background .2s, border-color .2s, color .2s;
}

.mkt-case-btn:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.mkt-case-more-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding: 8px 20px;
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: .85rem;
    color: var(--text-dark);
    text-decoration: none;
    white-space: nowrap;
    transition: background .2s, border-color .2s, color .2s;
}

.mkt-case-more-link:hover {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.mkt-case-swiper {
    overflow: hidden;
    padding: 12px 8px 24px;
    margin: -12px -8px -24px;
}

.mkt-case-swiper .swiper-wrapper {
    display: flex;
    gap: 22px;
}

.mkt-case-swiper.swiper-initialized .swiper-wrapper {
    gap: 0;
}

.mkt-case-swiper .swiper-slide {
    flex: 0 0 calc((100% - 66px) / 4);
    width: calc((100% - 66px) / 4);
    height: auto;
}

.mkt-board-card--slide {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.mkt-board-card--slide .mkt-board-badge {
    margin-bottom: 0px;
}

.mkt-board-card--slide h3 {
    min-height: 3em;
    margin-bottom: 10px;
}

.mkt-board-card--slide p {
    margin-bottom: 16px;
    font-size: .9rem;
}

.mkt-board-card--slide .mkt-board-meta {
    margin-bottom: 0;
    margin-top: auto;
}

/* =============================================
   반응형
   ============================================= */
@media (max-width: 1024px) {
    .home-lawyers-section {
        padding: 90px 0;
    }

    .mkt-case-swiper .swiper-slide {
        flex-basis: calc((100% - 36px) / 3);
        width: calc((100% - 36px) / 3);
    }

    .mkt-case-swiper .swiper-wrapper {
        gap: 18px;
    }
}

@media (max-width: 768px) {
    .pv {display: none;}

    .hero-slider {
        height: calc(100svh - var(--header-height));
        min-height: 480px;
        max-height: none;
    }

    .hero-content {
        padding-bottom: 110px;
    }

    .hero-title {
        font-size: clamp(1.5rem, 6vw, 2.4rem);
    }

    .hero-sub {
        font-size: .82rem;
    }

    .hero-controls {
        bottom: 28px;
    }

    .hero-scroll-dot {
        animation-name: hero-scroll-move-reverse;
    }

    @keyframes hero-scroll-move-reverse {
        0%   { top: 52px; opacity: 0; }
        20%  { opacity: 1; }
        80%  { opacity: 1; }
        100% { top: -10px; opacity: 0; }
    }

    .home-lawyers-layout {
        flex-direction: column-reverse;
        gap: 28px;
    }

    .home-lawyers-intro {
        flex: none;
        width: 100%;
    }

    .home-lawyers-cards {
        gap: 10px;
        width: 100%;
        grid-template-columns: repeat(3, 1fr);
    }

    .home-lawyer-card-info {
        flex-direction: column;
        gap: 2px;
    }

    .home-practice-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 28px;
    }

    .home-practice-text {
        flex: none;
        width: 100%;
        padding-right: 0;
    }

    .home-practice-watermark {
        top: -20px;
    }

    .home-practice-swiper-wrap {
        clip-path: none;
        overflow: hidden;
        width: 100%;
    }

    .home-practice-swiper {
        width: 100%;
        overflow: hidden !important;
        touch-action: pan-y;
    }

    .home-practice-slide {
        height: 280px;
        transition: none;
    }

    .swiper-slide-active .home-practice-slide-more {
        display: none;
    }

    .home-lawyer-card-info strong {
        font-size: 1rem;
    }

    .home-lawyer-card-info span {
        font-size: .85rem;
    }

    .home-lawyers-section {
        padding: 60px 0;
    }

    .home-practice-section {
        padding: 70px 0;
    }

    .mkt-case-swiper .swiper-slide {
        flex-basis: calc((100% - 16px) / 2);
        width: calc((100% - 16px) / 2);
    }

    .mkt-case-swiper .swiper-wrapper {
        gap: 16px;
    }
}

@media (max-width: 480px) {
    .home-lawyer-card-info strong {
        font-size: .9rem;
    }

    .home-lawyer-card-info span {
        font-size: .78rem;
    }

    .home-lawyers-watermark {
        position: absolute;
        top: 40px;
        right: 0px;
        font-size: clamp(2.5rem, 9vw, 7.5rem);
    }

    .home-practice-text > p {
        margin-bottom: 10px;
    }

    .mkt-case-swiper .swiper-slide {
        flex-basis: 82%;
        width: 82%;
    }

    .mkt-case-swiper .swiper-wrapper {
        gap: 14px;
    }
}

/* =============================================
   SEO Home Landing
   ============================================= */
.home-seo-hero {
    position: relative;
    min-height: 480px;
    max-height: 600px;
    height: 100vh;
    overflow: hidden;
    display: flex;
    align-items: center;
    background: #071f33 url('../../images/hero/hero01.jpg') center center / cover no-repeat;
    color: #fff;
}

.home-seo-hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-seo-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(34, 27, 27, .82) 0%, rgba(34, 27, 27, .54) 48%, rgba(34, 27, 27, .2) 100%),
        linear-gradient(0deg, rgba(34, 27, 27, .5) 0%, transparent 46%);
}

.home-seo-hero-inner {
    position: relative;
    z-index: 2;
    padding-top: 92px;
}

.home-seo-eyebrow,
.home-seo-kicker {
    margin: 0 0 12px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.home-seo-eyebrow {
    color: rgba(255, 255, 255, .72);
}

.home-seo-hero h1 {
    max-width: 720px;
    margin: 0 0 22px;
    font-size: 3rem;
    line-height: 1.18;
    color: #fff;
}
#homeHeroTitle {
    max-width: 720px;
    margin: 0 0 22px;
    font-size: 3rem;
    line-height: 1.18;
    color: #fff;
    font-weight: 800;
    letter-spacing: 0;
}

.home-seo-lead {
    max-width: 760px;
    margin: 0;
    font-size: 1.08rem;
    line-height: 1.9;
    color: rgba(255, 255, 255, .82);
}

.home-seo-keywords {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 30px;
}

.home-seo-keywords span {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, .1);
    color: #fff;
    font-size: .82rem;
}

.home-seo-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

.home-seo-actions--center {
    justify-content: center;
}

.home-seo-section {
    padding: 96px 0;
    background: #fff;
}

.home-seo-section:nth-of-type(odd) {
    background: #fafafa;
}

.home-seo-section-head {
    max-width: 820px;
    margin: 0 auto 42px;
    text-align: center;
}

.home-seo-section-head--split {
    max-width: none;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    text-align: left;
}

.home-seo-kicker {
    color: var(--primary-dark);
}

.home-seo-section-head h2,
.home-seo-cta h2 {
    margin: 0;
    font-size: 2.1rem;
    line-height: 1.35;
    color: var(--text-dark);
}

.home-seo-section-head p:last-child,
.home-seo-cta p {
    margin: 14px auto 0;
    max-width: 720px;
    color: var(--text-mid);
    line-height: 1.8;
}

.home-seo-feature-grid,
.home-seo-care-grid {
    display: grid;
    gap: 20px;
}

.home-seo-feature-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-seo-care-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.home-seo-feature-card,
.home-seo-care-card,
.home-seo-process-list li,
.home-seo-faq-list article {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: #fff;
}

.home-seo-feature-card {
    padding: 30px 26px;
}

.home-seo-feature-card i,
.home-seo-care-icon {
    color: var(--primary);
}

.home-seo-feature-card i {
    margin-bottom: 18px;
    font-size: 2rem;
}

.home-seo-feature-card h3,
.home-seo-care-card h3,
.home-seo-process-list h3,
.home-seo-faq-list h3 {
    margin: 0 0 12px;
    font-size: 1.16rem;
    line-height: 1.45;
    color: var(--text-dark);
}

.home-seo-feature-card p,
.home-seo-care-card p,
.home-seo-care-card li,
.home-seo-process-list p,
.home-seo-faq-list p {
    margin: 0;
    color: var(--text-mid);
    line-height: 1.78;
}

.home-seo-care-card {
    padding: 30px 26px;
    display: flex;
    flex-direction: column;
    min-height: 470px;
}

.home-seo-image-slot {
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius-sm);
    background: #f6f1eb;
}

.home-seo-image-slot img,
.home-seo-image-placeholder {
    width: 100%;
    aspect-ratio: 16 / 10;
}

.home-seo-image-slot img {
    height: auto;
    display: block;
    object-fit: cover;
}

.home-seo-image-placeholder {
    min-height: 190px;
    display: grid;
    place-items: center;
    padding: 22px;
    border: 1px dashed #dbcbbd;
    background:
        linear-gradient(135deg, rgba(184, 153, 122, .16), rgba(255, 255, 255, .55)),
        #fbf8f4;
    text-align: center;
    color: var(--text-mid);
}

.home-seo-image-placeholder span {
    display: block;
    font-size: .95rem;
    font-weight: 700;
    color: var(--text-dark);
}

.home-seo-image-placeholder small {
    display: block;
    margin-top: 8px;
    font-size: .74rem;
    color: var(--text-light);
    word-break: break-all;
}

.home-seo-image-slot--card {
    margin: -30px -26px 24px;
    border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}

.home-seo-image-slot--card .home-seo-image-placeholder,
.home-seo-image-slot--card img {
    border-radius: 0;
}

.home-seo-care-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    background: #fff7ef;
    font-size: 1.45rem;
}

.home-seo-care-card ul {
    display: grid;
    gap: 8px;
    margin: 20px 0 0;
}

.home-seo-care-card li {
    position: relative;
    padding-left: 16px;
    font-size: .92rem;
}

.home-seo-care-card li::before {
    content: '';
    position: absolute;
    top: .72em;
    left: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--primary);
}

.home-seo-care-card a {
    display: inline-flex;
    margin-top: auto;
    padding-top: 24px;
    font-weight: 700;
    color: var(--primary-dark);
}

.home-seo-visual-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.home-seo-image-slot--visual .home-seo-image-placeholder {
    min-height: 240px;
}

.home-seo-process-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.home-seo-process-list li {
    padding: 26px 22px;
}

.home-seo-process-list span {
    display: block;
    margin-bottom: 18px;
    font-size: .82rem;
    font-weight: 800;
    color: var(--primary-dark);
}

.home-seo-faq-list {
    display: grid;
    gap: 14px;
}

.home-seo-faq-list article {
    padding: 24px 26px;
}

.home-seo-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: .9rem;
    color: var(--text-dark);
}

.home-seo-news-list {
    display: grid;
    border-top: 1px solid var(--border);
}

.home-seo-news-list li {
    border-bottom: 1px solid var(--border);
}

.home-seo-news-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 0;
}

.home-seo-news-list span {
    color: var(--text-dark);
}

.home-seo-news-list time {
    flex-shrink: 0;
    color: var(--text-light);
    font-size: .9rem;
}

.home-seo-cta {
    padding: 76px 0 96px;
    background: #221b1b;
    color: #fff;
    text-align: center;
}

.home-seo-cta h2 {
    color: #fff;
}

.home-seo-cta p {
    color: rgba(255, 255, 255, .75);
}

.home-seo-note {
    margin-top: 26px;
    color: var(--text-mid);
    font-size: .92rem;
    line-height: 1.7;
}

.home-seo-center-note {
    text-align: center;
    margin-top: 2rem;
    color: var(--text-mid);
    font-size: .9rem;
}

.contact-overview-hero {
    position: relative;
    padding: 150px 0 88px;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(7, 31, 51, .9), rgba(7, 31, 51, .5)),
        url('../../images/hero/hero01.jpg') center center / cover no-repeat;
}

.contact-overview-hero__inner,
.contact-page-section .container {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
}

.contact-overview-hero__copy {
    max-width: 820px;
}

.contact-overview-hero h1 {
    margin: 0 0 20px;
    font-size: 3rem;
    line-height: 1.2;
    color: #fff;
}

.contact-overview-hero__desc {
    max-width: 760px;
    margin: 0 0 28px;
    color: rgba(255, 255, 255, .82);
    line-height: 1.85;
}

.contact-overview-hero__actions,
.contact-overview-metrics,
.contact-form-row,
.contact-layout {
    display: flex;
    gap: 16px;
}

.contact-overview-metrics {
    flex-wrap: wrap;
    margin: 34px 0 0;
}

.contact-overview-metrics div {
    min-width: 150px;
    padding: 16px 18px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, .09);
}

.contact-overview-metrics dt {
    color: rgba(255, 255, 255, .64);
    font-size: .82rem;
}

.contact-overview-metrics dd {
    margin: 4px 0 0;
    font-weight: 800;
}

.contact-page-section {
    padding: 86px 0;
    background: #f6f9fc;
}

.contact-layout {
    align-items: flex-start;
}

.contact-form-card,
.contact-side-card {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: #fff;
}

.contact-form-card {
    flex: 1 1 auto;
    min-width: 0;
    padding: 34px;
}

.contact-sidebar {
    flex: 0 0 380px;
    display: grid;
    gap: 16px;
}

.contact-side-card {
    padding: 26px;
}

.contact-side-card--dark {
    background: #071f33;
    color: #fff;
    border-color: #071f33;
}

.contact-side-kicker {
    margin: 0 0 8px;
    color: var(--secondary);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contact-side-card h2 {
    margin: 0 0 18px;
    font-size: 1.3rem;
    line-height: 1.4;
}

.contact-info-list,
.contact-form,
.contact-service-links,
.contact-check-card ul {
    display: grid;
    gap: 14px;
}

.contact-info-list div {
    display: grid;
    gap: 4px;
}

.contact-info-list dt {
    color: rgba(255, 255, 255, .66);
    font-size: .86rem;
}

.contact-info-list dd {
    margin: 0;
    font-weight: 700;
}

.contact-field {
    flex: 1 1 0;
    display: grid;
    gap: 8px;
}

.contact-field label {
    font-weight: 700;
    color: var(--text-dark);
}

.contact-field label span,
.contact-privacy strong {
    color: var(--accent);
}

.contact-field input,
.contact-field select,
.contact-field textarea {
    width: 100%;
    border: 1px solid #dde3ea;
    border-radius: var(--radius-sm);
    padding: 13px 14px;
    font: inherit;
    color: var(--text-dark);
    background: #fff;
}

.contact-field textarea {
    resize: vertical;
}

.contact-privacy {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--text-mid);
    line-height: 1.7;
    font-size: .92rem;
}

.contact-privacy input {
    margin-top: .4em;
}

.contact-submit {
    justify-content: center;
}

.contact-service-links a {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: #fafafa;
}

.contact-service-links i {
    color: var(--primary);
}

.contact-service-links small,
.contact-check-card li {
    color: var(--text-mid);
}

.contact-check-card li {
    position: relative;
    padding-left: 16px;
}

.contact-check-card li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .72em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--primary);
}

@media (max-width: 1024px) {
    .home-seo-hero {
        min-height: 680px;
    }

    .home-seo-hero h1 {
        font-size: 2.85rem;
    }

    .home-seo-feature-grid,
    .home-seo-care-grid,
    .home-seo-visual-grid,
    .home-seo-process-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-layout {
        display: grid;
    }

    .contact-sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        flex-basis: auto;
    }

    .contact-check-card {
        grid-column: 1 / -1;
    }
}

@media (max-width: 768px) {
    .home-seo-hero {
        min-height: 640px;
        height: auto;
        padding: 130px 0 80px;
    }

    .home-seo-hero-inner {
        padding-top: 0;
    }

    .home-seo-hero h1 {
        font-size: 2.15rem;
    }

    .home-seo-lead {
        font-size: .96rem;
        line-height: 1.76;
    }

    .home-seo-section {
        padding: 62px 0;
    }

    .home-seo-section-head {
        margin-bottom: 30px;
    }

    .home-seo-section-head h2,
    .home-seo-cta h2 {
        font-size: 1.55rem;
    }

    .home-seo-feature-grid,
    .home-seo-care-grid,
    .home-seo-visual-grid,
    .home-seo-process-list {
        grid-template-columns: 1fr;
    }

    .home-seo-care-card {
        min-height: auto;
    }

    .home-seo-section-head--split {
        display: block;
    }

    .home-seo-more {
        margin-top: 18px;
    }

    .contact-overview-hero {
        padding: 128px 0 66px;
    }

    .contact-overview-hero h1 {
        font-size: 2.15rem;
    }

    .contact-overview-hero__actions,
    .contact-form-row {
        display: grid;
    }

    .contact-page-section {
        padding: 62px 0;
    }

    .contact-form-card {
        padding: 24px;
    }

    .contact-sidebar {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .home-seo-hero h1 {
        font-size: 1.82rem;
    }

    .home-seo-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .home-seo-keywords span {
        font-size: .75rem;
    }

    .home-seo-news-list a {
        display: grid;
        gap: 6px;
    }
}

/* =============================================
   Hospital SEO Home Refresh
   ============================================= */
.home-seo-hero {
    background: #071f33 url('../../images/hero/hero01.jpg') center center / cover no-repeat;
}

.home-seo-hero-overlay {
    background:
        linear-gradient(90deg, rgba(7, 31, 51, .9) 0%, rgba(7, 31, 51, .62) 48%, rgba(7, 31, 51, .22) 100%),
        linear-gradient(0deg, rgba(7, 31, 51, .55) 0%, transparent 50%);
}

.home-seo-hero .btn-outline {
    border-color: rgba(255, 255, 255, .42);
    color: #fff;
}

.home-seo-section:nth-of-type(odd) {
    background: #f6f9fc;
}

.home-seo-service-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.home-seo-service-card {
    min-height: 0;
}

.home-seo-service-card .home-seo-image-slot img {
    aspect-ratio: 16 / 11;
}

.home-seo-search-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(320px, .98fr);
    gap: 56px;
    align-items: center;
}

.home-seo-search-layout h2 {
    margin: 0 0 18px;
    font-size: 2.1rem;
    line-height: 1.35;
    color: var(--text-dark);
}

.home-seo-search-layout > div > p:not(.home-seo-kicker) {
    margin: 0;
    color: var(--text-mid);
    line-height: 1.85;
}

.home-seo-journey-list {
    display: grid;
    gap: 14px;
    margin-top: 30px;
}

.home-seo-journey-list article {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 4px 18px;
    padding: 20px 22px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: #fff;
}

.home-seo-journey-list span {
    grid-row: span 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-sm);
    background: #eaf4ff;
    color: var(--primary-dark);
    font-weight: 800;
}

.home-seo-journey-list h3 {
    margin: 0;
    font-size: 1.05rem;
    color: var(--text-dark);
}

.home-seo-journey-list p {
    margin: 0;
    color: var(--text-mid);
    line-height: 1.7;
}

.home-seo-search-media {
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: #fff;
    box-shadow: 0 20px 55px rgba(7, 31, 51, .1);
}

.home-seo-search-media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.home-seo-search-media figcaption {
    padding: 24px 26px;
    color: var(--text-mid);
    line-height: 1.75;
}

.home-seo-search-media strong {
    display: block;
    margin-bottom: 6px;
    color: var(--text-dark);
}

.home-seo-specialty-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.home-seo-specialty-tile {
    padding: 26px 24px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: #fff;
}

.home-seo-specialty-tile h3 {
    margin: 0 0 10px;
    font-size: 1.08rem;
    color: var(--text-dark);
}

.home-seo-specialty-tile p {
    margin: 0;
    color: var(--text-mid);
    line-height: 1.76;
}

.home-seo-cta {
    background:
        linear-gradient(90deg, rgba(7, 31, 51, .94), rgba(0, 69, 126, .9)),
        #071f33;
}

.home-seo-cta .btn-outline {
    border-color: rgba(255, 255, 255, .38);
    color: #fff;
}

@media (max-width: 1200px) {
    .home-seo-service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .home-seo-search-layout {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .home-seo-specialty-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .home-seo-service-grid,
    .home-seo-specialty-grid {
        grid-template-columns: 1fr;
    }

    .home-seo-search-layout h2 {
        font-size: 1.55rem;
    }

    .home-seo-journey-list article {
        grid-template-columns: 1fr;
    }

    .home-seo-journey-list span {
        margin-bottom: 8px;
    }
}

/* =============================================
   Ulleungdo Travel Home
   ============================================= */
.travel-container {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
}

.travel-eyebrow {
    margin: 0 0 12px;
    color: var(--secondary);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.travel-hero {
    position: relative;
    min-height: 760px;
    padding: 160px 0 54px;
    display: flex;
    align-items: flex-end;
    color: #fff;
    overflow: hidden;
    background: #071f33 url('../../images/hero/hero01.jpg') center center / cover no-repeat;
}

.travel-hero__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(4, 24, 41, .9) 0%, rgba(4, 24, 41, .6) 48%, rgba(4, 24, 41, .22) 100%),
        linear-gradient(0deg, rgba(4, 24, 41, .72) 0%, rgba(4, 24, 41, .08) 62%);
}

.travel-hero__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 48px;
    align-items: end;
}

.travel-hero__copy {
    max-width: 820px;
}

.travel-hero h1 {
    margin: 0 0 24px;
    color: #fff;
    font-size: 3.5rem;
    line-height: 1.18;
    letter-spacing: 0;
}

.travel-hero__lead {
    max-width: 760px;
    margin: 0;
    color: rgba(255, 255, 255, .84);
    font-size: 1.1rem;
    line-height: 1.9;
}

.travel-hero__actions,
.travel-final-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 34px;
}

.travel-hero .btn-outline,
.travel-final-cta .btn-outline {
    border-color: rgba(255, 255, 255, .44);
    color: #fff;
}

.travel-hero__route {
    display: grid;
    border-top: 1px solid rgba(255, 255, 255, .28);
}

.travel-hero__route a {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 2px 16px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .22);
    color: #fff;
}

.travel-hero__route span {
    grid-row: span 2;
    color: var(--secondary);
    font-weight: 900;
}

.travel-hero__route strong {
    font-size: 1.05rem;
}

.travel-hero__route small {
    color: rgba(255, 255, 255, .68);
}

.travel-intro,
.travel-plan,
.travel-packages,
.travel-spots,
.travel-info-strip {
    padding: 96px 0;
}

.travel-intro,
.travel-packages,
.travel-info-strip {
    background: #fff;
}

.travel-plan,
.travel-spots {
    background: #f5f8fb;
}

.travel-intro__grid,
.travel-spots__grid {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 58px;
    align-items: center;
}

.travel-intro__image,
.travel-spot-gallery figure,
.travel-package {
    overflow: hidden;
    border-radius: var(--radius-sm);
    background: #e8eef4;
}

.travel-intro__image {
    margin: 0;
}

.travel-intro__image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.travel-intro__copy h2,
.travel-section-head h2,
.travel-spots__copy h2,
.travel-final-cta h2 {
    margin: 0;
    color: var(--text-dark);
    font-size: 2.25rem;
    line-height: 1.35;
    letter-spacing: 0;
}

.travel-intro__copy > p,
.travel-section-head > p,
.travel-spots__copy > p,
.travel-final-cta p {
    margin: 18px 0 0;
    color: var(--text-mid);
    line-height: 1.85;
}

.travel-intro__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 34px 0 0;
}

.travel-intro__facts div {
    padding: 18px;
    border: 1px solid #dfe7ee;
    border-radius: var(--radius-sm);
    background: #fbfdff;
}

.travel-intro__facts dt {
    color: var(--text-light);
    font-size: .84rem;
}

.travel-intro__facts dd {
    margin: 6px 0 0;
    color: var(--text-dark);
    font-weight: 800;
}

.travel-section-head {
    max-width: 820px;
    margin: 0 auto 42px;
    text-align: center;
}

.travel-section-head--split {
    max-width: none;
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 24px;
    text-align: left;
}

.travel-plan__grid,
.travel-info-strip__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.travel-plan-card {
    min-height: 310px;
    padding: 30px 28px;
    display: flex;
    flex-direction: column;
    border: 1px solid #dfe7ee;
    border-radius: var(--radius-sm);
    background: #fff;
}

.travel-plan-card--featured {
    background: #073253;
    color: #fff;
}

.travel-plan-card i {
    color: var(--secondary);
    font-size: 1.9rem;
}

.travel-plan-card h3 {
    margin: 22px 0 12px;
    color: inherit;
    font-size: 1.28rem;
}

.travel-plan-card p {
    margin: 0;
    color: var(--text-mid);
    line-height: 1.78;
}

.travel-plan-card--featured p {
    color: rgba(255, 255, 255, .78);
}

.travel-plan-card a,
.travel-package a,
.travel-text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 24px;
    color: var(--primary-dark);
    font-weight: 800;
}

.travel-plan-card--featured a {
    color: #fff;
}

.travel-text-link {
    margin-top: 0;
    padding: 9px 0 0;
}

.travel-package-list {
    display: grid;
    gap: 18px;
}

.travel-package {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    min-height: 236px;
    border: 1px solid #dfe7ee;
    background: #fff;
}

.travel-package img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.travel-package div {
    padding: 32px;
    display: flex;
    flex-direction: column;
}

.travel-package p {
    margin: 0 0 8px;
    color: var(--secondary);
    font-size: .84rem;
    font-weight: 800;
}

.travel-package h3 {
    margin: 0 0 12px;
    color: var(--text-dark);
    font-size: 1.5rem;
}

.travel-package span {
    color: var(--text-mid);
    line-height: 1.76;
}

.travel-spots__copy {
    max-width: 620px;
}

.travel-spots__copy .btn {
    margin-top: 32px;
}

.travel-spot-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.travel-spot-gallery figure {
    position: relative;
    margin: 0;
    min-height: 240px;
}

.travel-spot-gallery__large {
    grid-column: 1 / -1;
    min-height: 360px;
}

.travel-spot-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.travel-spot-gallery figcaption {
    position: absolute;
    left: 18px;
    bottom: 18px;
    padding: 8px 12px;
    border-radius: var(--radius-sm);
    background: rgba(4, 24, 41, .72);
    color: #fff;
    font-size: .9rem;
    font-weight: 800;
}

.travel-info-strip__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.travel-info-strip__grid a {
    min-height: 170px;
    padding: 26px 22px;
    display: flex;
    flex-direction: column;
    border: 1px solid #dfe7ee;
    border-radius: var(--radius-sm);
    background: #fbfdff;
}

.travel-info-strip__grid i {
    color: var(--primary);
    font-size: 1.8rem;
}

.travel-info-strip__grid strong {
    margin-top: 18px;
    color: var(--text-dark);
    font-size: 1.08rem;
}

.travel-info-strip__grid span {
    margin-top: 8px;
    color: var(--text-mid);
    line-height: 1.6;
}

.travel-final-cta {
    padding: 86px 0 100px;
    text-align: center;
    color: #fff;
    background:
        linear-gradient(90deg, rgba(4, 24, 41, .74), rgba(0, 81, 126, .5)),
        url('../../images/hero/hero02.jpg') center center / cover no-repeat;
}

.travel-final-cta h2 {
    color: #fff;
}

.travel-final-cta p {
    color: rgba(255, 255, 255, .78);
}

.travel-final-cta__actions {
    justify-content: center;
}

@media (max-width: 1100px) {
    .travel-hero__inner,
    .travel-intro__grid,
    .travel-spots__grid {
        grid-template-columns: 1fr;
    }

    .travel-hero__route {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        border-top: 0;
        gap: 14px;
    }

    .travel-hero__route a {
        display: block;
        padding: 18px;
        border: 1px solid rgba(255, 255, 255, .22);
        border-radius: var(--radius-sm);
        background: rgba(255, 255, 255, .08);
    }

    .travel-hero__route span,
    .travel-hero__route strong,
    .travel-hero__route small {
        display: block;
    }

    .travel-plan__grid,
    .travel-info-strip__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .travel-hero {
        min-height: 720px;
        padding: 130px 0 44px;
    }

    .travel-hero h1 {
        font-size: 2.35rem;
    }

    .travel-hero__lead {
        font-size: 1rem;
    }

    .travel-intro,
    .travel-plan,
    .travel-packages,
    .travel-spots,
    .travel-info-strip {
        padding: 64px 0;
    }

    .travel-intro__copy h2,
    .travel-section-head h2,
    .travel-spots__copy h2,
    .travel-final-cta h2 {
        font-size: 1.8rem;
    }

    .travel-intro__facts,
    .travel-plan__grid,
    .travel-info-strip__grid,
    .travel-hero__route {
        grid-template-columns: 1fr;
    }

    .travel-section-head--split {
        display: block;
    }

    .travel-text-link {
        margin-top: 14px;
    }

    .travel-package {
        grid-template-columns: 1fr;
    }

    .travel-package img {
        height: 260px;
    }
}

@media (max-width: 560px) {
    .travel-hero {
        min-height: auto;
        padding: 120px 0 38px;
    }

    .travel-hero h1 {
        font-size: 2rem;
    }

    .travel-hero__actions .btn,
    .travel-final-cta__actions .btn {
        width: 100%;
        justify-content: center;
    }

    .travel-plan-card,
    .travel-package div,
    .travel-info-strip__grid a {
        padding: 24px 20px;
    }

    .travel-spot-gallery {
        grid-template-columns: 1fr;
    }

    .travel-spot-gallery__large,
    .travel-spot-gallery figure {
        min-height: 250px;
    }
}

/* =============================================
   Travel Sub Pages
   ============================================= */
body:not(.page-home) .page-banner {
    min-height: 330px;
    padding: 150px 0 72px;
    display: flex;
    align-items: flex-end;
    background: #071f33 url('../../images/common/sub_hero.webp') center center / cover no-repeat;
}

body:not(.page-home) .page-banner::before {
    background:
        linear-gradient(90deg, rgba(4, 24, 41, .86) 0%, rgba(4, 24, 41, .52) 52%, rgba(4, 24, 41, .28) 100%),
        linear-gradient(0deg, rgba(4, 24, 41, .72) 0%, rgba(4, 24, 41, .1) 70%);
}

body:not(.page-home) .page-banner-inner {
    width: 100%;
}

body:not(.page-home) .page-banner-title {
    max-width: 1440px;
    margin: 0 auto;
    text-align: left;
    font-size: 2.65rem;
    line-height: 1.25;
    letter-spacing: 0;
}

body:not(.page-home) .breadcrumb-list {
    display: flex;
    justify-content: flex-start;
    max-width: 1440px;
    margin: 12px auto 0;
}

body:not(.page-home) .sub-nav {
    margin: 0;
    border-bottom: 1px solid #dfe7ee;
    background: #fff;
}

body:not(.page-home) .sub-nav-list {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
    justify-content: flex-start;
}

body:not(.page-home) .sub-nav-link {
    text-align: center;
    padding: 18px 25px 16px;
    margin: 0;
    color: #516173;
    font-weight: 700;
}

body:not(.page-home) .sub-nav-link::after {
    left: 50%;
    transform: translateX(-50%);
    background: var(--secondary);
}

body:not(.page-home) .home-seo-section {
    padding: 88px 0;
    background: #fff;
}

body:not(.page-home) .home-seo-section:nth-of-type(odd) {
    background: #f5f8fb;
}

body:not(.page-home) .home-seo-section-head {
    max-width: 820px;
    margin-bottom: 38px;
}

body:not(.page-home) .home-seo-section-head h2,
body:not(.page-home) .home-seo-cta h2 {
    font-size: 2rem;
    letter-spacing: 0;
}

body:not(.page-home) .home-seo-kicker {
    color: var(--secondary);
    letter-spacing: 0;
}

.travel-sub-intro {
    padding-top: 76px !important;
}

.travel-sub-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    gap: 54px;
    align-items: center;
}

.travel-sub-intro__media {
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius-sm);
    background: #e8eef4;
}

.travel-sub-intro__media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.travel-sub-intro__copy {
    margin: 0 !important;
    text-align: left;
}

.travel-sub-intro__copy p:last-child {
    margin-left: 0;
    margin-right: 0;
}

body:not(.page-home) .home-seo-feature-card,
body:not(.page-home) .home-seo-care-card,
body:not(.page-home) .home-seo-process-list li,
body:not(.page-home) .home-seo-faq-list article,
body:not(.page-home) .contact-form-card,
body:not(.page-home) .contact-side-card {
    border-color: #dfe7ee;
    box-shadow: 0 18px 45px rgba(7, 31, 51, .06);
}

body:not(.page-home) .home-seo-feature-card,
body:not(.page-home) .home-seo-care-card {
    padding: 28px;
}

body:not(.page-home) .home-seo-feature-card i,
body:not(.page-home) .home-seo-care-icon {
    color: var(--secondary);
}

body:not(.page-home) .home-seo-care-icon {
    background: #e8f8fa;
}

body:not(.page-home) .home-seo-care-card {
    min-height: 430px;
}

body:not(.page-home) .home-seo-process-list li {
    background:
        linear-gradient(180deg, #fff 0%, #fbfdff 100%);
}

body:not(.page-home) .home-seo-process-list span {
    color: var(--secondary);
}

body:not(.page-home) .home-seo-cta {
    background:
        linear-gradient(90deg, rgba(4, 24, 41, .94), rgba(0, 81, 126, .9)),
        url('../../images/home/home_005.webp') center center / cover no-repeat;
}

body:not(.page-home) .home-seo-cta .btn-outline {
    border-color: rgba(255, 255, 255, .42);
    color: #fff;
}

body:not(.page-home) .privacy-content {
    max-width: 920px;
    margin: 72px auto 100px;
    padding: 42px;
    border: 1px solid #dfe7ee;
    border-radius: var(--radius-sm);
    background: #fff;
    box-shadow: 0 18px 45px rgba(7, 31, 51, .06);
}

body:not(.page-home) .privacy-content h2 {
    margin: 0 0 22px;
    font-size: 2rem;
}

body:not(.page-home) .privacy-content h3 {
    margin: 28px 0 10px;
}

body:not(.page-home) .privacy-content p {
    color: var(--text-mid);
    line-height: 1.85;
}

@media (max-width: 900px) {
    body:not(.page-home) .page-banner {
        min-height: 260px;
        padding: 116px 0 48px;
    }

    body:not(.page-home) .page-banner-title {
        font-size: 2.1rem;
    }

    .travel-sub-intro__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

@media (max-width: 640px) {
    body:not(.page-home) .page-banner {
        min-height: 220px;
        padding: 96px 0 34px;
    }

    body:not(.page-home) .page-banner-title {
        font-size: 1.65rem;
    }

    body:not(.page-home) .breadcrumb-list {
        display: none;
    }

    body:not(.page-home) .home-seo-section {
        padding: 58px 0;
    }

    .travel-sub-intro {
        padding-top: 52px !important;
    }

    body:not(.page-home) .home-seo-section-head h2,
    body:not(.page-home) .home-seo-cta h2 {
        font-size: 1.55rem;
    }

    body:not(.page-home) .home-seo-care-card {
        min-height: auto;
    }

    body:not(.page-home) .privacy-content {
        margin: 48px auto 72px;
        padding: 26px 22px;
    }
}
