/* Londonos Hotels Plugin Styles */

/* Reservation form */
.londonos-reservation-form {
  max-width: 700px;
  margin: 0 auto;
  background: #fff;
  border-radius: var(--radius-lg, 1rem);
  padding: 2.5rem;
  box-shadow: var(--shadow-md, 0 8px 30px rgba(0,0,0,.12));
}
.londonos-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (max-width: 600px) { .londonos-form-row { grid-template-columns: 1fr; } }
.londonos-form-group { margin-bottom: 1rem; }
.londonos-form-group label {
  display: block;
  font-size: .75rem;
  font-weight: 700;
  color: var(--color-7, #495057);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: .4rem;
}
.londonos-form-group input,
.londonos-form-group select,
.londonos-form-group textarea,
.londonos-transfer-search-row .bk-transfer-airport {
  width: 100%;
  padding: .75rem 1rem;
  border: 1.5px solid var(--color-3, #dee2e6);
  border-radius: var(--radius-sm, .5rem);
  font-family: inherit;
  font-size: .9rem;
  color: var(--color-9, #212529);
  transition: border-color .2s;
}
.londonos-form-group input:focus,
.londonos-form-group select:focus,
.londonos-form-group textarea:focus,
.londonos-transfer-search-row .bk-transfer-airport:focus {
  outline: none;
  border-color: var(--primary, #0e5c68);
  box-shadow: 0 0 0 3px rgba(14,92,104,.15);
}
.londonos-submit-btn {
  width: 100%;
  padding: 1rem;
  background: var(--accent-gold, #c8944f);
  color: #1a1305;
  border: none;
  border-radius: var(--radius-md, 1rem);
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: all .2s;
  font-family: inherit;
}
.londonos-submit-btn:hover {
  background: var(--accent-gold-hover, #b17f3d);
  transform: translateY(-1px);
}

/* Airport transfer promo banner (booking-page.php, 2026-09-17) -- extra
   services aren't built yet, this links out to a partner instead. */
.londonos-transfer-banner {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  margin-bottom: 2rem;
  background: var(--color-0, #f8f6f2);
  border: 1px solid var(--color-2, #e9ecef);
  border-radius: var(--radius-lg, 1rem);
  text-decoration: none;
  transition: box-shadow .2s, border-color .2s;
}
.londonos-transfer-banner:hover {
  box-shadow: var(--shadow-md, 0 8px 30px rgba(0,0,0,.12));
  border-color: var(--accent-gold, #c8944f);
}
.londonos-transfer-banner-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent-gold, #c8944f);
  color: #1a1305;
}
.londonos-transfer-banner-body { flex: 1; min-width: 0; }
.londonos-transfer-banner-title { font-weight: 700; color: var(--color-9, #212529); }
.londonos-transfer-banner-desc { font-size: .85rem; color: var(--color-6, #6c757d); margin-top: .15rem; }
.londonos-transfer-banner-cta {
  flex-shrink: 0;
  font-weight: 700;
  font-size: .85rem;
  color: var(--primary, #0e5c68);
  white-space: nowrap;
}

/* Booking checkout */
.londonos-checkout { color: var(--color-9, #212529); }
.londonos-checkout-steps { display:flex; gap:0; list-style:none; padding:0; margin:0 0 1.75rem; }
.londonos-checkout-steps li { flex:1; display:flex; align-items:center; gap:.55rem; padding:.75rem; border-bottom:2px solid var(--color-2, #e9ecef); color:var(--color-6, #6c757d); font-size:.875rem; font-weight:650; }
.londonos-checkout-steps li.is-current { color:var(--primary, #0e5c68); border-color:var(--primary, #0e5c68); }
.londonos-checkout-steps li.is-complete { color:#16804a; border-color:#16804a; }
.londonos-checkout-steps li span { display:grid; place-items:center; width:1.55rem; height:1.55rem; border:1px solid currentColor; border-radius:50%; font-size:.75rem; }
.londonos-checkout-grid { display:grid; grid-template-columns:minmax(0, 1.55fr) minmax(260px, .85fr); gap:1.5rem; align-items:start; }
.londonos-checkout-main, .londonos-booking-summary, .londonos-payment-card { padding:clamp(1.15rem, 3vw, 1.75rem); border:1px solid var(--color-2, #e9ecef); border-radius:var(--radius-lg, 1rem); background:#fff; box-shadow:0 5px 20px rgba(25,35,45,.05); }
.londonos-checkout-title { margin:0 0 .35rem; font-size:clamp(1.45rem, 3vw, 1.9rem); }
.londonos-checkout-lead { margin:0 0 1.25rem; color:var(--color-6, #6c757d); }
.londonos-booking-dates { display:flex; justify-content:space-between; gap:1rem; padding:1rem; margin-bottom:1.25rem; border-radius:var(--radius-md, .75rem); background:var(--color-0, #f8f6f2); }
.londonos-booking-summary { position:sticky; top:1rem; }
.londonos-summary-hotel { font-weight:800; font-size:1.1rem; }
.londonos-summary-room { padding:.3rem 0 1rem; color:var(--color-6, #6c757d); }
.londonos-summary-line, .londonos-summary-total { display:flex; justify-content:space-between; gap:1rem; padding:.65rem 0; border-top:1px solid var(--color-1, #f1f3f5); font-size:.9rem; }
.londonos-summary-line strong { text-align:right; }
.londonos-summary-policy { margin:.7rem 0; padding:.65rem .75rem; border-radius:.5rem; background:#fff7ed; color:#9a3412; font-size:.85rem; font-weight:700; }
.londonos-summary-policy.is-refundable { background:#f0fdf4; color:#166534; }
.londonos-summary-total { margin-top:.5rem; align-items:center; font-size:1rem; font-weight:750; }
.londonos-summary-total strong { font-size:1.35rem; }
.londonos-summary-note, .londonos-payment-secure { color:var(--color-6, #6c757d); font-size:.82rem; line-height:1.55; }
.londonos-payment-summary { margin:0 0 1rem; padding:1rem; border-radius:.75rem; background:var(--color-0, #f8f6f2); }
.londonos-payment-summary h1 { margin:0 0 .5rem; font-size:1.35rem; }
.londonos-payment-summary p { margin:.2rem 0; color:var(--color-6, #6c757d); }
.londonos-payment-total { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:1rem 0; font-size:1.15rem; }
.londonos-payment-total strong { font-size:1.4rem; }
.londonos-submit-btn:disabled { opacity:.65; cursor:wait; transform:none; }
/* Airport transfers on /book/ (2026-10-05): flat section, vehicle card grid */
.londonos-transfer-options { margin:1.75rem 0 1.25rem; padding-top:1.5rem; border-top:1px solid var(--color-2, #e9ecef); }
.londonos-transfer-title { margin:0 0 .35rem; font-size:1.3rem; }
.londonos-transfer-lead { margin:0 0 1rem; color:var(--color-6, #6c757d); font-size:.92rem; }
.londonos-transfer-leg { padding:1rem 0; border-top:1px solid var(--color-1, #f1f3f5); }
.londonos-transfer-toggle { display:flex; gap:.6rem; align-items:center; font-weight:700; cursor:pointer; }
.londonos-transfer-toggle small { font-weight:400; color:var(--color-6, #6c757d); }
.bk-transfer-content { margin-top:.9rem; }
.londonos-transfer-label { display:block; font-size:.85rem; margin-bottom:.35rem; }
.londonos-transfer-search-row { display:flex; gap:.6rem; }
.londonos-transfer-search-row .bk-transfer-airport { flex:1; min-width:0; }
.londonos-transfer-search-row .londonos-submit-btn { width:auto; margin:0; padding:.7rem 1.2rem; white-space:nowrap; }
.londonos-vehicle-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:.85rem; margin-top:1rem; }
.londonos-vehicle-grid:empty { display:none; }
.londonos-vehicle-card { display:flex; flex-direction:column; gap:.35rem; padding:.9rem; border:1px solid var(--color-2, #e9ecef); border-radius:var(--radius-md, .75rem); background:#fff; transition:border-color .15s, box-shadow .15s; }
.londonos-vehicle-card:hover { border-color:var(--color-3, #dee2e6); box-shadow:0 4px 14px rgba(25,35,45,.06); }
.londonos-vehicle-card.is-selected { border:2px solid var(--primary, #0e5c68); background:#f2f8f8; padding:calc(.9rem - 1px); }
.londonos-vehicle-media { height:110px; display:grid; place-items:center; margin-bottom:.25rem; border-radius:.5rem; background:#fff; }
.londonos-vehicle-media img { max-width:100%; max-height:100px; object-fit:contain; }
.londonos-vehicle-name { font-weight:750; }
.londonos-vehicle-meta { display:flex; flex-wrap:wrap; gap:.25rem .8rem; font-size:.82rem; color:var(--color-6, #6c757d); }
.londonos-vehicle-price { margin-top:auto; padding-top:.35rem; font-size:1.2rem; font-weight:800; }
.londonos-vehicle-select { width:100%; margin-top:.35rem; padding:.6rem; border:1px solid var(--primary, #0e5c68); border-radius:var(--radius-sm, .5rem); background:#fff; color:var(--primary, #0e5c68); font:inherit; font-weight:700; cursor:pointer; }
.londonos-vehicle-select:hover, .londonos-vehicle-select:focus-visible { background:var(--primary, #0e5c68); color:#fff; }
.londonos-vehicle-card.is-selected .londonos-vehicle-select { background:var(--primary, #0e5c68); color:#fff; }
.londonos-transfer-provider { margin:.75rem 0 0; font-size:.8rem; color:var(--color-6, #6c757d); }
@media (max-width: 520px) {
  .londonos-vehicle-grid { grid-template-columns:1fr; }
  .londonos-transfer-search-row { flex-direction:column; }
  .londonos-transfer-search-row .londonos-submit-btn { width:100%; }
}
@media (max-width: 760px) {
  .londonos-checkout-grid { grid-template-columns:1fr; }
  .londonos-booking-summary { position:static; grid-row:1; }
  .londonos-checkout-grid--package .londonos-booking-summary { order:-1; } /* package /book/: the package summary above the form */
  .londonos-checkout-steps li { justify-content:center; font-size:.76rem; padding:.65rem .25rem; }
}
@media (max-width: 420px) {
  .londonos-checkout-steps li { flex-direction:column; gap:.3rem; }
  .londonos-booking-dates { font-size:.9rem; }
}

/* FAQ accordion */
.londonos-faq { max-width: 800px; margin: 0 auto; }
.londonos-faq-item {
  border: 1px solid var(--color-2, #e9ecef);
  border-radius: var(--radius-md, 1rem);
  margin-bottom: .75rem;
  overflow: hidden;
}
.londonos-faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  background: #fff;
  border: none;
  font-weight: 600;
  font-size: 1rem;
  color: var(--color-9, #212529);
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  gap: 1rem;
}
.londonos-faq-question:hover { background: var(--color-0, #f8f9fa); }
.londonos-faq-icon { flex-shrink: 0; transition: transform .3s; }
.londonos-faq-item.open .londonos-faq-icon { transform: rotate(180deg); }
.londonos-faq-answer {
  display: none;
  padding: 0 1.5rem 1.25rem;
  color: var(--color-7, #495057);
  line-height: 1.7;
  font-size: .9rem;
}
.londonos-faq-item.open .londonos-faq-answer { display: block; }

/* Account page */
.londonos-account { max-width: 900px; margin: 0 auto; }
.londonos-account-tabs {
  display: flex;
  gap: .5rem;
  margin-bottom: 2rem;
  border-bottom: 2px solid var(--color-2, #e9ecef);
  padding-bottom: 0;
}
.londonos-tab-btn {
  padding: .75rem 1.5rem;
  border: none;
  background: transparent;
  font-weight: 600;
  color: var(--color-6, #868e96);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  font-family: inherit;
  transition: all .2s;
}
.londonos-tab-btn.active,
.londonos-tab-btn:hover { color: var(--primary-hover, #0ea6e9); border-bottom-color: var(--primary-hover, #0ea6e9); }
.londonos-tab-panel { display: none; }
.londonos-tab-panel.active { display: block; }

/* Reservation table */
.londonos-reservations-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.londonos-reservations-table th { background: var(--color-0, #f8f9fa); font-weight: 700; padding: .75rem 1rem; text-align: left; border-bottom: 2px solid var(--color-2, #e9ecef); }
.londonos-reservations-table td { padding: .75rem 1rem; border-bottom: 1px solid var(--color-1, #f1f3f5); }
.londonos-reservations-table tr:hover td { background: var(--color-0, #f8f9fa); }

/* Status badges */
.status-pending   { color: #f59e0b; font-weight: 600; }
.status-confirmed { color: #10b981; font-weight: 600; }
.status-cancelled { color: #ef4444; font-weight: 600; }
.status-completed { color: #6366f1; font-weight: 600; }

/* Auth pages: login / register / forgot-password */
.londonos-auth-wrap {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 2rem 1rem 4rem;
}
.londonos-auth-box {
  width: 100%;
  max-width: 460px;
  background: #fff;
  border-radius: var(--radius-lg, 1rem);
  padding: 2.5rem;
  box-shadow: var(--shadow-md, 0 8px 30px rgba(0,0,0,.1));
}
.londonos-auth-box h2 {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--color-9, #212529);
  margin: 0 0 1.5rem;
}
.londonos-auth-form { display: flex; flex-direction: column; gap: 0; }

/* Notices */
.londonos-notice {
  padding: .875rem 1rem;
  border-radius: var(--radius-md, .625rem);
  font-size: .875rem;
  margin-bottom: 1.25rem;
}
.londonos-notice-error   { background: #fef2f2; color: #b91c1c; border-left: 4px solid #ef4444; }
.londonos-notice-success { background: #f0fdf4; color: #166534; border-left: 4px solid #22c55e; }
.londonos-notice-info    { background: #eff6ff; color: #1e40af; border-left: 4px solid #3b82f6; }

/* Reservation flow responsive grid */
@media (max-width: 800px) {
  .reservation-grid { grid-template-columns: 1fr !important; }
}

/* Booking summary price breakdown (2026-10-05) */
.londonos-summary-breakdown .londonos-summary-line { font-size:.84rem; color:var(--color-7, #495057); }
.londonos-summary-breakdown .londonos-summary-line strong { font-weight:600; }

/* Airport combobox on /book/ (2026-10-05) */
.londonos-airport-combo { position:relative; flex:1; min-width:0; }
.londonos-airport-combo .bk-transfer-airport { width:100%; }
.londonos-airport-list { position:absolute; z-index:30; left:0; right:0; top:calc(100% + 4px); margin:0; padding:.3rem 0; list-style:none; max-height:18rem; overflow-y:auto; background:#fff; border:1px solid var(--color-3, #dee2e6); border-radius:var(--radius-sm, .5rem); box-shadow:0 10px 28px rgba(25,35,45,.12); }
.londonos-airport-list li { display:flex; flex-direction:column; gap:.1rem; padding:.55rem .9rem; cursor:pointer; }
.londonos-airport-list li[aria-selected="true"], .londonos-airport-list li:hover { background:#f2f8f8; }
.londonos-airport-name { font-weight:600; font-size:.9rem; }
.londonos-airport-meta { font-size:.78rem; color:var(--color-6, #6c757d); }

/* Phone country picker on /book/ (2026-10-05) */
.londonos-phone-field { position:relative; display:flex; gap:.5rem; }
.londonos-phone-field #bk-phone { flex:1; min-width:0; }
.londonos-phone-country { display:flex; align-items:center; gap:.4rem; padding:0 .7rem; border:1.5px solid var(--color-3, #dee2e6); border-radius:var(--radius-sm, .5rem); background:#fff; font:inherit; font-size:.9rem; color:var(--color-9, #212529); cursor:pointer; white-space:nowrap; }
.londonos-phone-country:focus-visible { outline:none; border-color:var(--primary, #0e5c68); box-shadow:0 0 0 3px rgba(14,92,104,.15); }
.londonos-phone-country img, .londonos-phone-list img { border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,.08); flex:none; }
.londonos-phone-panel { position:absolute; z-index:40; left:0; top:calc(100% + 4px); width:min(22rem, 100%); background:#fff; border:1px solid var(--color-3, #dee2e6); border-radius:var(--radius-sm, .5rem); box-shadow:0 10px 28px rgba(25,35,45,.14); padding:.5rem; }
.londonos-phone-search { width:100%; padding:.55rem .75rem; border:1.5px solid var(--color-3, #dee2e6); border-radius:var(--radius-sm, .5rem); font:inherit; font-size:.9rem; margin-bottom:.4rem; }
.londonos-phone-list { list-style:none; margin:0; padding:0; max-height:16rem; overflow-y:auto; }
.londonos-phone-list li[role="option"] { display:flex; align-items:center; gap:.6rem; padding:.45rem .5rem; border-radius:.35rem; cursor:pointer; font-size:.9rem; }
.londonos-phone-list li[role="option"]:hover, .londonos-phone-list li.is-active { background:#f2f8f8; }
.londonos-phone-list li[aria-selected="true"] { font-weight:700; }
.londonos-phone-name { flex:1; }
.londonos-phone-dial { color:var(--color-6, #6c757d); font-variant-numeric:tabular-nums; }
.londonos-phone-sep { height:1px; margin:.3rem 0; background:var(--color-2, #e9ecef); }

/* /book/ tour add-ons (2026-10-06) */
.londonos-tour-addons { margin: 2rem 0; }
.londonos-tour-addon { border: 1px solid #e5e1d8; border-radius: 12px; padding: .75rem; margin-bottom: .75rem; background: #fff; }
.londonos-tour-addon.is-added { border-color: #b8893d; box-shadow: 0 0 0 1px #b8893d inset; }
.londonos-tour-addon-head { display: flex; gap: .75rem; align-items: center; }
.londonos-tour-addon-photo { width: 96px; height: 72px; object-fit: cover; border-radius: 8px; flex: none; }
.londonos-tour-addon-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.londonos-tour-addon-title { font-weight: 600; color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.londonos-tour-addon-title:hover { text-decoration: underline; }
.londonos-tour-addon-rating, .londonos-tour-addon-price { font-size: .875rem; color: #6b6458; }
.londonos-tour-addon-toggle { flex: none; border: 1px solid #b8893d; background: #fff; color: #8a6420; border-radius: 999px; padding: .4rem 1rem; cursor: pointer; font: inherit; }
.londonos-tour-addon-toggle[aria-pressed="true"] { background: #b8893d; color: #fff; }
.londonos-tour-addon-toggle:disabled { opacity: .45; cursor: not-allowed; }
.londonos-tour-addon-form { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: end; margin-top: .75rem; }
.londonos-tour-addon-form[hidden] { display: none; }
.londonos-tour-addon-form label { display: flex; flex-direction: column; font-size: .8rem; gap: .25rem; }
.londonos-tour-addon-form input { padding: .45rem .6rem; border: 1px solid #d6d0c4; border-radius: 8px; font: inherit; }
.londonos-tour-addon-form input[type="number"] { width: 5rem; }
.bk-tour-line-total { margin-left: auto; }
.londonos-tour-addon-limit { font-size: .875rem; color: #8a6420; }
@media (max-width: 480px) {
	.londonos-tour-addon-head { flex-wrap: wrap; }
	.londonos-tour-addon-toggle { width: 100%; }
}

/* /book/ tour card details: open in place on hover (pointer devices) or via "Details" (2026-10-06) */
.londonos-tour-addon { transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.londonos-tour-addon-more { align-self: flex-start; background: none; border: 0; padding: 0; color: #0f5e66; font: inherit; font-size: .8rem; text-decoration: underline; cursor: pointer; }
.londonos-tour-addon-details { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .35s ease .15s, opacity .2s ease .15s, margin-top .35s ease .15s; }
.londonos-tour-addon.is-open .londonos-tour-addon-details { max-height: 40rem; opacity: 1; margin-top: .75rem; transition-delay: 0s; }
.londonos-tour-addon.is-open .londonos-tour-addon-photo { width: 128px; height: 96px; }
.londonos-tour-addon-photo { transition: width .25s ease, height .25s ease; }
@media (hover: hover) and (pointer: fine) {
	.londonos-tour-addon:hover { box-shadow: 0 10px 28px rgba(31, 26, 18, .12); transform: translateY(-2px); border-color: #d9c39a; }
	.londonos-tour-addon:hover .londonos-tour-addon-details { max-height: 40rem; opacity: 1; margin-top: .75rem; transition-delay: .05s; }
	.londonos-tour-addon:hover .londonos-tour-addon-photo { width: 128px; height: 96px; }
}
@media (prefers-reduced-motion: reduce) {
	.londonos-tour-addon, .londonos-tour-addon-details, .londonos-tour-addon-photo { transition: none; }
	.londonos-tour-addon:hover { transform: none; }
}
.londonos-tour-addon-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; margin-bottom: .6rem; }
.londonos-tour-addon-gallery img { width: 100%; height: 90px; object-fit: cover; border-radius: 8px; }
.londonos-tour-addon-badges { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .5rem; }
.londonos-tour-addon-badges .tour-badge { font-size: .75rem; padding: .15rem .55rem; border-radius: 999px; }
.londonos-tour-addon-badges .tour-badge--best { background: #c8964a; color: #fff; }
.londonos-tour-addon-badges .tour-badge--free { background: #e7f4ec; color: #1f6b3d; }
.londonos-tour-addon-excerpt { font-size: .9rem; line-height: 1.55; color: #4a453c; margin: 0 0 .5rem; }
.londonos-tour-addon-included-title { display: block; font-size: .85rem; margin-bottom: .25rem; }
.londonos-tour-addon-included { list-style: none; margin: 0 0 .5rem; padding: 0; font-size: .85rem; color: #4a453c; }
.londonos-tour-addon-included li { padding-left: 1.2rem; position: relative; margin-bottom: .15rem; }
.londonos-tour-addon-included li::before { content: "✓"; position: absolute; left: 0; color: #1f6b3d; }
.londonos-tour-addon-full { font-size: .85rem; color: #0f5e66; font-weight: 600; }
@media (max-width: 480px) {
	.londonos-tour-addon-gallery img { height: 70px; }
}

/* /book/ airport transfer, more visible (2026-10-06) */
.londonos-transfer-hero { display: flex; gap: 1rem; align-items: center; background: linear-gradient(135deg, #f4ede0 0%, #e8f1f1 100%); border: 1px solid #e3d6bd; border-radius: 16px; padding: 1.1rem 1.25rem; margin-bottom: .9rem; }
.londonos-transfer-hero-icon { flex: none; width: 3.25rem; height: 3.25rem; display: grid; place-items: center; font-size: 1.8rem; background: #fff; border-radius: 50%; box-shadow: 0 4px 14px rgba(31, 26, 18, .1); }
.londonos-transfer-hero .londonos-transfer-title { margin: 0 0 .35rem; }
.londonos-transfer-benefits { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem 1rem; font-size: .88rem; color: #4a453c; }
.londonos-transfer-benefits li::before { content: "✓ "; color: #1f6b3d; font-weight: 700; }
.londonos-transfer-leg { border-top: 0; padding: .4rem 0; }
.londonos-transfer-toggle { position: relative; display: flex; align-items: center; gap: .9rem; padding: .95rem 1.1rem; border: 1.5px solid #d6d0c4; border-radius: 14px; background: #fff; transition: border-color .2s, box-shadow .2s, background .2s; }
.londonos-transfer-toggle:hover { border-color: #b8893d; box-shadow: 0 6px 18px rgba(31, 26, 18, .08); }
.londonos-transfer-toggle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.londonos-transfer-toggle:focus-within { outline: 2px solid #0f5e66; outline-offset: 2px; }
.londonos-transfer-toggle-icon { flex: none; font-size: 1.15rem; padding: .35rem .6rem; border-radius: 10px; background: #f4ede0; white-space: nowrap; }
.londonos-transfer-toggle-text { display: flex; flex-direction: column; gap: .1rem; flex: 1; }
.londonos-transfer-toggle-check { flex: none; width: 1.6rem; height: 1.6rem; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid #d6d0c4; color: transparent; font-weight: 700; }
.londonos-transfer-leg.is-on .londonos-transfer-toggle { border-color: #b8893d; background: #fdf9f2; box-shadow: 0 0 0 1px #b8893d inset; }
.londonos-transfer-leg.is-on .londonos-transfer-toggle-check { background: #b8893d; border-color: #b8893d; color: #fff; }
.londonos-transfer-leg .bk-transfer-content { padding: .75rem .25rem 0; }
.londonos-summary-add-transfer { display: block; margin: .5rem 0 .25rem; padding: .55rem .75rem; border: 1px dashed #b8893d; border-radius: 10px; color: #8a6420; font-weight: 600; font-size: .9rem; text-align: center; text-decoration: none; }
.londonos-summary-add-transfer:hover { background: #fdf9f2; }
.londonos-summary-add-transfer[hidden] { display: none; }
@media (max-width: 480px) {
	.londonos-transfer-hero { flex-direction: column; align-items: flex-start; }
	.londonos-transfer-toggle { padding: .85rem .9rem; gap: .65rem; }
}
/* Paketini Oluştur on /book/ (2026-10-10): the package's parts as chosen in the wizard, no new offers.
 * Once a part is preselected its search / pick controls are hidden; a part that could not be
 * preselected again (expired quote, refreshed fares) keeps them, so it can be picked again. */
.is-trip .londonos-trip-lead a { font-weight:600; white-space:nowrap; }
.is-trip .londonos-flight-addon.is-added :is(.lfa-origin, .lfa-top, .lfa-all-toggle, .lfa-all, .lfa-remove) { display:none !important; }
.is-trip .londonos-transfer-leg:has(.londonos-vehicle-card.is-selected) :is(.londonos-transfer-label, .londonos-transfer-search-row, .londonos-vehicle-card:not(.is-selected), .bk-transfer-select) { display:none !important; }
.is-trip .londonos-transfer-leg:has(.londonos-vehicle-card.is-selected) .londonos-transfer-toggle { pointer-events:none; }
.is-trip .londonos-transfer-leg:has(.londonos-vehicle-card.is-selected) .bk-transfer-results { grid-template-columns:minmax(0, 320px); }
.is-trip-tours .londonos-tour-addon-toggle { display:none !important; }
/* Flight card on the hotel /book/ page (2026-10-07, includes/flights/hotel-addon-page.php) */
.londonos-flight-addon { margin:2rem 0; padding:1rem; border:1px solid #e5e1d8; border-radius:12px; background:#fff; transition:border-color .2s ease, box-shadow .2s ease; }
.londonos-flight-addon.is-added { border-color:#b8893d; box-shadow:0 0 0 1px #b8893d inset; }
.londonos-flight-addon [hidden] { display:none !important; }
.londonos-flight-addon .lfa-origin label { display:block; font-size:.85rem; font-weight:600; margin-bottom:.35rem; }
.londonos-flight-addon .lfa-combobox { position:relative; max-width:26rem; }
.londonos-flight-addon .lfa-from { width:100%; box-sizing:border-box; padding:.6rem .75rem; border:1px solid #d6d0c4; border-radius:8px; font:inherit; }
.londonos-flight-addon .lfa-suggest { position:absolute; z-index:30; left:0; right:0; top:calc(100% + 4px); margin:0; padding:.3rem 0; list-style:none; max-height:18rem; overflow-y:auto; background:#fff; border:1px solid var(--color-3, #dee2e6); border-radius:var(--radius-sm, .5rem); box-shadow:0 10px 28px rgba(25,35,45,.12); }
.londonos-flight-addon .lfa-suggest li { display:flex; flex-direction:column; gap:.1rem; padding:.55rem .9rem; cursor:pointer; }
.londonos-flight-addon .lfa-suggest li small { color:#6b6458; font-size:.78rem; }
.londonos-flight-addon .lfa-suggest li.is-city span { font-weight:700; }
.londonos-flight-addon .lfa-suggest li[aria-selected="true"], .londonos-flight-addon .lfa-suggest li[data-i]:hover { background:#f2f8f8; }
.londonos-flight-addon .lfa-suggest-empty { cursor:default; color:#6b6458; }
.londonos-flight-addon .lfa-geo { margin:.4rem .75rem 0 0; padding:0; border:0; background:none; color:#0f5e66; font:inherit; font-size:.88rem; text-decoration:underline; cursor:pointer; }
.londonos-flight-addon .lfa-geo:disabled { opacity:.6; cursor:wait; }
.londonos-flight-addon .lfa-geo-status { font-size:.85rem; color:#6b6458; }
.londonos-flight-addon .lfa-notice { margin:.85rem 0 0; padding:.6rem .8rem; border-radius:8px; background:#fff7e6; color:#7a4d00; font-size:.9rem; }
.londonos-flight-addon .lfa-status:not(:empty) { margin-top:.85rem; }
.londonos-flight-addon .lfa-searching { display:flex; gap:.75rem; align-items:center; padding:.75rem; border-radius:8px; background:#f8f6f2; }
.londonos-flight-addon .lfa-searching > span:last-child { display:flex; flex-direction:column; gap:.15rem; }
.londonos-flight-addon .lfa-searching small, .londonos-flight-addon .lfa-message p { color:#6b6458; font-size:.85rem; margin:0; }
.londonos-flight-addon .lfa-spinner { flex:none; width:1.4rem; height:1.4rem; box-sizing:border-box; border:3px solid #e5e1d8; border-top-color:#b8893d; border-radius:50%; animation:lfa-spin 1s linear infinite; }
@keyframes lfa-spin { to { transform:rotate(360deg); } }
.londonos-flight-addon .lfa-message { display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:center; }
.londonos-flight-addon .lfa-subtitle { margin:1rem 0 .6rem; font-size:1rem; }
.londonos-flight-addon .lfa-subtitle small { font-weight:400; color:#6b6458; }
.londonos-flight-addon .lfa-combo, .londonos-flight-addon .lfa-row { display:flex; gap:.75rem 1rem; align-items:center; justify-content:space-between; padding:.75rem; margin-bottom:.6rem; border:1px solid #e5e1d8; border-radius:10px; background:#fff; transition:box-shadow .2s ease, border-color .2s ease; }
.londonos-flight-addon .lfa-combo.is-selected, .londonos-flight-addon .lfa-row.is-selected { border-color:#b8893d; box-shadow:0 0 0 1px #b8893d inset; background:#fffbf3; }
@media (hover: hover) and (pointer: fine) {
	.londonos-flight-addon .lfa-combo:hover, .londonos-flight-addon .lfa-row:hover { box-shadow:0 6px 18px rgba(31,26,18,.10); border-color:#d9c39a; }
}
.londonos-flight-addon .lfa-combo-legs { display:flex; flex-direction:column; gap:.55rem; min-width:0; flex:1; }
.londonos-flight-addon .lfa-leg { display:flex; flex-direction:column; gap:.1rem; min-width:0; flex:1; }
.londonos-flight-addon .lfa-leg-dir { font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:#8a6420; }
.londonos-flight-addon .lfa-leg-times { font-size:.98rem; }
.londonos-flight-addon .lfa-leg-times sup { font-size:.7rem; color:#b45309; margin-left:.1rem; }
.londonos-flight-addon .lfa-leg-meta { font-size:.82rem; color:#6b6458; overflow-wrap:anywhere; }
.londonos-flight-addon .lfa-direct { color:#1f6b3d; }
.londonos-flight-addon .lfa-stops { color:#8a6420; }
.londonos-flight-addon .lfa-combo-side, .londonos-flight-addon .lfa-row-side { flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:.4rem; }
.londonos-flight-addon .lfa-price { font-size:1.15rem; font-weight:800; white-space:nowrap; }
.londonos-flight-addon .lfa-pick, .londonos-flight-addon .lfa-pick-leg, .londonos-flight-addon .lfa-remove, .londonos-flight-addon .lfa-retry, .londonos-flight-addon .lfa-more { border:1px solid #b8893d; background:#fff; color:#8a6420; border-radius:999px; padding:.4rem 1rem; cursor:pointer; font:inherit; font-size:.9rem; }
.londonos-flight-addon .lfa-pick[aria-pressed="true"], .londonos-flight-addon .lfa-pick-leg[aria-pressed="true"] { background:#b8893d; color:#fff; }
.londonos-flight-addon .lfa-all-toggle { margin:.25rem 0 0; padding:0; border:0; background:none; color:#0f5e66; font:inherit; font-weight:600; text-decoration:underline; cursor:pointer; }
.londonos-flight-addon .lfa-all { margin-top:.5rem; padding-top:.5rem; border-top:1px solid #efebe3; }
.londonos-flight-addon .lfa-filters { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; align-items:center; margin-bottom:.6rem; font-size:.88rem; }
.londonos-flight-addon .lfa-check { display:flex; gap:.4rem; align-items:center; cursor:pointer; }
.londonos-flight-addon .lfa-airline select { margin-left:.35rem; max-width:14rem; padding:.3rem .5rem; border:1px solid #d6d0c4; border-radius:8px; font:inherit; }
.londonos-flight-addon .lfa-empty { color:#6b6458; font-size:.9rem; }
.londonos-flight-addon .lfa-more { display:block; margin:0 auto .5rem; }
.londonos-flight-addon .lfa-chosen { display:flex; gap:.75rem 1rem; align-items:flex-start; justify-content:space-between; margin-top:1rem; padding:.85rem; border-radius:10px; background:#fffbf3; border:1px solid #ecdcbc; }
.londonos-flight-addon .lfa-chosen-text { display:flex; flex-direction:column; gap:.5rem; min-width:0; }
.londonos-flight-addon .lfa-chosen-total { font-size:1.05rem; }
.londonos-flight-addon .lfa-travellers { margin:1rem 0 0; padding:0; border:0; min-width:0; }
.londonos-flight-addon .lfa-travellers-title { margin:0 0 .5rem; padding:0; font-size:1rem; font-weight:700; }
.londonos-flight-addon .lfa-privacy { font-size:.85rem; color:#475569; margin:.25rem 0 0; }
.londonos-flight-addon .lfa-all:not([hidden]), .londonos-flight-addon .lfa-chosen:not([hidden]), .londonos-flight-addon .lfa-travellers:not([hidden]) { animation:lfa-in .25s ease; }
@keyframes lfa-in { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }
@media (max-width: 600px) {
	.londonos-flight-addon { padding:.85rem; }
	.londonos-flight-addon .lfa-combo, .londonos-flight-addon .lfa-row, .londonos-flight-addon .lfa-chosen { flex-direction:column; align-items:stretch; }
	.londonos-flight-addon .lfa-combo-side, .londonos-flight-addon .lfa-row-side { flex-direction:row; align-items:center; justify-content:space-between; }
	.londonos-flight-addon .lfa-combobox, .londonos-flight-addon .lfa-airline select { max-width:100%; }
	.londonos-flight-addon .lfa-remove { align-self:flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	.londonos-flight-addon, .londonos-flight-addon .lfa-combo, .londonos-flight-addon .lfa-row { transition:none; }
	.londonos-flight-addon .lfa-all:not([hidden]), .londonos-flight-addon .lfa-chosen:not([hidden]), .londonos-flight-addon .lfa-travellers:not([hidden]) { animation:none; }
	.londonos-flight-addon .lfa-spinner { animation-duration:3s; }
}
