/*
GCK HAJI
Only Haji-specific layout and components belong here.
Expected root: .gck-haji-page
*/

.gck-haji-page { width: 100%; overflow: hidden; }

.gck-haji-page .gck-haji-programs {
    padding: 92px 0 96px;
    background: var(--gck-white);
}

.gck-haji-page .gck-section-heading {
    max-width: 720px;
    margin: 0 auto 46px;
    text-align: center;
}

.gck-haji-page .gck-section-heading h2 {
    margin: 8px 0 0;
    color: var(--gck-purple);
    font-size: clamp(30px,3.3vw,44px);
    line-height: 1.12;
    letter-spacing: -.025em;
}

.gck-haji-page .gck-section-heading p {
    max-width: 620px;
    margin: 15px auto 0;
    color: var(--gck-muted);
    font-size: 13px;
    line-height: 1.8;
}

.gck-haji-page .gck-section-line {
    display: block;
    width: 58px;
    height: 1px;
    margin: 22px auto 0;
    background: var(--gck-gold);
}

.gck-haji-page .gck-haji-card-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 24px;
}

.gck-haji-page .gck-haji-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    background: var(--gck-white);
    border: 1px solid var(--gck-border);
    border-radius: 16px;
    box-shadow: 0 8px 28px rgba(46,28,67,.045);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.gck-haji-page .gck-haji-card:hover {
    transform: translateY(-4px);
    border-color: var(--gck-gold);
    box-shadow: 0 16px 36px rgba(46,28,67,.09);
}

.gck-haji-page .gck-haji-card__image {
    position: relative;
    aspect-ratio: 16/10;
    overflow: hidden;
    background: var(--gck-cream);
}

.gck-haji-page .gck-haji-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.gck-haji-page .gck-haji-card:hover .gck-haji-card__image img {
    transform: scale(1.025);
}

.gck-haji-page .gck-haji-card__tag {
    position: absolute;
    left: 16px;
    bottom: 15px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.75);
    border-radius: 999px;
    background: rgba(53,17,111,.9);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .1em;
}

.gck-haji-page .gck-haji-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 24px 22px 22px;
}

.gck-haji-page .gck-haji-card__label {
    color: var(--gck-gold);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .11em;
}

.gck-haji-page .gck-haji-card__body h3 {
    margin: 8px 0 0;
    color: var(--gck-purple);
    font-size: 21px;
    line-height: 1.25;
}

.gck-haji-page .gck-haji-card__body p {
    margin: 11px 0 24px;
    color: var(--gck-muted);
    font-size: 12px;
    line-height: 1.75;
}

.gck-haji-page .gck-haji-card__link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 42px;
    margin-top: auto;
    padding: 0 14px;
    border: 1px solid var(--gck-purple);
    background: var(--gck-purple);
    color: #fff;
    border-radius: 7px;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
    transition: background .2s ease, color .2s ease;
}

.gck-haji-page .gck-haji-card__link:hover {
    background: transparent;
    color: var(--gck-purple);
}

.gck-haji-page .gck-haji-benefit-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 20px;
}

.gck-haji-page .gck-haji-benefit {
    display: grid;
    grid-template-columns: 45px 1fr;
    gap: 15px;
    padding: 25px;
    background: #fff;
    border: 1px solid var(--gck-border);
    border-radius: 10px;
}

.gck-haji-page .gck-haji-benefit > span {
    color: var(--gck-gold);
    font-size: 13px;
    font-weight: 700;
}

.gck-haji-page .gck-haji-benefit h3 {
    margin: 0;
    color: var(--gck-purple);
    font-size: 17px;
}

.gck-haji-page .gck-haji-benefit p {
    margin: 8px 0 0;
    color: var(--gck-muted);
    font-size: 12px;
    line-height: 1.7;
}

.gck-haji-page .gck-haji-cta {
    padding: 75px 0;
    text-align: center;
    background: #fff;
    border-block: 1px solid var(--gck-border-soft);
}

.gck-haji-page .gck-haji-cta__inner {
    max-width: 800px;
    margin-inline: auto;
}

.gck-haji-page .gck-haji-cta h2 {
    margin: 0;
    color: var(--gck-purple);
    font-size: clamp(30px,3.2vw,43px);
}

.gck-haji-page .gck-haji-cta p {
    max-width: 600px;
    margin: 18px auto 27px;
    color: var(--gck-muted);
    font-size: 13px;
    line-height: 1.8;
}

@media (max-width: 1050px) {
.gck-haji-page .gck-haji-card-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 700px) {
    .gck-haji-page .gck-haji-card-grid,
    .gck-haji-page .gck-haji-benefit-grid {
        grid-template-columns: 1fr;
    }
    .gck-haji-page .gck-haji-cta {
        padding: 58px 0;
    }
}

@media (max-width: 390px) {
    .gck-haji-page .gck-button {
        width: 100%;
    }
}



/* GCK System 2.1 - dynamic Haji program support */
.gck-haji-card__image-placeholder{width:100%;height:100%;min-height:260px;background:linear-gradient(135deg,#24104A,#32145F)}
.gck-haji-card__meta{font-size:.9rem;margin-top:.5rem!important}
.gck-haji-card__price{margin-top:.8rem!important}
.gck-haji-card__price strong{font-weight:700}
.gck-haji-empty{grid-column:1/-1;text-align:center;padding:40px 20px}

/* GCK Mobile Hardening 1.0 — 320px to 390px */
.gck-haji-page,.gck-haji-detail-page{width:100%;max-width:100%;min-width:0;overflow-x:clip;}
.gck-haji-page *, .gck-haji-detail-page *, .gck-haji-page *::before, .gck-haji-detail-page *::before, .gck-haji-page *::after, .gck-haji-detail-page *::after{box-sizing:border-box;min-width:0;}
.gck-haji-page img,.gck-haji-detail-page img,.gck-haji-page video,.gck-haji-detail-page video,.gck-haji-page iframe,.gck-haji-detail-page iframe{max-width:100%;height:auto;}
.gck-haji-page table,.gck-haji-detail-page table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.gck-haji-page pre,.gck-haji-detail-page pre{max-width:100%;overflow:auto;}
.gck-haji-page h1,.gck-haji-page h2,.gck-haji-page h3,.gck-haji-detail-page h1,.gck-haji-detail-page h2,.gck-haji-detail-page h3,.gck-haji-page p,.gck-haji-detail-page p,.gck-haji-page a,.gck-haji-detail-page a{overflow-wrap:anywhere;}
@media (max-width:700px){
 .gck-haji-card-grid,.gck-haji-benefit-grid{grid-template-columns:1fr;}
 .gck-haji-card-grid{gap:14px;}
 .gck-haji-card__body{padding:18px 16px;}
 .gck-haji-cta{padding:48px 0;}
 .gck-haji-detail-top{grid-template-columns:1fr;}
 .gck-haji-detail-image{height:auto;aspect-ratio:4/3;}
 .gck-haji-detail-price-grid,.gck-haji-detail-hotel-grid,.gck-flight-grid,.gck-fasilitas-grid{grid-template-columns:1fr;}
 .gck-haji-detail-actions{display:grid;grid-template-columns:1fr;gap:8px;}
 .gck-haji-detail-button{width:100%;} 
}
@media (max-width:390px){
 .gck-haji-card__body{padding:16px 14px;}
 .gck-haji-detail-section,.gck-detail-section{padding-left:0;padding-right:0;}
 .gck-haji-detail-price-card,.gck-haji-detail-hotel-card,.gck-flight-card,.gck-fasilitas-box,.gck-info-panel,.gck-term-card{padding:16px;}
}
@media (max-width:330px){
 .gck-haji-detail-page .gck-haji-detail-image{aspect-ratio:1/1;}
 .gck-haji-detail-button{font-size:13px;padding-inline:12px;}
}
@media (prefers-reduced-motion:reduce){.gck-haji-page *, .gck-haji-detail-page *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}}


/* GCK MOBILE HARDENING 3.1.1 */
.gck-haji-page,.gck-haji-detail-page{max-width:100%;overflow-x:clip}
.gck-haji-page img,.gck-haji-detail-page img{max-width:100%;height:auto}
@media(max-width:700px){.gck-haji-page .gck-container,.gck-haji-detail-main .gck-container{width:min(100% - 40px,1180px)}
.gck-haji-page .gck-haji-card-grid{grid-template-columns:1fr;gap:16px}}
@media(max-width:390px){.gck-haji-page .gck-container,.gck-haji-detail-main .gck-container{width:calc(100% - 28px)}
.gck-haji-page .gck-section-heading{margin-bottom:28px}}


/* =========================================================
 * GCK Haji 3.1.19 — Front package cards
 * Two balanced cards per row on desktop/tablet.
 * ======================================================= */
.gck-haji-page .gck-haji-card-grid{
    width:min(980px,100%);
    margin-inline:auto;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}
.gck-haji-page .gck-haji-card__image{
    aspect-ratio:16/10;
}
.gck-haji-page .gck-haji-card__body{
    padding:20px 20px 18px;
}
.gck-haji-page .gck-haji-card__body h3{
    font-size:19px;
}
.gck-haji-page .gck-haji-card__body p{
    margin-bottom:18px;
}
@media(max-width:760px){
    .gck-haji-page .gck-haji-card-grid{
        grid-template-columns:1fr;
        width:100%;
        gap:16px;
    }
}
@media(max-width:390px){
    .gck-haji-page .gck-haji-card__body{
        padding:16px 14px;
    }
    .gck-haji-page .gck-haji-card__body h3{
        font-size:18px;
    }
}

/* =========================================================
 * GCK Haji 3.1.20 — Front layout refinement
 * 2 cards are centered and use the available content width more
 * efficiently. Mobile remains one-column for small screens.
 * ======================================================= */
.gck-haji-page .gck-haji-card-grid{
    width:min(1120px,100%);
    margin-inline:auto;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}
.gck-haji-page .gck-haji-card{
    min-height:0;
}
.gck-haji-page .gck-haji-card__image{
    aspect-ratio:16/9;
}
.gck-haji-page .gck-haji-card__body{
    padding:20px 20px 18px;
}
.gck-haji-page .gck-haji-card__body p{
    margin-top:9px;
    margin-bottom:14px;
}
.gck-haji-page .gck-haji-card__meta{
    margin-bottom:8px!important;
}
.gck-haji-page .gck-haji-card__price{
    margin-top:6px!important;
    margin-bottom:16px!important;
}
.gck-haji-page .gck-haji-card__link{
    margin-top:0;
}
@media(max-width:760px){
    .gck-haji-page .gck-haji-card-grid{
        width:100%;
        grid-template-columns:1fr;
        gap:16px;
    }
    .gck-haji-page .gck-haji-card__image{
        aspect-ratio:16/9;
    }
}
@media(max-width:390px){
    .gck-haji-page .gck-haji-card__body{
        padding:15px 14px 14px;
    }
    .gck-haji-page .gck-haji-card__body h3{
        font-size:18px;
    }
}


/* =========================================================
 * GCK Haji 3.1.21 — Accommodation summary on Haji archive
 * Fills the visual gap below the program cards without
 * changing the existing program-card structure.
 * ======================================================= */
.gck-haji-page .gck-haji-accommodation{
    width:min(1120px,100%);
    margin:64px auto 0;
    padding:48px 0 8px;
    border-top:1px solid var(--gck-border-soft);
}
.gck-haji-page .gck-haji-accommodation__intro{
    max-width:700px;
    margin:0 auto 30px;
    text-align:center;
}
.gck-haji-page .gck-haji-accommodation__intro h2{
    margin:8px 0 0;
    color:var(--gck-purple);
    font-size:clamp(26px,3vw,36px);
    line-height:1.16;
    letter-spacing:-.02em;
}
.gck-haji-page .gck-haji-accommodation__intro p{
    max-width:650px;
    margin:13px auto 0;
    color:var(--gck-muted);
    font-size:12px;
    line-height:1.8;
}
.gck-haji-page .gck-haji-accommodation__intro .gck-section-line{
    display:block;
    width:58px;
    height:1px;
    margin:20px auto 0;
    background:var(--gck-gold);
}
.gck-haji-page .gck-haji-accommodation__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}
.gck-haji-page .gck-haji-accommodation__card{
    padding:22px;
    background:var(--gck-white);
    border:1px solid var(--gck-border);
    border-radius:14px;
    box-shadow:0 8px 28px rgba(46,28,67,.04);
}
.gck-haji-page .gck-haji-accommodation__head{
    padding-bottom:16px;
    border-bottom:1px solid var(--gck-border-soft);
}
.gck-haji-page .gck-haji-accommodation__head > span{
    color:var(--gck-gold);
    font-size:9px;
    font-weight:700;
    letter-spacing:.11em;
}
.gck-haji-page .gck-haji-accommodation__head h3{
    margin:7px 0 0;
    color:var(--gck-purple);
    font-size:18px;
    line-height:1.3;
}
.gck-haji-page .gck-haji-accommodation__items{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:14px;
}
.gck-haji-page .gck-haji-accommodation__item{
    min-height:66px;
    padding:12px 13px;
    border:1px solid var(--gck-border-soft);
    border-radius:9px;
    background:var(--gck-soft,#faf9fc);
}
.gck-haji-page .gck-haji-accommodation__item span{
    display:block;
    color:var(--gck-gold);
    font-size:8px;
    font-weight:700;
    letter-spacing:.1em;
}
.gck-haji-page .gck-haji-accommodation__item strong{
    display:block;
    margin-top:5px;
    color:var(--gck-purple);
    font-size:12px;
    line-height:1.45;
}
@media(max-width:760px){
    .gck-haji-page .gck-haji-accommodation{
        margin-top:42px;
        padding-top:38px;
    }
    .gck-haji-page .gck-haji-accommodation__grid{
        grid-template-columns:1fr;
        gap:16px;
    }
}
@media(max-width:500px){
    .gck-haji-page .gck-haji-accommodation__card{
        padding:17px 15px;
    }
    .gck-haji-page .gck-haji-accommodation__items{
        grid-template-columns:1fr;
    }
}
@media(max-width:390px){
    .gck-haji-page .gck-haji-accommodation{
        margin-top:34px;
        padding-top:30px;
    }
    .gck-haji-page .gck-haji-accommodation__intro h2{
        font-size:25px;
    }
}
