@font-face { font-family: "around-icons"; src: url("../fonts/around-icons.8568278b0124.ttf?enmnv5") format("truetype"), url("../fonts/around-icons.84d26ec45cf1.woff?enmnv5") format("woff"), url("../fonts/around-icons.72e25c973982.svg?enmnv5#around-icons") format("svg"); font-weight: normal; font-style: normal; font-display: optional;}
.award-badge { position: fixed; top: 90px; left: 6%; transform: translateX(-6%); width: 110px !important; height: 110px; image-rendering: -webkit-optimize-contrast; z-index: 1000; display: block;}
@media (max-width: 576px) { .card-img-top { height: 140px; }}
@media (max-width: 768px) { .hero-about { min-height: 400px; } .hero-about h1 { font-size: 1.6rem; } .hero-overlap-container { margin-top: -60px; } .content-card-box { padding: 2rem 1.5rem !important; } #booking-form { margin-top: 5px !important; transform: translateY(-20px); } .admin-btn { display: none !important; } .services-cover { min-height: 300px !important; position: relative !important; }}
@media (max-width: 992px) { .card-img-top { height: 180px; }}
@media (min-width: 768px) { .award-badge { position: absolute; top: 100px; left: auto; transform: none; right: 45px; width: 140px !important; height: auto; }}
@media (min-width: 992px) { .award-badge { position: fixed; top: 140px; right: 40px; width: 240px !important; height: auto; } .main-img { min-height: 500px; }}
@media (min-width: 992px) and (max-width: 1279px) { .container { max-width: 100%; }}
body { margin: 0; font-family: Arial, sans-serif; }
  .page-wrapper { width: 100%; overflow-x: hidden; }
  .main-img { position: relative; background-image: url("../photos/airports/sydney_airport.65d1f207da53.webp"); background-size: cover; background-position: center; min-height: 330px; }
  .booking-form-top { margin-top: -50px; position: relative; z-index: 10; }
  .hero-about         { position: relative; min-height: 600px; display: flex; align-items: center; overflow: hidden; padding-top: 80px; }
  .hero-about::before { content: ""; position: absolute; inset: 0; z-index: 0; }
  .hero-content       { position: relative; z-index: 2; }
  .hero-overlap-container { margin-top: -120px; }
  .content-card-box   { padding: 3rem 3.5rem !important; }
  .highlight-title    { margin-bottom: 1.5rem; }
  .booking-tabs-wrapper { background: #fff; border-radius: 12px; border: 1px solid #e5e7eb; overflow: hidden; box-shadow: 0 4px 24px rgba(0,0,0,0.08); }
  .booking-tab-nav { display: flex; align-items: center; gap: 8px; padding: 14px 20px; background: #f3f4f6; border-bottom: 1px solid #e5e7eb; }
  .booking-tab-btn { padding: 8px 18px; font-size: 0.88rem; font-weight: 600; border-radius: 6px; border: none; cursor: pointer; touch-action: manipulation; transition: background .15s, color .15s; background: #e5e7eb; color: #6b7280; display: flex; align-items: center; gap: 8px; }
  .booking-tab-btn:hover { background: #d1d5db; color: #374151; }
  .booking-tab-btn.active { background: #fff4ec; color: #f38020; border-bottom: 3px solid #f38020; }
  .booking-tab-btn.active-green { background: #f0fdf4; color: #16a34a; border-bottom: 3px solid #16a34a; }
  .booking-tab-pane.active { display: block; background: #fff4ec; }
  .booking-tab-pane.active-green { display: block; background: #f0fdf4; }
  .rebook-badge { background: #f59e0b; color: #fff; font-size: 0.7rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; pointer-events: none; }
  .booking-tab-pane { display: none; padding: 24px; }
  .booking-tab-pane.active { display: block; }
  .booking-fields { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
  .booking-field { flex: 1 1 0; min-width: 0; }
  .booking-field--sm { flex: 0 1 130px; }
  .booking-field--lg { flex: 1 1 220px; }
  .booking-field--btn { flex: 0 0 auto; align-self: flex-end; }
  .tp-no-hint { margin: 0 !important; padding: 0 !important; }
  .tp-no-hint .mb-3 { margin: 0 !important; }
  .tp-no-hint .pb-1 { padding: 0 !important; }
  .tp-no-hint small { display: none !important; }
  .booking-label { display: block; font-size: 0.8rem; font-weight: 600; color: #374151; margin-bottom: 6px; }
  .booking-label-muted { font-weight: 400; color: #9ca3af; }
  .booking-input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid #d1d5db; border-radius: 8px; font-size: 0.9rem; color: #111827; background: #fff; transition: border-color .15s, box-shadow .15s; appearance: auto; }
  .booking-input:focus { outline: none; border-color: #f38020; box-shadow: 0 0 0 3px rgba(243,128,32,0.15); }
  .booking-submit { height: 44px; padding: 0 24px; border: none; border-radius: 8px; font-size: 0.9rem; font-weight: 700; cursor: pointer; white-space: nowrap; transition: opacity .15s, transform .1s; }
  .booking-submit:hover { opacity: 0.9; }
  .booking-submit:active { transform: scale(0.98); }
  .booking-submit--orange { background: #f38020; color: #fff; }
  .booking-submit--green { background: #16a34a; color: #fff; }
  .rebook-hint { font-size: 0.82rem; color: #6b7280; margin-bottom: 14px; padding: 9px 0; background: #f0fdf4; border-radius: 6px; }
  .rebook-error { background: #fef2f2; border-left: 3px solid #ef4444; border-radius: 0 6px 6px 0; padding: 10px 14px; font-size: 0.85rem; color: #b91c1c; margin-bottom: 12px; }
  .entry-content h2, .entry-content h3 { margin-bottom: 1.5rem; }
  .entry-content h3   { margin-top: 1.8rem; }
  .entry-content li   { margin-bottom: 1rem; line-height: 1.8; }
  .entry-content ul, .entry-content ul ul { list-style: none; padding-left: 2rem; margin-top: 1rem; }
  .entry-content ul ul { padding-left: 1.5rem; margin-top: 0.5rem; }
  .text-brand         { color: #b85500; }
  .text-ext-icon      { color: #00aaff; }
  .text-orange        { color: #935e00; } 
  .services-content   { max-width: 495px; }
  .services-list-item { line-height: 2.0; }
  .review-link        { text-decoration: none; white-space: nowrap; }
  .review-link-white  { color: #ffffff; text-decoration: none; }
  .offer-search-end   { margin-bottom: 40px; margin-right: 20px; }
  .offer-card-img { position: relative; overflow: hidden; width: 100%; line-height: 0; display: block; border-top-left-radius: calc(1rem - 1px); border-top-right-radius: calc(1rem - 1px); padding: 0; margin: 0; }
  .tns-carousel-inner .card { display: flex; flex-direction: column; height: 100%; overflow: hidden; }
  .offer-card-inner-img { width: 100%; height: 220px; display: block; object-fit: cover; object-position: center; margin: 0; padding: 0; }
  @media (max-width: 539.98px) { .offer-card-inner-img { height: 190px; } }
  @media (min-width: 540px) and (max-width: 899.98px) { .offer-card-inner-img { height: 200px; } }
  .tns-carousel-wrapper .tns-carousel-inner { overflow: hidden;  }
  .badge-price { width: 5.5rem; overflow: visible; white-space: nowrap; }
  .intro-text         { color: #b9cbdb; }
  .intro-top          { margin-top: 8rem !important;}
  .service-options-top { margin-top: 4rem; }
  .card-img-top { position: relative; width: 100%; height: 220px; overflow: hidden; border-radius: 0.25rem; }
  .card-img-top img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .tns-carousel-inner .card { display: flex; flex-direction: column; height: 100%; }
  .card-body { flex-grow: 1; }
  .option-beige       { background-color: beige; }
  .award-section-inner { min-height: 200px; }
  .award-panel-link   { color: white; text-decoration: none; }
  .award-section      { height: 40vh; min-height: 200px; cursor: pointer; }
  .admin-btn{ position: fixed; opacity:0;bottom:20px;right:80px;font-size:4px;transition:opacity .3s ease;pointer-events:auto;z-index:9999;padding:2px 4px;min-width:40px;}
  .admin-btn:hover{opacity:.9!important;}
  /* !important overrides home.css (loaded after this file) and .bg-dark a specificity */
  .btn-primary { background-color: #5549f1 !important; border-color: #5549f1 !important; color: #fff !important; }
  .btn-primary:hover, .btn-primary:focus, .btn-primary:active { background-color: #4439e0 !important; border-color: #4439e0 !important; color: #fff !important; }
  /* btn-success/warning use dark text: white on #0e9e75=3.4:1 fails, dark text passes (6.2:1 / 6.9:1) */
  .btn-success { background-color: #0e9e75 !important; border-color: #0e9e75 !important; color: #000 !important; }
  .btn-success:hover, .btn-success:focus, .btn-success:active { background-color: #0b8762 !important; border-color: #0b8762 !important; color: #000 !important; }
  .btn-warning { background-color: #e07800 !important; border-color: #e07800 !important; color: #000 !important; }
  .btn-warning:hover, .btn-warning:focus, .btn-warning:active { background-color: #c46a00 !important; border-color: #c46a00 !important; color: #000 !important; }
  .badge.bg-danger { background-color: #c0183f !important; }
  .text-muted { color: #595959 !important; }
  .bg-dark .text-muted { color: #a4a5c0 !important; }
  /* cards inside bg-dark have a white background; restore readable muted colour (#595959 on #fff = 7.0:1) */
  .bg-dark .card .text-muted { color: #595959 !important; }
  .text-blue-link { color: #0057a8 !important; }
  /* home.css .bg-dark .text-blue-link overrides to #8db5ed (2.1:1 on white); restore with higher specificity */
  .bg-dark .card .text-blue-link { color: #0057a8 !important; }
  /* accordion active/hover: home.css sets #766df4 (4.0:1); darken to #4439e0 (7.2:1) */
  .accordion-button:not(.collapsed) { color: #4439e0 !important; }
  .accordion-button:hover { color: #4439e0 !important; }
  a.card.card-hover, a.card.card-hover p, a.card.card-hover span { color: #37384e; }
  /* explicit white background so Lighthouse resolves contrast against the card, not the dark section */
  a.card.card-hover { background-color: #fff; }
  /* inline links inside div.fs-sm (accordion body) must have a non-color indicator — underline */
  div.fs-sm a { text-decoration: underline; }

  /* ===== Choose Your City Section ===== */
  .city-chooser { background: #1a1f2e; border-radius: 12px; padding: 2.5rem 2rem; margin: 3rem 0; }
  .city-chooser__header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 1.5rem; }
  .city-chooser__title { color: #fff; font-size: 22px; font-weight: 500; margin: 0; }
  .city-chooser__status { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #9ca3b0; background: rgba(255,255,255,0.07); border: 0.5px solid rgba(255,255,255,0.12); border-radius: 20px; padding: 4px 12px; }
  .city-chooser__status-dot { width: 7px; height: 7px; border-radius: 50%; background: #1D9E75; flex-shrink: 0; display: inline-block; }
  .city-chooser__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
  .city-chooser__card { background: #fff; border-radius: 12px; padding: 1.25rem; display: flex; flex-direction: column; gap: 12px; text-decoration: none; }
  .city-chooser__card--dim { opacity: 0.85; }
  .city-chooser__card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
  .city-chooser__icon-box { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
  .city-chooser__icon-box--blue { background: #E6F1FB; }
  .city-chooser__icon-box--blue svg { stroke: #378ADD; }
  .city-chooser__icon-box--yellow { background: #FAEEDA; }
  .city-chooser__icon-box--yellow svg { stroke: #BA7517; }
  .city-chooser__badge { font-size: 11px; font-weight: 500; padding: 3px 8px; border-radius: 20px; }
  .city-chooser__badge--current { background: #E6F1FB; color: #185FA5; }
  .city-chooser__badge--soon { background: #FAEEDA; color: #854F0B; }
  .city-chooser__city-name { font-size: 15px; font-weight: 500; color: #1a1f2e; margin: 0; }
  .city-chooser__airport { font-size: 13px; color: #6b7280; margin: 4px 0 0; }
  .city-chooser__cta { margin-top: auto; }
  .city-chooser__btn { display: block; width: 100%; text-align: center; padding: 7px; border-radius: 8px; font-size: 13px; font-weight: 500; box-sizing: border-box; }
  .city-chooser__btn--soon { border: 0.5px dashed #d1d5db; color: #9ca3af; }
  .city-chooser__btn--current { background: #185FA5; color: #fff; }
  .city-chooser__btn--other { border: 0.5px solid #d1d5db; color: #1a1f2e; }
  
  @media (max-width: 575.98px) {
    .city-chooser-section { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
    .city-chooser-section .city-card { padding: 1rem !important; }
    .city-chooser-section .row { --bs-gutter-x: 0.75rem; --bs-gutter-y: 0.75rem; }
    .city-name { white-space: normal; word-break: break-word; }
  }

.tp-ampm { background: #fff; color: #495057; }
.tp-ampm.tp-active { background: #eafbf1 !important; color: #198754 !important; font-weight: 700; }
.tp-ampm.tp-active::after { content: "✓"; margin-left: 4px; color: #198754; font-weight: 700; }

.flatpickr-months { background: #3d4a5c; border-radius: 5px 5px 0 0; }
.flatpickr-months .flatpickr-month { background: #3d4a5c; color: #fff; fill: #fff; }
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month { background: #3d4a5c; color: #fff; fill: #fff; }
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg { fill: #f38020; }
.flatpickr-current-month .flatpickr-monthDropdown-months { color: #fff; }
.flatpickr-current-month input.cur-year { color: #fff; }
.flatpickr-weekdays { background: #3d4a5c; }
.flatpickr-weekday { background: #3d4a5c; color: #fff !important; }

@media (max-width: 768px) {
  /* specificity 0,2,0 — .booking-tabs-wrapper 추가로 기본 스타일(0,1,0) 항상 override */
  .booking-form-top { margin-top: -40px; }
  .booking-tabs-wrapper { border-radius: 10px; }
  .booking-tabs-wrapper .booking-tab-nav { gap: 6px; padding: 10px 12px; }
  .booking-tabs-wrapper .booking-tab-btn { flex: 1; justify-content: center; padding: 10px 8px; font-size: 0.78rem; gap: 5px; }
  .booking-tabs-wrapper .rebook-badge { font-size: 0.65rem; padding: 2px 6px; }
  .booking-tabs-wrapper .booking-tab-pane { padding: 16px 14px; }
  .booking-tabs-wrapper .booking-fields { flex-direction: column; gap: 10px; }
  .booking-tabs-wrapper .booking-field,
  .booking-tabs-wrapper .booking-field--sm,
  .booking-tabs-wrapper .booking-field--lg { flex: 1 1 100%; width: 100%; min-width: 0; }
  .booking-tabs-wrapper .booking-field--btn { flex: 1 1 100%; width: 100%; align-self: stretch; }
  .booking-tabs-wrapper .booking-submit { width: 100%; font-size: 1rem; height: 48px; }
  .booking-tabs-wrapper .booking-input { height: 48px; font-size: 1rem; }
  .booking-tabs-wrapper .booking-label { font-size: 0.82rem; }
  .booking-tabs-wrapper .rebook-hint { font-size: 0.8rem; padding: 8px 4px; }
}
