/* Keep service-page titles identical on desktop and mobile without relying on
   platform-specific fallback fonts. */
@font-face{
    font-family:'TicketYatri Service Heading';
    src:url('../fonts/poppins-latin-800-normal.woff2') format('woff2');
    font-style:normal;
    font-weight:800;
    font-display:swap;
}

/* Shared TicketYatri theme for every public service and booking form. */
:is(.dt-page,.gam-page,.hot-page,.otb-page,.svv-page,.rev-page,.booking-success-page){
    --sb-primary:var(--brand-primary,#E91E63);
    --sb-accent:var(--brand-accent,#C2185B);
    --sb-secondary:var(--brand-secondary,#14213D);
    --sb-text:var(--brand-text,#14213D);
    --sb-soft:color-mix(in srgb,var(--sb-primary) 7%,#fff);
    --sb-soft-strong:color-mix(in srgb,var(--sb-primary) 13%,#fff);
    --sb-line:color-mix(in srgb,var(--sb-primary) 18%,#e6eaf0);
    color:var(--sb-text);
}

/* Page introduction */
:is(.dt-intro,.gam-intro,.hot-intro,.otb-intro,.svv-intro,.rev-intro){position:relative;padding:6px 0 4px}
:is(.dt-intro,.gam-intro,.hot-intro,.otb-intro,.svv-intro,.rev-intro)>span,
.otb-intro .eyebrow{display:inline-flex;align-items:center;gap:8px!important;color:var(--sb-primary)!important;letter-spacing:.16em!important}
:is(.dt-intro,.gam-intro,.hot-intro,.otb-intro,.svv-intro,.rev-intro)>span:before,
.otb-intro .eyebrow:before{content:"";width:22px;height:3px;border-radius:99px;background:linear-gradient(90deg,var(--sb-primary),var(--sb-accent))}
:is(.dt-intro,.gam-intro,.hot-intro,.otb-intro,.svv-intro,.rev-intro) h1{color:var(--sb-secondary)!important;font-family:'TicketYatri Service Heading','Poppins',sans-serif!important;font-style:normal;font-weight:800!important;font-synthesis:none;letter-spacing:-.04em!important}
:is(.dt-intro,.gam-intro,.hot-intro,.otb-intro,.svv-intro,.rev-intro) p{color:#667085!important}

/* Main booking shell */
:is(.dt-panel,.gam-panel,.hot-panel,.otb-panel,.svv-panel,.dt-review-fancy){
    border:1px solid var(--sb-line)!important;
    box-shadow:0 22px 65px rgba(20,33,61,.09)!important;
}
.rev-panel{border-color:var(--sb-line)!important;box-shadow:0 22px 65px rgba(20,33,61,.09)!important}
:is(.dt-panel-title,.gam-panel-title,.hot-panel-title,.otb-panel-title,.svv-panel-title,.dt-review-header){
    position:relative;
    overflow:hidden;
    background:linear-gradient(110deg,var(--sb-primary) 0%,var(--sb-accent) 55%,var(--sb-secondary) 125%)!important;
    color:#fff!important;
}
:is(.dt-panel-title,.gam-panel-title,.hot-panel-title,.otb-panel-title,.svv-panel-title,.dt-review-header):after{
    content:"";position:absolute;right:-34px;top:-58px;width:170px;height:170px;border:28px solid rgba(255,255,255,.08);border-radius:50%;pointer-events:none
}
:is(.dt-panel-title,.gam-panel-title,.hot-panel-title,.otb-panel-title,.svv-panel-title)>svg{position:relative;z-index:1}

/* Section cards and identity blocks */
:is(.dt-section-heading,.gam-section-heading,.hot-section-heading,.otb-section-heading,.svv-service-heading){
    border-color:var(--sb-line)!important;
    background:linear-gradient(120deg,var(--sb-soft),#fff 72%)!important;
    box-shadow:inset 4px 0 0 var(--sb-primary);
}
:is(.dt-section-heading,.gam-section-heading,.hot-section-heading,.otb-section-heading,.svv-service-heading)>span{
    color:#fff!important;background:linear-gradient(145deg,var(--sb-primary),var(--sb-accent))!important;
    box-shadow:0 9px 20px color-mix(in srgb,var(--sb-primary) 25%,transparent)!important
}
:is(.dt-section-heading,.gam-section-heading,.hot-section-heading,.otb-section-heading,.svv-service-heading) h3{color:var(--sb-secondary)!important;letter-spacing:.015em}
:is(.dt-journey,.gam-form-grid,.hot-fields,.otb-section,.svv-form-section){
    border-color:#e4e8ef!important;background:linear-gradient(145deg,#fafbfe,#fff)!important;box-shadow:0 7px 22px rgba(20,33,61,.035)
}
:is(.otb-section-title,.svv-section-label){color:var(--sb-secondary)!important}
:is(.otb-section-title,.svv-section-label) svg{color:var(--sb-primary)!important}

/* Inputs */
:is(.dt-page,.gam-page,.hot-page,.otb-page,.svv-page) :is(input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea){
    border-color:#d9dee8!important;border-radius:10px!important;background:#fff!important;color:var(--sb-text)!important;
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease
}
:is(.dt-page,.gam-page,.hot-page,.otb-page,.svv-page) :is(input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea):hover{border-color:color-mix(in srgb,var(--sb-primary) 38%,#d9dee8)!important}
:is(.dt-page,.gam-page,.hot-page,.otb-page,.svv-page) :is(input:not([type=radio]):not([type=checkbox]):not([type=file]),select,textarea):focus{
    outline:0!important;border-color:var(--sb-primary)!important;background:#fff!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--sb-primary) 12%,transparent)!important
}
:is(.dt-page,.gam-page,.hot-page,.otb-page,.svv-page) :is(input,select,textarea):user-invalid{border-color:#dc3545!important;box-shadow:0 0 0 3px rgba(220,53,69,.1)!important}
:is(.dt-page,.gam-page,.hot-page,.otb-page,.svv-page) :is(input[type=radio],input[type=checkbox]){accent-color:var(--sb-primary)!important}
:is(.gam-form-grid,.hot-fields,.svv-field,.otb-field) b,.otb-required{color:var(--sb-primary)!important}

/* Choice cards, delivery and uploads */
:is(.svv-option-content,.otb-radio span,.dt-delivery){border:1px solid #e0e4eb!important;background:#fff!important}
.svv-option-icon{color:var(--sb-primary)!important;background:var(--sb-soft)!important}
.svv-check{color:var(--sb-primary)!important}
.svv-option input:checked+.svv-option-content,
.otb-radio input:checked+span{border-color:var(--sb-primary)!important;background:var(--sb-soft)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--sb-primary) 10%,transparent)!important}
:is(.otb-upload-box,.dt-upload-fields label){border-color:var(--sb-line)!important;background:linear-gradient(145deg,#fff,var(--sb-soft))!important}
.otb-upload:hover .otb-upload-box,.otb-upload input:focus-visible+.otb-upload-box{border-color:var(--sb-primary)!important}
:is(.otb-upload-icon,.hot-benefits svg,.hot-stay svg,.gam-help svg,.svv-info svg){color:var(--sb-primary)!important}

/* Progress and supporting benefits */
.otb-progress div.active span{background:linear-gradient(145deg,var(--sb-primary),var(--sb-accent))!important;box-shadow:0 7px 16px color-mix(in srgb,var(--sb-primary) 28%,transparent)!important}
.otb-progress div.active small{color:var(--sb-primary)!important}
.otb-progress i{background:var(--sb-line)!important}
:is(.hot-benefits>div,.svv-how>div,.svv-info){border-color:#e4e8ef!important;background:#fff!important}
.svv-how b{color:var(--sb-primary)!important;background:var(--sb-soft)!important}

/* Order summary */
:is(.dt-summary,.gam-summary,.hot-summary,.otb-summary,.svv-summary){
    position:sticky;border-color:var(--sb-line)!important;border-top:4px solid var(--sb-primary)!important;
    background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--sb-primary) 3%,#fff) 100%)!important;
    box-shadow:0 18px 45px rgba(20,33,61,.09)!important
}
:is(.dt-summary,.gam-summary,.hot-summary,.otb-summary,.svv-summary) h3{color:var(--sb-secondary)!important}
:is(.dt-count,.gam-summary-top>span,.hot-summary-top>span,.otb-service-badge,.svv-summary-top>span){background:linear-gradient(125deg,var(--sb-primary),var(--sb-accent))!important;color:#fff!important}
:is(.dt-product,.gam-product,.hot-product,.otb-product,.svv-product){border:1px solid var(--sb-line);background:var(--sb-soft)!important}
:is(.dt-product>span,.gam-product>span,.hot-product>span,.otb-product-icon,.svv-product>span){background:linear-gradient(145deg,var(--sb-primary),var(--sb-accent))!important;color:#fff!important;box-shadow:0 8px 18px color-mix(in srgb,var(--sb-primary) 24%,transparent)}
:is(.dt-total,.gam-totals>div,.hot-totals>div,.otb-total,.svv-totals>div){border-color:var(--sb-line)!important}
:is(.dt-total,.gam-totals>div,.hot-totals>div,.otb-total,.svv-totals>div)>strong,
.dt-review-total strong{color:var(--sb-primary)!important}
:is(.dt-consent,.gam-consent,.hot-consent,.otb-consent,.svv-consent){border:1px solid #e4e8ef;background:#f8f9fb!important}
:is(.dt-consent,.gam-consent,.hot-consent,.otb-consent,.svv-consent) a{color:var(--sb-accent)!important}

/* Primary and secondary actions */
:is(.dt-continue,.gam-submit,.hot-submit,.otb-continue,.svv-submit){
    min-height:52px!important;border:0!important;border-radius:12px!important;
    background:linear-gradient(105deg,var(--sb-primary),var(--sb-accent) 62%,var(--sb-secondary) 145%)!important;
    color:#fff!important;cursor:pointer;box-shadow:0 11px 25px color-mix(in srgb,var(--sb-primary) 28%,transparent)!important;
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important
}
:is(.dt-continue,.gam-submit,.hot-submit,.otb-continue,.svv-submit):hover{transform:translateY(-2px);filter:brightness(1.04)!important;box-shadow:0 15px 31px color-mix(in srgb,var(--sb-primary) 34%,transparent)!important}
:is(.dt-continue,.gam-submit,.hot-submit,.otb-continue,.svv-submit):active{transform:translateY(0)}
:is(.dt-continue,.gam-submit,.hot-submit,.otb-continue,.svv-submit):focus-visible,
:is(.dt-add,.dt-btn-secondary):focus-visible{outline:3px solid color-mix(in srgb,var(--sb-primary) 25%,transparent);outline-offset:3px}
:is(.dt-continue,.gam-submit,.hot-submit,.otb-continue,.svv-submit):disabled{cursor:not-allowed;filter:grayscale(.35);opacity:.62;transform:none;box-shadow:none!important}
.dt-add{background:var(--sb-soft)!important;color:var(--sb-accent)!important;border:1px solid var(--sb-line)!important;transition:.18s ease}
.dt-add:hover{background:var(--sb-soft-strong)!important;transform:translateY(-1px)}
.dt-btn-secondary{color:var(--sb-secondary)!important;border-color:#d9dee8!important}
.dt-btn-secondary:hover{color:var(--sb-primary)!important;border-color:var(--sb-primary)!important;background:var(--sb-soft)!important}
.dt-remove{color:#c52b45!important;cursor:pointer}

/* Messages and notices */
:is(.dt-errors,.gam-errors,.hot-errors,.otb-errors,.svv-errors){border-left:5px solid #dc3545!important;box-shadow:0 8px 24px rgba(130,30,48,.06)}
:is(.dt-notice,.gam-notice,.otb-notice){border-color:var(--sb-line)!important;border-left-color:var(--sb-primary)!important;background:linear-gradient(120deg,var(--sb-soft),#fff)!important}
:is(.dt-notice,.gam-notice,.otb-notice) :is(h2,h3){color:var(--sb-secondary)!important}
.gam-notice>span{color:var(--sb-primary)!important;background:#fff!important}
.dt-review-item .dt-icon{color:var(--sb-primary)!important;background:var(--sb-soft)!important}

/* Review step */
.rev-heading{position:relative;overflow:hidden;background:linear-gradient(110deg,var(--sb-primary),var(--sb-accent) 58%,var(--sb-secondary) 135%)!important}
.rev-heading:after{content:"";position:absolute;right:-45px;top:-85px;width:190px;height:190px;border:28px solid rgba(255,255,255,.08);border-radius:50%;pointer-events:none}
:is(.rev-details,.rev-payment){border-color:#e4e8ef!important;box-shadow:0 8px 25px rgba(20,33,61,.04)}
:is(.rev-details,.rev-payment) h3{color:var(--sb-secondary)!important}
:is(.rev-details,.rev-payment) h3 svg{color:var(--sb-primary)!important}
.rev-product{border:1px solid var(--sb-line);background:var(--sb-soft)!important}
.rev-product>span{background:linear-gradient(145deg,var(--sb-primary),var(--sb-accent))!important;box-shadow:0 8px 18px color-mix(in srgb,var(--sb-primary) 24%,transparent)}
.rev-total{border-color:var(--sb-line)!important}.rev-total strong{color:var(--sb-primary)!important}
.rev-edit{color:var(--sb-secondary)!important;transition:.18s ease}.rev-edit:hover{color:var(--sb-primary)!important;border-color:var(--sb-primary)!important;background:var(--sb-soft)!important}
.rev-confirm-form>label{border-color:var(--sb-line)!important;background:var(--sb-soft)!important}.rev-confirm-form>label input{accent-color:var(--sb-primary)!important}
.rev-confirm-form>button{background:linear-gradient(105deg,var(--sb-primary),var(--sb-accent) 62%,var(--sb-secondary) 145%)!important;box-shadow:0 11px 25px color-mix(in srgb,var(--sb-primary) 28%,transparent)!important}
.rev-confirm-form>button:hover:not(:disabled){box-shadow:0 15px 31px color-mix(in srgb,var(--sb-primary) 34%,transparent)!important}

/* Confirmation step */
.booking-success-page{background:radial-gradient(circle at 18% 18%,color-mix(in srgb,var(--sb-primary) 9%,transparent),transparent 28%),radial-gradient(circle at 88% 84%,color-mix(in srgb,var(--sb-accent) 8%,transparent),transparent 26%),#f6f8fc!important}
.booking-success-shell{border-color:var(--sb-line)!important;box-shadow:0 24px 70px rgba(20,33,61,.13)!important}
.booking-success-hero{background:linear-gradient(145deg,var(--sb-primary),var(--sb-accent) 58%,var(--sb-secondary) 130%)!important}
.booking-success-heading>div>span,.booking-success-facts article>span svg{color:var(--sb-primary)!important}
.booking-success-next{border-color:var(--sb-line)!important;background:var(--sb-soft)!important}
.booking-success-next>span{color:var(--sb-primary)!important;background:var(--sb-soft-strong)!important}
.booking-success-primary{background:linear-gradient(105deg,var(--sb-primary),var(--sb-accent) 62%,var(--sb-secondary) 145%)!important;box-shadow:0 10px 22px color-mix(in srgb,var(--sb-primary) 27%,transparent)!important}
.booking-success-primary:hover{box-shadow:0 14px 28px color-mix(in srgb,var(--sb-primary) 34%,transparent)!important}
.booking-success-secondary:hover{color:var(--sb-primary)!important;border-color:var(--sb-primary)!important;background:var(--sb-soft)!important}

@media(max-width:991px){
    :is(.dt-summary,.gam-summary,.hot-summary,.otb-summary,.svv-summary){position:static!important}
}
@media(max-width:575px){
    :is(.dt-intro,.gam-intro,.hot-intro,.otb-intro,.svv-intro,.rev-intro) h1{font-size:25px!important;line-height:1.2!important}
    :is(.dt-panel-title,.gam-panel-title,.hot-panel-title,.otb-panel-title,.svv-panel-title){justify-content:flex-start!important;padding-left:18px!important}
    :is(.dt-panel-title,.gam-panel-title,.hot-panel-title,.otb-panel-title,.svv-panel-title):after{right:-70px}
    :is(.dt-summary,.gam-summary,.hot-summary,.otb-summary,.svv-summary){border-top-width:3px!important}
    :is(.dt-continue,.gam-submit,.hot-submit,.otb-continue,.svv-submit){min-height:54px!important;font-size:15px!important}
}

@media(prefers-reduced-motion:reduce){
    :is(.dt-continue,.gam-submit,.hot-submit,.otb-continue,.svv-submit,.dt-add){transition:none!important}
}
