/*
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: 68px 0 72px;
    background: var(--gck-white);
}

.gck-haji-page .gck-section-heading {
    max-width: 720px;
    margin: 0 auto 34px;
    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(2,minmax(0,1fr));
    gap: 22px;
    align-items: start;
}

.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/9;
    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-direction: column;
    padding: 20px 20px 18px;
}

.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: 9px 0 18px;
    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: 16px;
    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: 58px 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;
}

/* Dynamic program data */
.gck-haji-card__image-placeholder{width:100%;height:100%;min-height:240px;background:linear-gradient(135deg,#24104A,#32145F)}
.gck-haji-card__meta{font-size:.86rem;margin-top:.45rem}
.gck-haji-card__price{margin-top:.55rem;margin-bottom:14px}
.gck-haji-card__price strong{font-weight:700}
.gck-haji-empty{grid-column:1/-1;text-align:center;padding:36px 20px}

/* Archive accommodation summary */
.gck-haji-page .gck-haji-accommodation{width:min(1120px,100%);margin:48px auto 0;padding:38px 0 4px;border-top:1px solid var(--gck-border-soft)}
.gck-haji-page .gck-haji-accommodation__intro{max-width:680px;margin:0 auto 26px;text-align:center}
.gck-haji-page .gck-haji-accommodation__intro h2{margin:8px 0 0;color:var(--gck-purple);font-size:clamp(26px,3vw,34px);line-height:1.16;letter-spacing:-.02em}
.gck-haji-page .gck-haji-accommodation__intro p{max-width:620px;margin:11px auto 0;color:var(--gck-muted);font-size:12px;line-height:1.7}
.gck-haji-page .gck-haji-accommodation__intro .gck-section-line{display:block;width:58px;height:1px;margin:18px auto 0;background:var(--gck-gold)}
.gck-haji-page .gck-haji-accommodation__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.gck-haji-page .gck-haji-accommodation__card{padding:20px;background:var(--gck-white);border:1px solid var(--gck-border);border-radius:14px;box-shadow:0 8px 24px rgba(46,28,67,.035)}
.gck-haji-page .gck-haji-accommodation__head{padding-bottom:14px;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:6px 0 0;color:var(--gck-purple);font-size:17px;line-height:1.3}
.gck-haji-page .gck-haji-accommodation__items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}
.gck-haji-page .gck-haji-accommodation__item{min-height:62px;padding:11px 12px;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:4px;color:var(--gck-purple);font-size:12px;line-height:1.4}

/* Shared mobile hardening */
.gck-haji-page{width:100%;max-width:100%;min-width:0;overflow-x:clip}
.gck-haji-page *,.gck-haji-page *::before,.gck-haji-page *::after{box-sizing:border-box;min-width:0}
.gck-haji-page img,.gck-haji-page video,.gck-haji-page iframe{max-width:100%;height:auto}
.gck-haji-page table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.gck-haji-page pre{max-width:100%;overflow:auto}
.gck-haji-page h1,.gck-haji-page h2,.gck-haji-page h3,.gck-haji-page p,.gck-haji-page a{overflow-wrap:anywhere}

@media(max-width:760px){
 .gck-haji-page .gck-haji-programs{padding:52px 0 58px}
 .gck-haji-page .gck-section-heading{margin-bottom:28px}
 .gck-haji-page .gck-haji-card-grid,.gck-haji-page .gck-haji-benefit-grid{grid-template-columns:1fr;gap:16px}
 .gck-haji-page .gck-haji-card__body{padding:18px 16px 16px}
 .gck-haji-page .gck-haji-cta{padding:48px 0}
 .gck-haji-page .gck-haji-accommodation{margin-top:40px;padding-top:32px}
 .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-container{width:calc(100% - 28px)}
 .gck-haji-page .gck-section-heading{margin-bottom:24px}
 .gck-haji-page .gck-haji-card__body{padding:16px 14px 14px}
 .gck-haji-page .gck-haji-card__body h3{font-size:18px}
 .gck-haji-page .gck-haji-accommodation{margin-top:32px;padding-top:28px}
 .gck-haji-page .gck-haji-card__link{width:100%}
}
@media(prefers-reduced-motion:reduce){.gck-haji-page *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
