
/* ============================================================
     SERVICES — editorial Lone1 redesign
     ============================================================ */
  /* Editorial palette tokens are defined globally in assets/css/app.css :root —
     do not redeclare. Local-only vars (--header-height, --sidebar-width) stay here. */
  .ds-page #ai_services {
    --header-height: 80px;
    --sidebar-width: 300px;
    background: var(--c-cream);
    color: var(--c-ink);
    font-family: 'Inter', system-ui, sans-serif;
  }

  /* ---------- Defensive: ensure Font Awesome glyphs render ---------- */
  .ds-page #ai_services i.fa,
  .ds-page #ai_services i.fas,
  .ds-page #ai_services i.fa-solid {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome" !important;
    font-weight: 900 !important;
    font-style: normal !important;
    display: inline-block;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  .ds-page #ai_services i.far,
  .ds-page #ai_services i.fa-regular {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome" !important;
    font-weight: 400 !important;
    font-style: normal !important;
  }
  .ds-page #ai_services i.fab,
  .ds-page #ai_services i.fa-brands {
    font-family: "Font Awesome 6 Brands", "Font Awesome 5 Brands" !important;
    font-weight: 400 !important;
    font-style: normal !important;
  }

  /* ---------- HERO (deep dark) ---------- */
  .ds-page #ai_services .booking-services-page {
    color: var(--c-ink);
    background: var(--c-cream);
  }

  .ds-page #ai_services .services-hero-section {
    position: relative;
    background-color: var(--c-deep);
    color: var(--c-cream);
    text-align: left;
    overflow: hidden;
    padding: 22vh 6vw 16vh !important;
    margin-top: calc(var(--header-height) * -1);
    display: block;
    min-height: auto;
    border-bottom: 1px solid var(--c-line-light);
  }

  .ds-page #ai_services .services-hero-image {
    position: absolute;
    inset: 0;
    background-image: url("https://cdn.fstr.site/lone1-a9e3db38/sha256/c1de27ef32712396e981ef0e12bc46e7ab62bc62968460a3a68e740273f64a10.jpg");
    background-size: cover;
    background-position: center;
    z-index: 0;
    filter: grayscale(0.3) contrast(1.05);
  }

  .ds-page #ai_services .services-hero-overlay {
    position: absolute;
    inset: 0;
    background:
      linear-gradient(180deg, rgba(22, 25, 34, 0.7) 0%, rgba(22, 25, 34, 0.85) 60%, rgba(22, 25, 34, 0.95) 100%),
      radial-gradient(ellipse at top right, rgba(200, 154, 58, 0.08) 0%, transparent 60%);
    z-index: 1;
  }

  .ds-page #ai_services .services-hero-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
    position: relative;
    z-index: 2;
  }

  /* Editorial eyebrow with typewriter */
  .ds-page #ai_services .sv-hero-eyebrow {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    margin-bottom: 28px;
  }
  .ds-page #ai_services .sv-hero-eyebrow .l1-eyebrow {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--c-gold);
    line-height: 1;
    margin: 0;
  }
  .ds-page #ai_services .sv-hero-eyebrow .l1-typewriter {
    font-family: 'Instrument Serif', serif;
    font-style: italic;
    color: var(--c-gold);
    font-size: 18px;
    line-height: 1;
    padding: 0;
    margin: 0;
  }
  /* Hide the original eyebrow with hyphen rules, but keep markup intact */
  .ds-page #ai_services .services-hero-eyebrow {
    display: none;
  }

  .ds-page #ai_services .services-hero-title {
    font-family: 'Instrument Serif', 'Cormorant Garamond', serif !important;
    font-size: clamp(48px, 7vw, 96px);
    font-weight: 400;
    line-height: 0.98;
    color: var(--c-cream);
    margin: 0 0 28px;
    letter-spacing: -0.02em;
    max-width: 920px;
  }
  .ds-page #ai_services .services-hero-title em {
    font-style: italic;
    color: var(--c-gold);
    font-weight: 400;
  }

  .ds-page #ai_services .services-hero-subtitle {
    font-family: 'Instrument Serif', serif;
    font-style: italic;
    font-size: clamp(18px, 1.7vw, 22px);
    font-weight: 400;
    line-height: 1.55;
    color: rgba(239, 234, 224, 0.78);
    max-width: 600px;
    margin: 0;
    padding-top: 24px;
    border-top: 1px solid var(--c-line-light);
  }

  /* ---------- GRID SECTION ---------- */
  .ds-page #ai_services .services-grid-section {
    padding: 14vh 0 16vh;
    background: var(--c-cream);
    position: relative;
  }

  .ds-page #ai_services .services-main-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 6vw;
  }

  .ds-page #ai_services .services-layout {
    display: flex;
    gap: 48px;
    align-items: flex-start;
  }

  /* ---------- FILTERS SIDEBAR ---------- */
  .ds-page #ai_services .filters-sidebar {
    width: var(--sidebar-width);
    flex-shrink: 0;
    background: var(--c-paper);
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    position: sticky;
    top: calc(var(--header-height) + 24px);
    max-height: calc(100vh - var(--header-height) - 48px);
    overflow: hidden;
    border: 1px solid var(--c-line);
  }

  .ds-page #ai_services .sidebar-scroll-container {
    max-height: calc(100vh - var(--header-height) - 48px);
    overflow-y: auto;
    padding: 28px;
  }
  .ds-page #ai_services .sidebar-scroll-container::-webkit-scrollbar { width: 4px; }
  .ds-page #ai_services .sidebar-scroll-container::-webkit-scrollbar-track { background: transparent; }
  .ds-page #ai_services .sidebar-scroll-container::-webkit-scrollbar-thumb {
    background: var(--c-line);
    border-radius: 0;
  }
  .ds-page #ai_services .sidebar-scroll-container::-webkit-scrollbar-thumb:hover {
    background: var(--c-gold);
  }

  .ds-page #ai_services .sidebar-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--c-line);
  }

  .ds-page #ai_services .sidebar-title {
    font-family: 'Instrument Serif', serif;
    font-size: 22px;
    font-weight: 400;
    font-style: italic;
    color: var(--c-deep);
    letter-spacing: -0.005em;
  }

  .ds-page #ai_services .clear-filters-btn {
    background: transparent;
    border: 1px solid var(--c-deep);
    color: var(--c-deep);
    font-size: 10px;
    font-weight: 600;
    cursor: pointer;
    padding: 6px 12px;
    border-radius: 0;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    transition: background 0.25s ease, color 0.25s ease;
  }
  .ds-page #ai_services .clear-filters-btn:hover {
    background: var(--c-deep);
    color: var(--c-cream);
  }

  .ds-page #ai_services .filter-section {
    margin-bottom: 32px;
  }

  .ds-page #ai_services .filter-section-title {
    font-size: 10px;
    font-weight: 600;
    color: var(--c-gold);
    text-transform: uppercase;
    letter-spacing: 0.22em;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .ds-page #ai_services .filter-section-title i {
    color: var(--c-gold);
    font-size: 11px;
  }

  /* Search field */
  .ds-page #ai_services .search-box { position: relative; }
  .ds-page #ai_services .search-input {
    width: 100%;
    padding: 12px 40px 12px 0;
    border: 0;
    border-bottom: 1px solid var(--c-line);
    border-radius: 0;
    font-size: 14px;
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    transition: border-color 0.25s ease;
    background: transparent;
    color: var(--c-deep);
  }
  .ds-page #ai_services .search-input::placeholder { color: var(--c-ink); opacity: 0.5; }
  .ds-page #ai_services .search-input:hover { border-bottom-color: var(--c-deep); }
  .ds-page #ai_services .search-input:focus {
    outline: none;
    border-bottom-color: var(--c-gold);
    box-shadow: none;
  }
  .ds-page #ai_services .search-icon {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--c-gold);
    pointer-events: none;
    font-size: 13px;
  }

  /* Filter options */
  .ds-page #ai_services .filter-options {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .ds-page #ai_services .filter-option {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    padding: 10px 0;
    border-radius: 0;
    transition: background 0.2s ease;
    user-select: none;
  }
  .ds-page #ai_services .filter-option:hover {
    background: transparent;
  }
  .ds-page #ai_services .filter-option:hover .filter-label {
    color: var(--c-gold);
  }

  .ds-page #ai_services .filter-checkbox {
    width: 16px;
    height: 16px;
    border: 1px solid var(--c-deep);
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.25s ease, border-color 0.25s ease;
    background: transparent;
  }
  .ds-page #ai_services .filter-option:hover .filter-checkbox {
    border-color: var(--c-gold);
  }
  .ds-page #ai_services .filter-checkbox.checked {
    background: var(--c-gold);
    border-color: var(--c-gold);
  }
  .ds-page #ai_services .filter-checkbox i {
    color: var(--c-deep);
    font-size: 9px;
    display: none;
    font-weight: 700;
  }
  .ds-page #ai_services .filter-checkbox.checked i { display: block; }

  .ds-page #ai_services .filter-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--c-deep);
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: color 0.2s ease;
  }
  .ds-page #ai_services .filter-count {
    font-size: 10px;
    font-weight: 600;
    color: var(--c-ink);
    background: transparent;
    border: 1px solid var(--c-line);
    padding: 2px 8px;
    border-radius: 0;
    min-width: 24px;
    text-align: center;
    letter-spacing: 0.08em;
  }

  /* Price range */
  .ds-page #ai_services .price-range-inputs {
    display: flex;
    gap: 12px;
    align-items: flex-end;
  }
  .ds-page #ai_services .price-input-wrapper { flex: 1; }
  .ds-page #ai_services .price-input-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--c-gold);
    margin-bottom: 6px;
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.18em;
  }
  .ds-page #ai_services .price-input {
    width: 100%;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid var(--c-line);
    border-radius: 0;
    font-size: 14px;
    font-weight: 400;
    font-family: 'Inter', sans-serif;
    background: transparent;
    color: var(--c-deep);
    transition: border-color 0.25s ease;
  }
  .ds-page #ai_services .price-input:hover { border-bottom-color: var(--c-deep); }
  .ds-page #ai_services .price-input:focus {
    outline: none;
    border-bottom-color: var(--c-gold);
    box-shadow: none;
  }
  .ds-page #ai_services .price-separator {
    color: var(--c-line);
    margin-bottom: 10px;
    font-weight: 400;
    font-size: 14px;
  }

  /* Active filters */
  .ds-page #ai_services .active-filters {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--c-line);
  }
  .ds-page #ai_services .active-filters-title {
    font-size: 10px;
    font-weight: 600;
    color: var(--c-gold);
    text-transform: uppercase;
    letter-spacing: 0.22em;
    margin-bottom: 14px;
  }
  .ds-page #ai_services .filter-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .ds-page #ai_services .filter-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    color: var(--c-gold);
    padding: 5px 10px;
    border-radius: 0;
    font-size: 11px;
    font-weight: 600;
    border: 1px solid var(--c-gold);
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }
  .ds-page #ai_services .filter-tag-remove {
    cursor: pointer;
    color: var(--c-gold);
    font-size: 10px;
    transition: opacity 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    border-radius: 0;
    background: transparent;
  }
  .ds-page #ai_services .filter-tag-remove:hover { opacity: 0.6; }

  /* Mobile filter toggle */
  .ds-page #ai_services .mobile-filter-toggle {
    display: none;
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 1000;
    background: var(--c-deep);
    color: var(--c-cream);
    border: 1px solid var(--c-deep);
    width: 56px;
    height: 56px;
    border-radius: 0;
    box-shadow: 0 4px 16px rgba(22, 25, 34, 0.25);
    cursor: pointer;
    font-size: 18px;
    transition: background 0.25s ease, color 0.25s ease;
  }
  .ds-page #ai_services .mobile-filter-toggle:hover {
    background: var(--c-gold);
    color: var(--c-deep);
    transform: none;
  }
  .ds-page #ai_services .mobile-filter-toggle .filter-count-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    background: var(--c-gold);
    color: var(--c-deep);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 0;
    min-width: 20px;
    letter-spacing: 0.05em;
  }

  /* ---------- SERVICES CONTENT ---------- */
  .ds-page #ai_services .services-content {
    flex: 1;
    min-width: 0;
  }

  .ds-page #ai_services .services-header {
    display: flex;
    justify-content: space-between;
    align-items: end;
    margin-bottom: 40px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--c-line);
  }

  .ds-page #ai_services .services-count {
    font-family: 'Instrument Serif', serif;
    font-style: italic;
    font-size: 17px;
    color: var(--c-deep);
  }
  .ds-page #ai_services .services-count strong {
    font-weight: 400;
    font-style: italic;
    color: var(--c-gold);
  }

  .ds-page #ai_services .sort-container {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .ds-page #ai_services .sort-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--c-gold);
    text-transform: uppercase;
    letter-spacing: 0.22em;
  }
  .ds-page #ai_services .sort-select {
    padding: 8px 32px 8px 12px;
    background: transparent;
    border: 1px solid var(--c-deep);
    border-radius: 0;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--c-deep);
    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23c89a3a' viewBox='0 0 20 20'%3E%3Cpath d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 18px;
  }
  .ds-page #ai_services .sort-select:hover {
    background-color: var(--c-deep);
    color: var(--c-cream);
  }
  .ds-page #ai_services .sort-select:focus {
    outline: none;
    border-color: var(--c-gold);
    box-shadow: none;
  }

  /* ---------- SERVICES GRID + CARDS ---------- */
  .ds-page #ai_services .services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 32px;
    margin-bottom: 48px;
  }

  .ds-page #ai_services .service-card {
    background: var(--c-paper);
    border: 1px solid var(--c-line);
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
    transition: border-color 0.3s ease, transform 0.3s ease;
    cursor: pointer;
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  .ds-page #ai_services .service-card:hover {
    transform: translateY(-3px);
    box-shadow: none;
    border-color: var(--c-gold);
  }

  .ds-page #ai_services .service-card-image {
    position: relative;
    aspect-ratio: 4 / 3;
    height: auto;
    background: var(--c-deep);
    overflow: hidden;
    border-bottom: 1px solid var(--c-line);
  }
  .ds-page #ai_services .service-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
  }
  .ds-page #ai_services .service-card-image img.active { opacity: 1; }

  .ds-page #ai_services .service-image-counter {
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: rgba(22, 25, 34, 0.78);
    color: var(--c-cream);
    padding: 4px 10px;
    border-radius: 0;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.16em;
    z-index: 2;
  }

  .ds-page #ai_services .service-placeholder-image {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--c-deep);
  }
  .ds-page #ai_services .service-placeholder-image i {
    font-size: 36px;
    color: var(--c-gold);
    opacity: 0.6;
  }

  .ds-page #ai_services .service-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    background: var(--c-cream);
    color: var(--c-gold);
    border: 1px solid var(--c-gold);
    padding: 4px 10px;
    border-radius: 0;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    z-index: 3;
  }
  .ds-page #ai_services .service-badge.popular {
    background: var(--c-gold);
    color: var(--c-deep);
    border-color: var(--c-gold);
  }
  .ds-page #ai_services .service-badge.new {
    background: var(--c-deep);
    color: var(--c-cream);
    border-color: var(--c-deep);
  }

  .ds-page #ai_services .service-card-content {
    padding: 24px 24px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
    background: var(--c-cream);
  }

  .ds-page #ai_services .service-card-title {
    font-family: 'Instrument Serif', serif !important;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.18;
    color: var(--c-deep);
    letter-spacing: -0.005em;
    margin-bottom: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(1.18em * 2);
  }

  .ds-page #ai_services .service-card-description {
    font-size: 14px;
    line-height: 1.6;
    color: var(--c-ink);
    margin-bottom: 20px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(1.6em * 2);
  }

  .ds-page #ai_services .service-card-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 16px;
    margin-top: auto;
    border-top: 1px solid var(--c-line);
    flex-wrap: wrap;
    gap: 12px;
  }

  .ds-page #ai_services .service-meta-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: var(--c-ink);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
  }
  .ds-page #ai_services .service-meta-item i {
    color: var(--c-gold);
    font-size: 12px;
  }
  .ds-page #ai_services .service-meta-item strong {
    color: var(--c-deep);
    font-weight: 600;
    font-family: 'Instrument Serif', serif;
    font-style: italic;
    text-transform: none;
    letter-spacing: 0;
    font-size: 17px;
  }

  .ds-page #ai_services .service-card-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--c-gold) !important;
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: opacity 0.25s ease, transform 0.25s ease;
  }
  .ds-page #ai_services .service-card-action:hover {
    color: var(--c-gold) !important;
    text-decoration: none !important;
    transform: translateX(4px);
  }
  .ds-page #ai_services .service-card-action i { font-size: 11px; }

  /* Loading & empty states */
  .ds-page #ai_services .loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 24px;
    text-align: center;
  }
  .ds-page #ai_services .loading-spinner {
    width: 36px;
    height: 36px;
    border: 2px solid var(--c-line);
    border-top-color: var(--c-gold);
    border-radius: 50%;
    animation: ai_services_spin 0.8s linear infinite;
    margin-bottom: 20px;
  }
  @keyframes ai_services_spin { to { transform: rotate(360deg); } }
  .ds-page #ai_services .loading-container p {
    color: var(--c-ink);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
  }

  .ds-page #ai_services .empty-state {
    text-align: center;
    padding: 80px 24px;
    border: 1px dashed var(--c-line);
  }
  .ds-page #ai_services .empty-state-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 24px;
    border: 1px solid var(--c-gold);
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .ds-page #ai_services .empty-state-icon i {
    font-size: 24px;
    color: var(--c-gold);
  }
  .ds-page #ai_services .empty-state-title {
    font-family: 'Instrument Serif', serif !important;
    font-style: italic;
    font-size: 28px;
    font-weight: 400;
    color: var(--c-deep);
    margin-bottom: 12px;
  }
  .ds-page #ai_services .empty-state-description {
    font-size: 15px;
    color: var(--c-ink);
    max-width: 380px;
    margin: 0 auto;
    line-height: 1.6;
  }

  /* Sidebar overlay (mobile) */
  .ds-page #ai_services .sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(22, 25, 34, 0.55);
    z-index: 1999;
  }
  .ds-page #ai_services .sidebar-overlay.open { display: block; }

  /* ---------- BOTTOM CTA (deep, last section) ---------- */
  .ds-page #ai_services .booking-cta-section {
    padding: 14vh 6vw 36vh;
    background: var(--c-deep);
    color: var(--c-cream);
    text-align: left;
    position: relative;
    overflow: hidden;
  }
  .ds-page #ai_services .booking-cta-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at top, rgba(200, 154, 58, 0.08) 0%, transparent 60%);
    pointer-events: none;
  }
  .ds-page #ai_services .cta-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 64px;
    align-items: end;
    border-bottom: 1px solid var(--c-line-light);
    padding-bottom: 48px;
  }
  .ds-page #ai_services .sv-cta-eyebrow {
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--c-gold);
    font-weight: 600;
    margin-bottom: 24px;
    display: inline-block;
  }
  .ds-page #ai_services .cta-title {
    font-family: 'Instrument Serif', serif !important;
    font-size: clamp(36px, 5vw, 64px);
    font-weight: 400;
    font-style: italic;
    line-height: 1.05;
    color: var(--c-cream);
    letter-spacing: -0.01em;
    margin: 0 0 20px;
  }
  .ds-page #ai_services .cta-title em {
    color: var(--c-gold);
  }
  .ds-page #ai_services .cta-description {
    font-family: 'Instrument Serif', serif;
    font-style: italic;
    font-size: 18px;
    line-height: 1.55;
    color: rgba(239, 234, 224, 0.7);
    margin: 0 0 32px;
  }
  .ds-page #ai_services .cta-buttons {
    display: flex;
    gap: 16px;
    justify-content: flex-end;
    flex-wrap: wrap;
  }
  .ds-page #ai_services .cta-buttons .btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 32px;
    background: var(--c-gold);
    color: var(--c-deep) !important;
    border: 1px solid var(--c-gold);
    border-radius: 0;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none !important;
    transition: background 0.25s ease, color 0.25s ease;
    cursor: pointer;
  }
  .ds-page #ai_services .cta-buttons .btn-primary:hover {
    background: transparent;
    color: var(--c-gold) !important;
    text-decoration: none !important;
    transform: none;
    box-shadow: none;
  }
  .ds-page #ai_services .cta-buttons .btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none !important;
    padding: 13px 32px;
    background: transparent;
    color: var(--c-cream) !important;
    border: 1px solid rgba(239, 234, 224, 0.4);
    border-radius: 0;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    transition: background 0.25s ease, color 0.25s ease;
    cursor: pointer;
  }
  .ds-page #ai_services .cta-buttons .btn-outline:hover {
    background: var(--c-cream);
    color: var(--c-deep) !important;
    border-color: var(--c-cream);
    text-decoration: none !important;
  }

  [x-cloak] { display: none !important; }

  /* ---------- Responsive ---------- */
  @media (max-width: 1024px) {
    .ds-page #ai_services .services-layout { flex-direction: column; }
    .ds-page #ai_services .filters-sidebar {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      max-width: 360px;
      height: 100vh;
      max-height: 100vh;
      transform: translateX(-100%);
      transition: transform 300ms ease;
      z-index: 2000;
      border-radius: 0;
      border-right: 1px solid var(--c-line);
    }
    .ds-page #ai_services .filters-sidebar.open { transform: translateX(0); }
    .ds-page #ai_services .mobile-filter-toggle {
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .ds-page #ai_services .services-grid {
      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
      gap: 24px;
    }
    .ds-page #ai_services .cta-content {
      grid-template-columns: 1fr;
      gap: 32px;
      align-items: start;
    }
    .ds-page #ai_services .cta-buttons { justify-content: flex-start; }
  }

  @media (max-width: 768px) {
    .ds-page #ai_services .services-hero-section {
      padding: 16vh 22px 12vh !important;
    }
    .ds-page #ai_services .services-hero-title {
      font-size: clamp(36px, 9vw, 56px);
    }
    .ds-page #ai_services .services-hero-subtitle {
      font-size: 16px;
    }
    .ds-page #ai_services .services-grid-section { padding: 10vh 0 12vh; }
    .ds-page #ai_services .services-main-container { padding: 0 22px; }
    .ds-page #ai_services .services-grid {
      grid-template-columns: 1fr;
      gap: 24px;
    }
    .ds-page #ai_services .services-header {
      flex-direction: column;
      align-items: flex-start;
      gap: 16px;
    }
    .ds-page #ai_services .sort-container {
      width: 100%;
      justify-content: space-between;
    }
    .ds-page #ai_services .booking-cta-section { padding: 10vh 22px 32vh; }
    .ds-page #ai_services .cta-buttons { flex-direction: column; align-items: stretch; }
    .ds-page #ai_services .cta-buttons .btn-primary,
    .ds-page #ai_services .cta-buttons .btn-outline {
      width: 100%;
      justify-content: center;
    }
    .ds-page #ai_services .filters-sidebar { max-width: 100%; }
  }

/* ---- Lone1 confirmation (/bookings/thank-you) ------------------------
 * The route is Runtime-owned, while the visual frame belongs to this theme.
 * Keep the receipt data and guest-management contract untouched and give the
 * full screen the same square cream/paper/deep/gold language as the builder. */
.page-booking-confirmation #main-content{
  min-height:calc(100vh - 80px);
  padding:clamp(10rem,18vh,13rem) 6vw max(28rem,46vh);
  background:var(--c-cream,#efeae0);
}
.booking-confirmation{
  display:grid;
  gap:clamp(1.5rem,3vw,2.25rem);
  box-sizing:border-box;
  width:100%;
  max-width:900px;
  margin:0 auto;
  padding:clamp(2rem,5vw,4.5rem);
  border:1px solid var(--c-line,rgba(22,25,34,.12));
  border-radius:0;
  background:var(--c-paper,#ece6db);
  box-shadow:none;
  color:var(--c-ink,#424346);
  font-family:'Inter',system-ui,sans-serif;
}
.booking-confirmation h1,
.booking-confirmation h2,
.booking-confirmation h3,
.booking-confirmation p{margin:0}
.booking-confirmation__check{
  display:flex;
  align-items:center;
  justify-content:center;
  width:68px;
  height:68px;
  margin:0 auto;
  border:1px solid var(--c-gold,#c89a3a);
  border-radius:0;
  background:var(--c-gold,#c89a3a);
  box-shadow:none;
  color:var(--c-deep,#161922);
}
.booking-confirmation__header,
.booking-confirmation__card,
.booking-confirmation__services,
.booking-confirmation__service,
.booking-confirmation__purchase,
.booking-confirmation__account{display:grid;gap:12px}
.booking-confirmation__header{text-align:center}
.booking-confirmation__eyebrow{
  display:block;
  color:var(--c-gold,#c89a3a);
  font-size:10px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.booking-confirmation__header h1{
  color:var(--c-deep,#161922);
  font-family:'Instrument Serif','Crimson Pro',Georgia,serif;
  font-size:clamp(44px,6vw,72px);
  font-style:italic;
  font-weight:400;
  letter-spacing:-.01em;
  line-height:1;
}
.booking-confirmation__header>p:not(.booking-confirmation__reference){
  color:var(--c-ink,#424346);
  font-family:'Instrument Serif','Crimson Pro',Georgia,serif;
  font-size:18px;
  font-style:italic;
  line-height:1.5;
}
.booking-confirmation__reference{
  display:inline-flex;
  align-items:center;
  align-self:center;
  justify-self:center;
  padding:11px 16px;
  border:1px solid var(--c-line,rgba(22,25,34,.12));
  border-radius:0;
  background:var(--c-cream,#efeae0);
  color:var(--c-deep,#161922);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:12px;
  letter-spacing:.06em;
}
.booking-confirmation .fb-receipt{display:none}
.booking-confirmation__card,
.booking-confirmation__purchase,
.booking-confirmation__account,
.booking-confirmation__occurrence{
  padding:clamp(1.25rem,3vw,2rem);
  border:1px solid var(--c-line,rgba(22,25,34,.12));
  border-radius:0;
  background:var(--c-cream,#efeae0);
}
.booking-confirmation__media{display:none}
.booking-confirmation__service h2,
.booking-confirmation__purchase h2,
.booking-confirmation__account h2,
.booking-confirmation__occurrence h3{
  color:var(--c-deep,#161922);
  font-family:'Instrument Serif','Crimson Pro',Georgia,serif;
  font-size:clamp(22px,2.5vw,28px);
  font-style:italic;
  font-weight:400;
  line-height:1.2;
}
.booking-confirmation__service h2 a{color:inherit;text-decoration:none}
.booking-confirmation__details{
  display:grid;
  grid-template-columns:minmax(8rem,.42fr) minmax(0,1fr);
  gap:0 20px;
  margin:0;
}
.booking-confirmation__details dt,
.booking-confirmation__details dd{
  padding:12px 0;
  border-top:1px solid var(--c-line,rgba(22,25,34,.12));
  font-size:13px;
  line-height:1.45;
}
.booking-confirmation__details dt{
  color:var(--c-gold,#c89a3a);
  font-size:9px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.booking-confirmation__details dd{
  margin:0;
  color:var(--c-deep,#161922);
  font-family:'Instrument Serif','Crimson Pro',Georgia,serif;
  font-size:17px;
  font-style:italic;
  font-weight:400;
  text-align:right;
  overflow-wrap:anywhere;
}
.booking-confirmation__details dt:first-of-type,
.booking-confirmation__details dt:first-of-type+dd{border-top:0}
.booking-confirmation__occurrences{display:grid;gap:12px;padding:0;margin:0;list-style:none}
.booking-confirmation__purchase-grid{display:grid;grid-template-columns:1fr;gap:12px}
.booking-confirmation__included{display:grid;gap:8px;padding:0;margin:0;list-style:none}
.booking-confirmation__included li{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:12px;
  border:1px solid var(--c-line,rgba(22,25,34,.12));
  border-radius:0;
  background:var(--c-paper,#ece6db);
  font-size:13px;
}
.booking-confirmation__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.booking-confirmation__actions a,
.booking-confirmation__actions button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  min-height:52px;
  padding:12px 16px;
  border:1px solid var(--c-deep,#161922);
  border-radius:0;
  background:transparent;
  color:var(--c-deep,#161922);
  font:700 10px/1.25 'Inter',system-ui,sans-serif;
  letter-spacing:.16em;
  text-align:center;
  text-decoration:none;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.booking-confirmation__actions a:hover,
.booking-confirmation__actions button:hover{
  border-color:var(--c-gold,#c89a3a);
  background:var(--c-gold,#c89a3a);
  color:var(--c-deep,#161922);
}
.booking-confirmation__actions [data-booking-join-meeting],
.booking-confirmation__actions a[href*="/account/appointments"],
.booking-confirmation__actions [data-fb-guest-manage]{
  border-color:var(--c-deep,#161922);
  background:var(--c-deep,#161922);
  color:var(--c-cream,#efeae0);
}
.booking-confirmation__actions a[href*="/account/appointments"]{order:-1}
.page-booking-confirmation .fb-receipt-actions{
  justify-content:center;
  padding-top:20px;
  border-top:1px solid var(--c-line,rgba(22,25,34,.12));
}
.page-booking-confirmation .fb-receipt-actions .fb-button{
  min-height:42px;
  padding:9px 14px;
  border-radius:0;
  border-color:var(--c-line,rgba(22,25,34,.12));
  color:var(--c-deep,#161922);
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.page-booking-confirmation .fb-receipt-actions [hidden]{display:none!important}
.page-booking-confirmation [data-fb-standalone]{max-width:900px;margin:24px auto 0}
@media (max-width:640px){
  .page-booking-confirmation #main-content{padding:8.5rem 18px max(24rem,44vh)}
  .booking-confirmation{padding:30px 20px}
  .booking-confirmation__header h1{font-size:42px}
  .booking-confirmation__card,
  .booking-confirmation__purchase,
  .booking-confirmation__account,
  .booking-confirmation__occurrence{padding:18px}
  .booking-confirmation__details{grid-template-columns:1fr}
  .booking-confirmation__details dt{padding-bottom:3px}
  .booking-confirmation__details dd{padding-top:3px;text-align:left}
  .booking-confirmation__details dt:first-of-type+dd{border-top:0}
  .booking-confirmation__actions{grid-template-columns:1fr}
  .booking-confirmation__actions a,
  .booking-confirmation__actions button{grid-column:1!important;width:100%}
}


/* ---- Visit builder (/bookings/build) ---------------------------------
 * The native V2 controller owns the live booking state. This visual layer is
 * ported from Lone1's reviewed V1 appointment surface: editorial hero, four-step
 * orientation, square paper panels, hairline fields, and deep/gold selection.
 * --------------------------------------------------------------------- */
.page-booking-build .fb-build{
  --fb-ink:var(--c-ink,#424346);
  --fb-muted:#716f6b;
  --fb-line:var(--c-line,rgba(22,25,34,.12));
  --fb-surface:var(--c-paper,#ece6db);
  --fb-surface-2:var(--c-cream,#efeae0);
  --fb-accent:var(--c-gold,#c89a3a);
  --fb-accent-strong:var(--brand-accent-dark,#a87e26);
  --fb-accent-soft:color-mix(in srgb,var(--c-gold,#c89a3a) 13%,transparent);
  --fb-accent-ink:var(--c-deep,#161922);
  --fb-danger:var(--c-error,#b9482b);
  --fb-radius:0px;
  --fb-radius-lg:0px;
  --fb-shadow-sm:none;
  --fb-shadow-md:0 18px 45px rgba(22,25,34,.14);
  --fb-heading:'Instrument Serif','Crimson Pro',Georgia,serif;
  display:block;
  max-width:none;
  margin:0;
  padding:0;
  background:var(--c-cream,#efeae0);
  color:var(--c-ink,#424346);
}
.page-booking-build .fb-build .fb{padding:0;gap:clamp(1.25rem,2.5vw,2rem)}

/* V1 editorial hero and progress rail. */
.fb-build__hero{
  margin-top:80px;
  padding:clamp(8rem,16vh,11rem) 6vw clamp(5rem,10vh,7rem);
  background:var(--c-deep,#161922);
  color:var(--c-cream,#efeae0);
}
.fb-build__hero-inner{max-width:1280px;margin:0 auto}
.fb-build__hero-copy{margin-bottom:clamp(4rem,9vh,7rem)}
.fb-build__hero-eyebrow{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0 0 28px}
.fb-build__hero-eyebrow span,
.fb-build__step-label{
  font-family:'Inter',system-ui,sans-serif;
  font-size:11px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.fb-build__hero-eyebrow span{color:var(--c-gold,#c89a3a)}
.fb-build__hero-eyebrow em{
  color:var(--c-gold,#c89a3a);
  font-family:'Instrument Serif','Crimson Pro',Georgia,serif;
  font-size:24px;
  font-weight:400;
  line-height:1.1;
}
.fb-build__hero h1{
  max-width:12ch;
  margin:0;
  color:var(--c-cream,#efeae0);
  font-family:'Instrument Serif','Crimson Pro',Georgia,serif;
  font-size:clamp(58px,8vw,104px);
  font-style:italic;
  font-weight:400;
  letter-spacing:-.01em;
  line-height:.96;
}
.fb-build__progress{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin:0;
  padding:40px 0 0;
  border-top:1px solid var(--c-line-light,rgba(239,234,224,.18));
  list-style:none;
}
.fb-build__progress li{display:grid;gap:14px;padding:0 28px;border-left:1px solid var(--c-line-light,rgba(239,234,224,.18))}
.fb-build__progress li:first-child{padding-left:0;border-left:0}
.fb-build__step-num{
  color:rgba(239,234,224,.25);
  font-family:'Instrument Serif','Crimson Pro',Georgia,serif;
  font-size:44px;
  font-style:italic;
  line-height:1;
}
.fb-build__step-label{color:rgba(239,234,224,.42)}
.fb-build__progress li.is-active .fb-build__step-num{color:var(--c-gold,#c89a3a)}
.fb-build__progress li.is-active .fb-build__step-label{color:var(--c-cream,#efeae0)}

/* The footer arch can rise 30vh and the footer itself has an 8vh negative
 * margin. This protected runway keeps both shapes behind empty cream, never
 * over a picker, payment field, action, or policy acknowledgement. */
.fb-build__shell{max-width:1280px;margin:0 auto;padding:clamp(4.5rem,9vh,7rem) 6vw max(24rem,42vh)}
.fb-build__head{margin:0 0 clamp(2rem,5vh,3.5rem);max-width:760px}
.fb-build__eyebrow{margin:0 0 14px;color:var(--c-gold,#c89a3a);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.fb-build__title{margin:0 0 16px;color:var(--c-deep,#161922);font-family:'Instrument Serif','Crimson Pro',Georgia,serif;font-size:clamp(42px,5vw,68px);font-style:italic;font-weight:400;letter-spacing:-.01em;line-height:1}
.fb-build__intro{margin:0;max-width:58ch;color:var(--c-ink,#424346);font-size:15px;line-height:1.65}

/* Paper panels and labels follow V1's square, editorial treatment. */
.page-booking-build .fb-panel{gap:1rem;padding:clamp(1.5rem,3vw,2.25rem);border:1px solid var(--fb-line);border-radius:0;background:var(--fb-surface);box-shadow:none}
.page-booking-build .fb-panel__title,
.page-booking-build .fb-sumcard__title,
.page-booking-build .fb-build__empty h2{
  color:var(--c-deep,#161922);
  font-family:'Instrument Serif','Crimson Pro',Georgia,serif;
  font-size:clamp(25px,2.5vw,32px);
  font-style:italic;
  font-weight:400;
  letter-spacing:-.005em;
  line-height:1.1;
}
.page-booking-build .fb-panel__num{width:32px;height:32px;border:1px solid var(--c-gold,#c89a3a);border-radius:0;background:transparent;color:var(--c-gold,#c89a3a)}
.page-booking-build .fb-panel__num .fb-icon{color:currentColor}
.page-booking-build .fb-panel__hint{color:var(--fb-muted);font-size:13px;line-height:1.6}
.fb-build__bar{margin-bottom:clamp(1.5rem,4vh,3rem)}
.fb-build__bar-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:10px}
.fb-build__field{display:grid;gap:9px;min-width:0}
.fb-build__field-label,
.page-booking-build .fb-field>span{
  color:var(--c-gold,#c89a3a);
  font-size:10px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.fb-build__select,
.page-booking-build .fb-input,
.page-booking-build .fb-select{
  width:100%;
  min-height:54px;
  padding:13px 16px;
  border:1px solid var(--fb-line);
  border-radius:0;
  background:var(--c-cream,#efeae0);
  color:var(--c-deep,#161922);
  font:inherit;
  font-weight:500;
}
.fb-build__select:focus,
.page-booking-build .fb-input:focus{outline:2px solid var(--c-gold,#c89a3a);outline-offset:2px;box-shadow:none}
.fb-build__select:disabled{opacity:.52;cursor:not-allowed}

/* Empty frame mirrors the live layout, but carries the V1 placeholder style. */
.fb-build__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:360px;text-align:center}
.fb-build__empty-icon{display:grid;place-items:center;width:72px;height:72px;border:1px solid var(--c-gold,#c89a3a);color:var(--c-gold,#c89a3a)}
.fb-build__empty p{margin:0;max-width:44ch;color:var(--fb-muted);font-size:14px;line-height:1.6}
.fb-build__back{display:block;margin-top:16px;color:var(--c-deep,#161922);font-size:10px;font-weight:600;letter-spacing:.16em;text-align:center;text-decoration:none;text-transform:uppercase}
.fb-build__back:hover{color:var(--c-gold,#c89a3a)}

/* Selection controls and live calendar. */
.page-booking-build .fb-week{gap:8px}
.page-booking-build .fb-week__nav,
.page-booking-build .fb-week__day,
.page-booking-build .fb-slot{border-radius:0;background:var(--c-cream,#efeae0)}
.page-booking-build .fb-week__nav{width:46px;min-height:66px}
.page-booking-build .fb-week__days{gap:7px}
.page-booking-build .fb-week__day{min-height:66px}
.page-booking-build .fb-week__dow,
.page-booking-build .fb-slot-group__label,
.page-booking-build .fb-sumcard__row dt{
  color:var(--c-gold,#c89a3a);
  font-size:9px;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.page-booking-build .fb-week__date{font-family:'Instrument Serif','Crimson Pro',Georgia,serif;font-size:22px;font-weight:400}
.page-booking-build .fb-week__day.is-active,
.page-booking-build .fb-slot[data-fb-selected="true"]{border-color:var(--c-deep,#161922);background:var(--c-deep,#161922);color:var(--c-gold,#c89a3a);box-shadow:none}
.page-booking-build .fb-week__day.is-active .fb-week__dow{color:var(--c-gold,#c89a3a)}
.page-booking-build .fb-slot{min-height:48px;font-weight:600}
.page-booking-build .fb-slot:hover,
.page-booking-build .fb-week__day:hover:not(:disabled),
.page-booking-build .fb-week__nav:hover{border-color:var(--c-gold,#c89a3a);color:var(--c-gold,#c89a3a)}

/* Summary, price, customer and action rail. */
.page-booking-build .fb__aside{gap:18px}
.page-booking-build .fb-sumcard__rows{gap:12px}
.page-booking-build .fb-sumcard__row{padding-bottom:12px;border-bottom:1px solid var(--fb-line)}
.page-booking-build .fb-sumcard__row:last-child{padding:14px 0 0;border-bottom:0}
.page-booking-build .fb-sumcard__row dd{color:var(--c-deep,#161922);font-family:'Instrument Serif','Crimson Pro',Georgia,serif;font-size:17px;font-style:italic;font-weight:400}
.page-booking-build .fb-sumcard__row--total dd{color:var(--c-gold,#c89a3a);font-size:28px}
.page-booking-build .fb-pricing__row{font-size:13px}
.fb-build__policy-list{display:grid;gap:0;margin:0}
.fb-build__policy-list>div{display:grid;gap:6px;padding:14px 0;border-bottom:1px solid var(--fb-line)}
.fb-build__policy-list>div:first-child{padding-top:4px}
.fb-build__policy-list>div:last-child{padding-bottom:0;border-bottom:0}
.fb-build__policy-list dt{color:var(--c-gold,#c89a3a);font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.fb-build__policy-list dd{margin:0;color:var(--c-deep,#161922);font-family:'Instrument Serif','Crimson Pro',Georgia,serif;font-size:18px;font-style:italic;line-height:1.3}
.page-booking-build .fb-contact{gap:18px}
.page-booking-build .fb-contact__grid{gap:14px}
.page-booking-build .fb-coupon{gap:10px}
.page-booking-build .fb-button{
  min-height:52px;
  border-radius:0;
  border-color:var(--c-gold,#c89a3a);
  background:var(--c-gold,#c89a3a);
  color:var(--c-deep,#161922);
  box-shadow:none;
  font-size:10px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.page-booking-build .fb-button:hover{background:transparent;color:var(--c-deep,#161922)}
.page-booking-build .fb-button--ghost{border-color:var(--c-deep,#161922);background:transparent;color:var(--c-deep,#161922)}
.page-booking-build .fb-button--ghost:hover{border-color:var(--c-deep,#161922);background:var(--c-deep,#161922);color:var(--c-cream,#efeae0)}
.page-booking-build .fb-nav__primary{width:100%}
.page-booking-build [data-fb-payment-panel][data-fb-locked] .fb-pay{opacity:.55;filter:none}
.page-booking-build .fb-pay__locked-hint{color:var(--fb-muted);font-family:'Instrument Serif','Crimson Pro',Georgia,serif;font-size:16px;font-style:italic}
.page-booking-build .fb-option,
.page-booking-build .fb-settlement__option,
.page-booking-build .fb-member-contact{border-radius:0;background:var(--c-cream,#efeae0);box-shadow:none}

/* The service chain lives inside the selection panel. */
.fb-build__bar .fb-chain{margin:0;padding:0;border:0;background:transparent;box-shadow:none;gap:.7rem}
.fb-build__bar .fb-chain__head{display:none}
.fb-build__bar .fb-chain__rows:empty{display:none}

/* Styled dropdown painted over the native select (which stays for no-JS). */
.fb-select{position:relative}
.fb-select__native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.fb-select__trigger{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 14px;border:1px solid var(--fb-line);border-radius:0;background:var(--c-cream,#efeae0);color:var(--c-deep,#161922);font:inherit;text-align:left;cursor:pointer}
.fb-select__trigger:hover{border-color:var(--c-gold,#c89a3a)}
.fb-select.is-open .fb-select__trigger{border-color:var(--c-gold,#c89a3a);box-shadow:0 0 0 2px var(--fb-accent-soft)}
.fb-select__thumb{flex:none;width:36px;height:36px;border-radius:0;overflow:hidden;background:var(--c-paper,#ece6db)}
.fb-select__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.fb-select__value{display:grid;gap:2px;min-width:0;flex:1}
.fb-select__value-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fb-select__value-meta{font-size:12px;color:var(--fb-muted)}
.fb-select__caret{flex:none;color:var(--c-gold,#c89a3a);display:flex}
.fb-select.is-open .fb-select__caret{transform:rotate(180deg)}
.fb-select__menu{position:absolute;z-index:40;top:calc(100% + 6px);left:0;right:0;max-height:320px;overflow:auto;padding:6px;border:1px solid var(--c-gold,#c89a3a);border-radius:0;background:var(--c-paper,#ece6db);box-shadow:var(--fb-shadow-md)}
.fb-select__option{display:flex;align-items:center;gap:12px;width:100%;padding:10px;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.fb-select__option:hover{background:var(--c-cream,#efeae0)}
.fb-select__option-body{display:grid;gap:2px;min-width:0}
.fb-select__option-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fb-select__option-meta{font-size:12px;color:var(--fb-muted)}
.fb-select__thumb--text{display:flex;align-items:center;justify-content:center;border-radius:0;border:1px solid var(--c-gold,#c89a3a);background:transparent;color:var(--c-gold,#c89a3a);font-size:.72rem;font-weight:800;letter-spacing:.02em}
.fb-build__bar .fb-chain-row__dd{position:relative}
.fb-build__bar .fb-chain-row__dd .fb-dd__panel{inset-inline:auto 0;min-width:15rem;width:max-content;max-width:min(20rem,80vw)}
.fb-build__bar .fb-chain-row__dd .fb-dd__option{white-space:nowrap}

@media (max-width:968px){
  .fb-build__hero{padding-top:clamp(7rem,14vh,9rem)}
  .fb-build__progress{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:34px}
  .fb-build__progress li:nth-child(3){padding-left:0;border-left:0}
  .fb-build__shell{padding-inline:5vw}
}
@media (min-width:969px) and (max-width:1199px){
  .page-booking-build .fb-build__layout{grid-template-columns:minmax(0,1fr)}
  .page-booking-build .fb-build__layout>.fb__aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .page-booking-build .fb-build__layout>.fb__aside>[data-fb-payment-panel],
  .page-booking-build .fb-build__layout>.fb__aside>.fb-nav-panel,
  .page-booking-build .fb-build__layout>.fb__aside>.fb-build__back{grid-column:1/-1}
}
@media (max-width:720px){
  .fb-build__hero{margin-top:66px;padding:84px 20px 64px}
  .fb-build__hero-copy{margin-bottom:56px}
  .fb-build__hero h1{font-size:clamp(48px,15vw,68px)}
  .fb-build__progress{grid-template-columns:1fr;gap:0;padding-top:24px}
  .fb-build__progress li,
  .fb-build__progress li:nth-child(3){grid-template-columns:44px 1fr;align-items:center;gap:14px;padding:14px 0;border-left:0;border-bottom:1px solid var(--c-line-light,rgba(239,234,224,.18))}
  .fb-build__progress li:last-child{border-bottom:0}
  .fb-build__step-num{font-size:34px}
  .fb-build__shell{padding:64px 20px max(22rem,42vh)}
  .fb-build__head{margin-bottom:38px}
  .fb-build__bar-grid{grid-template-columns:minmax(0,1fr)}
  .page-booking-build .fb-panel{padding:22px 18px}
  .fb-build__empty{min-height:260px}
  .page-booking-build .fb-week{gap:4px}
  .page-booking-build .fb-week__nav{width:34px;min-height:58px}
  .page-booking-build .fb-week__days{gap:3px}
  .page-booking-build .fb-week__day{min-height:58px;padding:7px 1px}
  .page-booking-build .fb-week__dow{font-size:7px;letter-spacing:.08em}
  .page-booking-build .fb-week__date{font-size:17px}
}



/* Lone1 presentation; canonical Booking controllers and component states stay intact. */
.ds-page .fb,.ds-page .fb-manage,.ds-page .fb-plans,.ds-page .fb-unavailable,.ds-page .booking-catalog{
  --fb-ink:var(--c-ink,#424346);--fb-muted:#716f6b;--fb-line:var(--c-line,rgba(22,25,34,.12));
  --fb-surface:var(--c-paper,#ece6db);--fb-surface-2:var(--c-cream,#efeae0);
  --fb-accent:var(--c-gold,#c89a3a);--fb-accent-strong:#a87e26;--fb-accent-soft:#f5e8c9;--fb-accent-ink:var(--c-deep,#161922);
  --fb-radius:0px;--fb-radius-lg:0px;--fb-shadow-sm:none;--fb-heading:'Instrument Serif','Crimson Pro',Georgia,serif;
  --color-primary:var(--c-gold,#c89a3a);--color-primary-dark:#a87e26;--color-primary-light:#f5e8c9;
  --color-border:var(--c-line,rgba(22,25,34,.12));--color-surface:var(--c-paper,#ece6db);--color-background-muted:var(--c-cream,#efeae0);
  --color-text:var(--c-deep,#161922);--color-text-muted:#716f6b;
}
.ds-page .fb,.ds-page .fb-plans,.ds-page .fb-manage,.ds-page .fb-unavailable{padding-top:130px;padding-bottom:max(24rem,42vh)}
.ds-page .fb.fb-build{padding:0;max-width:none}
.ds-page .fb-media__frame img{object-fit:contain}
.ds-page .fb .fb-unavailable{padding:2rem}
.ds-page .fb h1,.ds-page .fb-plans h1{font-family:'Instrument Serif','Crimson Pro',Georgia,serif;font-weight:400;font-style:italic}
.ds-page .fb__layout{align-items:start}
.ds-page .fb-panel,.ds-page .fb-option,.ds-page .fb-input,.ds-page .fb-button{border-radius:0}
.ds-page .fb-button{background:var(--c-deep,#161922);color:var(--c-cream,#efeae0);border-color:var(--c-deep,#161922)}
.ds-page .fb-button--ghost{background:transparent;color:var(--c-deep,#161922)}
.page-booking-services .booking-catalog{font-family:Inter,system-ui,sans-serif}
.page-booking-services .booking-catalog__views button,.page-booking-services .booking-catalog__filters,.page-booking-services .booking-catalog input,.page-booking-services .booking-catalog select,.page-booking-services .booking-catalog__card{border-radius:0}
.page-booking-services .booking-catalog__views button[aria-pressed="true"]{background:var(--c-deep,#161922);color:var(--c-cream,#efeae0);border-color:var(--c-deep,#161922)}
.page-booking-services .booking-catalog__body{padding:28px;gap:16px}
.page-booking-services .booking-catalog__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.page-booking-services .booking-catalog__card:only-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1fr)}
.page-booking-services .booking-catalog__card:only-child .booking-catalog__media{aspect-ratio:auto;min-height:300px}
.page-booking-services .booking-catalog__card:only-child .booking-catalog__body{align-content:center}
.page-booking-services .booking-catalog__body h2{font:400 2rem/1.15 'Instrument Serif','Crimson Pro',Georgia,serif}
.page-booking-services .booking-catalog__action{padding:14px 20px;background:var(--c-deep,#161922);color:var(--c-cream,#efeae0);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.page-booking-services .booking-catalog__filters label{font-size:14px;font-weight:500}
.page-booking-services .booking-catalog__filters input,.page-booking-services .booking-catalog__filters select{width:100%;min-width:0}
.page-booking-services .booking-catalog__media{background:var(--c-cream,#efeae0)}
@media(max-width:600px){.page-booking-services .booking-catalog__grid,.page-booking-services .booking-catalog__card:only-child{grid-template-columns:minmax(0,1fr)}.page-booking-services .booking-catalog__card:only-child .booking-catalog__media{aspect-ratio:4/3;min-height:0}.page-booking-services .booking-catalog__media img{object-position:center 20%}.page-booking-services .booking-catalog__body{padding:22px}.page-booking-services .booking-catalog__views{gap:8px}.page-booking-services .booking-catalog__views button{padding:10px 12px;font-size:13px}}
