/* ============================================================
   PUBLIC SITE — landing, services, products, about, contact
   Využívá stejné glass tokeny jako admin
   ============================================================ */

/* ---------- Page wrapper ---------- */
.pub {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Scroll-padding pro fixed pub-nav — target sekce bude hned pod nav.
   POZOR: scroll-padding-top + scroll-margin-top se sčítají → použij JEN jedno. */
html { scroll-padding-top: 94px; scroll-behavior: smooth; }
@media (max-width: 640px) { html { scroll-padding-top: 80px; } }
/* scroll-margin na sekcích NULL aby nedošlo ke dvojnásobnému offsetu */
section[id] { scroll-margin-top: 0; }

/* Kontakt: jediný glass box se 4 infem (adresa, telefon, email, hodiny).
   Override legacy .contact-grid (2-column) aby box byl full width. */
#kontakt .contact-grid {
  display: block !important;
  grid-template-columns: none !important;
  gap: 0 !important;
  width: 100%;
  margin-top: 32px !important;
}
#kontakt .contact-info-single {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px;
  padding: 32px 28px !important;
  margin: 0 !important;
  width: 100%;
}
#kontakt .contact-info-item {
  text-align: center;
  padding: 8px;
}
#kontakt .contact-info-item .contact-icon {
  font-size: 32px;
  margin-bottom: 12px;
}
#kontakt .contact-info-item h3 {
  font: 600 15px var(--font-display);
  color: var(--ink-900);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
#kontakt .contact-info-item p {
  color: var(--ink-700);
  font: 500 14px/1.5 var(--font-text);
  margin: 0;
}
@media (max-width: 900px) {
  #kontakt .contact-info-single { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  #kontakt .contact-info-single { grid-template-columns: 1fr; }
}

/* Objednat section — vylepšený form layout */
#objednat .contact-form-wrapper {
  padding: 36px 40px !important;
  margin: 24px auto 0 !important;
  max-width: 960px;
  background: var(--glass-tint-lighter);
  border: 1px solid var(--glass-border);
  border-radius: 28px;
  box-shadow: var(--glass-shadow-md), var(--glass-inner-glow);
}
@media (max-width: 640px) { #objednat .contact-form-wrapper { padding: 20px !important; } }

/* Form fields — viditelný caret (kurzor myši/textu) a lepší styling */
#objednat .gfield,
#objednat input,
#objednat select,
#objednat textarea {
  caret-color: var(--amber-600) !important;
  color: var(--ink-900) !important;
  background: rgba(255, 253, 247, 0.75) !important;
  border: 1.5px solid rgba(122, 61, 16, 0.18) !important;
  border-radius: 14px !important;
  padding: 14px 16px !important;
  font: 500 15px var(--font-text) !important;
  width: 100%;
  transition: all var(--dur-fast);
}
#objednat .gfield:focus,
#objednat input:focus,
#objednat select:focus,
#objednat textarea:focus {
  border-color: var(--amber-500) !important;
  background: #fffdf8 !important;
  box-shadow: 0 0 0 4px rgba(237, 138, 16, 0.18) !important;
  outline: none;
}
#objednat label {
  display: block;
  font: 600 13px var(--font-text);
  color: var(--ink-800);
  margin-bottom: 8px;
  letter-spacing: -0.005em;
}
#objednat .form-row,
#objednat .contact-form .form-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
  align-items: start;
  position: static !important;
}
@media (max-width: 640px) {
  #objednat .form-row,
  #objednat .contact-form .form-row {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  /* Naléhavost (select) menší výška aby bylo jasné oddělení od termínu */
  #objednat #urgency {
    height: 44px !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
  }
  #objednat .form-row > .form-group + .form-group {
    margin-top: 4px;
  }
}
#objednat .form-group {
  margin-bottom: 18px;
  position: static !important;
}
#objednat .form-group > label {
  position: static !important;
}

/* Services checklist — karty místo řádků */
#objednat .services-checklist {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  max-height: 320px;
  overflow-y: auto;
  padding: 14px;
  background: rgba(255, 248, 236, 0.5);
  border: 1px solid rgba(122, 61, 16, 0.12);
  border-radius: 16px;
}
#objednat .services-checklist .checkbox-label {
  padding: 12px 14px;
  background: rgba(255, 253, 247, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 12px;
  cursor: pointer;
  transition: all var(--dur-fast);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
#objednat .services-checklist .checkbox-label:hover {
  background: rgba(255, 236, 203, 0.6);
  border-color: var(--amber-300);
}
#objednat .services-checklist input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--amber-600);
  cursor: pointer;
  border-radius: 4px !important;
  padding: 0 !important;
}
#objednat .services-checklist .service-quantity {
  width: 70px !important;
  padding: 6px 8px !important;
  text-align: center;
  border-radius: 8px !important;
  font-weight: 600 !important;
}

/* Submit button full width, prominent */
#objednat button[type="submit"] {
  width: 100%;
  height: 56px;
  margin-top: 8px;
  font-size: 16px !important;
}

/* Estimated price card — highlighted gold */
#objednat .estimated-price {
  margin-top: 20px;
  padding: 22px 28px;
  background: linear-gradient(180deg, rgba(255, 236, 203, 0.85), rgba(253, 219, 154, 0.55));
  border: 1px solid rgba(237, 138, 16, 0.3);
  border-radius: 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 8px 22px rgba(237, 138, 16, 0.18);
}
#objednat .estimated-price h4 {
  margin: 0;
  font: 600 14px var(--font-text);
  color: var(--amber-800);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
#objednat .estimated-price .price {
  font: 700 32px var(--font-display);
  color: var(--amber-800);
  letter-spacing: -0.02em;
  margin-left: auto;
}
#objednat .estimated-price small {
  flex-basis: 100%;
  color: var(--ink-600);
  font-size: 12px;
  margin-top: 4px;
}

/* GDPR checkbox row */
#objednat .checkbox-group {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: rgba(255, 248, 236, 0.4);
  border-radius: 12px;
}
#objednat .checkbox-group input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin-top: 2px;
  accent-color: var(--amber-600);
  border-radius: 4px !important;
  padding: 0 !important;
}
#objednat .checkbox-group label {
  margin: 0;
  font-size: 13px;
  color: var(--ink-700);
  line-height: 1.45;
}

/* Mobile pub-nav — hamburger dropdown solid (nepruhledné) menu. */
@media (max-width: 1024px) {
  .pub-nav-links {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    left: 0; right: 0;
    flex-direction: column;
    gap: 6px;
    padding: 18px;
    background: #fff8ec;
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    box-shadow: 0 20px 50px rgba(60, 30, 10, 0.22), 0 4px 12px rgba(60, 30, 10, 0.10);
    margin-left: 0 !important;
  }
  .pub-nav-links .pub-nav-link {
    padding: 14px 18px !important;
    font-size: 16px !important;
    color: var(--ink-900) !important;
    background: rgba(255, 236, 203, 0.35) !important;
    border-radius: 14px !important;
    text-decoration: none;
    display: block;
  }
  .pub-nav-links .pub-nav-link.is-active,
  .pub-nav-links .pub-nav-link:hover {
    background: linear-gradient(180deg, rgba(255,236,203,0.9), rgba(253,219,154,0.6)) !important;
    color: var(--amber-800) !important;
  }
  .pub-nav-links.active,
  .pub-nav-links.is-open { display: flex !important; }
  /* CTA hned za hamburgerem (bez auto margin), hamburger absorb volný prostor */
  .pub-nav-cta { margin-left: 0 !important; gap: 8px; }

  /* Hamburger SVG button — výraznější, blíže k cta */
  .mobile-menu-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px !important; height: 44px !important;
    padding: 0 !important;
    border: 1px solid var(--glass-border) !important;
    background: rgba(255, 236, 203, 0.4) !important;
    color: var(--amber-800) !important;
    cursor: pointer;
    margin-left: auto !important;
    margin-right: 8px;
    border-radius: 14px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
  }
  .mobile-menu-btn:hover { background: rgba(253, 219, 154, 0.7) !important; }
  .mobile-menu-btn > svg {
    display: block !important;
    width: 28px !important; height: 28px !important;
    stroke: currentColor !important;
    stroke-width: 2.6 !important;
  }
  .mobile-menu-btn.active > svg { transform: rotate(90deg); transition: transform var(--dur-med); }
}
@media (min-width: 1025px) {
  .mobile-menu-btn { display: none !important; }
}

/* PC: centrované max-width 1320px s rozumným paddingem (design Liquid Glass).
   Mobile: edge-to-edge (full display width, žádný margin). */
@media (min-width: 1025px) {
  .services, .legislation, .schedule, .pricing, .contact, .orders {
    max-width: 1320px !important;
    margin: 32px auto !important;
    padding: 56px 40px !important;
    width: calc(100% - 32px);
  }
  main > .pub-hero,
  main > section.pub-hero,
  body main .pub-hero {
    max-width: 1320px !important;
    margin-top: 12px !important;
    margin-bottom: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 64px 48px 48px !important;
    width: calc(100% - 32px) !important;
    display: block !important;
  }
  /* Container uvnitř sekce → žádný extra padding (grids rozstrkat podle glass boxu) */
  .services > .container,
  .legislation > .container,
  .schedule > .container,
  .pricing > .container,
  .contact > .container,
  .orders > .container { max-width: none !important; padding: 0 !important; }
  /* Kontakt — single box plná šířka se 4 sloupci */
  #kontakt .contact-info-single {
    grid-template-columns: repeat(4, 1fr) !important;
    padding: 32px 28px !important;
  }
  /* Services — adaptivní auto-fill (3-4+ podle místa) */
  .services .services-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)) !important;
    gap: 20px !important;
  }
  /* Legislativa + Termíny — zamčeno na 3 sloupce na PC */
  .legislation .legislation-grid,
  .schedule .schedule-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px !important;
  }
}
@media (max-width: 1024px) {
  .services, .legislation, .schedule, .pricing, .contact, .orders {
    max-width: calc(100vw - 12px) !important;
    padding: 28px 14px !important;
    margin-top: 10px !important;
    margin-bottom: 10px !important;
    margin-left: 6px !important;
    margin-right: 6px !important;
    border-radius: 24px !important;
    width: auto !important;
    box-sizing: border-box;
  }
  .services > .container,
  .legislation > .container,
  .schedule > .container,
  .pricing > .container,
  .contact > .container,
  .orders > .container { max-width: none !important; padding: 0 !important; }
  /* Pub-hero mobile: full-width s rovnoměrným margin od obou krajů */
  .pub-hero {
    max-width: calc(100vw - 12px) !important;
    padding: 40px 16px 28px !important;
    margin-top: 10px !important;
    margin-left: 6px !important;
    margin-right: 6px !important;
    margin-bottom: 0 !important;
    border-radius: 24px !important;
    width: auto !important;
    box-sizing: border-box;
  }
  .pub-hero h1 { font-size: clamp(28px, 8vw, 44px) !important; }
  .pub-hero-sub { font-size: 15px !important; }
  .pub-hero-trust { padding: 16px 12px !important; gap: 16px !important; }
  .pub-hero-trust-item .num { font-size: 22px !important; }
  .pub-hero-trust-item .lbl { font-size: 10px !important; }
  /* Hero CTA buttons side-by-side + auto width (jako PC), ne full width */
  .pub-hero-ctas {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    justify-content: center;
    width: auto !important;
  }
  .pub-hero-ctas .gbtn,
  .pub-hero-ctas .gbtn-lg {
    width: auto !important;
    flex: 0 0 auto !important;
    padding: 0 18px !important;
    height: 46px !important;
    font-size: 14px !important;
  }
}

/* =========== SERVICE DETAIL PAGES — sjednocený glass styling =========== */
.service-hero {
  padding: 40px 20px 32px !important;
  text-align: center;
  max-width: 1320px;
  margin: 20px auto 0 !important;
  background: var(--glass-tint-light);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid var(--glass-border);
  border-radius: 32px !important;
  box-shadow: var(--glass-shadow-md), var(--glass-inner-glow);
  isolation: isolate;
}
.service-hero h1 {
  font-family: "Clash Display", "General Sans", -apple-system, sans-serif !important;
  font-weight: 600 !important;
  font-size: clamp(28px, 5vw, 52px) !important;
  letter-spacing: -0.025em !important;
  line-height: 1.05 !important;
  background: linear-gradient(180deg, #241a12 0%, #3a2c20 40%, #7a3d10 80%, #a5530a 100%);
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 2px 6px rgba(74,37,8,0.25));
}
.service-hero p { color: var(--ink-600) !important; max-width: 620px; margin: 16px auto 0 !important; font-size: 17px !important; line-height: 1.5 !important; }
.service-breadcrumb { color: var(--ink-500); font-size: 13px; }
.service-breadcrumb a { color: var(--amber-700); text-decoration: none; }
.service-icon-large i {
  font-size: 64px !important;
  color: var(--amber-600) !important;
  filter: drop-shadow(0 6px 16px rgba(237,138,16,0.35));
}
.service-details, .service-content-grid {
  max-width: 1320px;
  margin: 24px auto !important;
  padding: 40px 24px !important;
  background: var(--glass-tint-lighter);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid var(--glass-border);
  border-radius: 32px;
  box-shadow: var(--glass-shadow-md), var(--glass-inner-glow);
}
.service-type-card, .service-info-card {
  background: var(--glass-tint-light) !important;
  border: 1px solid var(--glass-border-inner) !important;
  border-radius: 22px !important;
  padding: 24px !important;
  backdrop-filter: blur(18px);
  box-shadow: var(--glass-shadow-sm), var(--glass-inner-glow);
}

/* Service detail mobile — edge-to-edge glass wrappers */
@media (max-width: 991px) {
  .service-hero {
    max-width: calc(100vw - 12px) !important;
    margin: 8px 6px 0 !important;
    padding: 28px 14px 20px !important;
    border-radius: 24px !important;
  }
  .service-details, .service-content-grid {
    max-width: calc(100vw - 12px) !important;
    margin: 10px 6px !important;
    padding: 24px 14px !important;
    border-radius: 24px !important;
    grid-template-columns: 1fr !important;
    display: block !important;
  }
  .service-sidebar { margin-top: 20px; }
  .service-hero h1 { font-size: clamp(26px, 7vw, 36px) !important; }
  .service-main-content h2 { font-size: 22px !important; }
  .service-main-content h3 { font-size: 17px !important; }
}

/* Minimal nav (service detail) — jen logo + zpět button, bez hamburgeru */
.pub-nav.pub-nav-minimal {
  justify-content: space-between;
}
.pub-nav.pub-nav-minimal .mobile-menu-btn,
.pub-nav.pub-nav-minimal .pub-nav-links,
.pub-nav.pub-nav-minimal .pub-nav-cta {
  display: none !important;
}

/* =========== ADMIN — sjednocený glass layout napříč všemi stránkami =========== */
/* Main content má rounded glass cards uvnitř (jako public sekce) */
@media (min-width: 992px) {
  .admin-main {
    background: transparent !important;
    padding: 20px 20px 20px 12px !important;
    margin-left: 240px !important;
  }
  .admin-header {
    border-radius: 20px !important;
    margin-bottom: 16px !important;
  }
  /* Content wrappers — zaoblení jako public sekce */
  .admin-content,
  .admin-main > .container,
  .admin-main > section {
    border-radius: 24px !important;
  }
  /* Dashboard section / stats-grid / activity / charts — glass card */
  .dashboard-section,
  .stats-section,
  .activity-section,
  .recent-orders-section,
  .charts-section,
  .orders-section,
  .table-container,
  .filters-section,
  .settings-section {
    background: var(--glass-tint-lighter);
    backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
    -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    box-shadow: var(--glass-shadow-sm), var(--glass-inner-glow);
    padding: 24px;
    margin-bottom: 20px;
  }
}

/* Admin sidebar — zaoblené + floating */
@media (min-width: 992px) {
  .admin-sidebar {
    left: 12px !important;
    top: 12px !important;
    height: calc(100vh - 24px) !important;
    border-radius: 24px !important;
    overflow: hidden;
  }
  .admin-main { margin-left: 272px !important; }
}

/* Mobile admin — sidebar off-canvas, toggle funkcí, overlay */
@media (max-width: 991px) {
  .admin-sidebar {
    transform: translateX(-100%) !important;
    transition: transform 0.3s ease !important;
    left: 0 !important;
    top: 0 !important;
    right: auto !important;
    width: 280px !important;
    max-width: 85vw !important;
    height: 100vh !important;
    border-radius: 0 24px 24px 0;
  }
  .admin-sidebar.active,
  .admin-sidebar.open { transform: translateX(0) !important; }
  .admin-main {
    margin-left: 0 !important;
    padding: 12px !important;
  }
  .sidebar-overlay.active {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 998;
  }
}

/* Jemná průhlednost ikon */
.service-icon, .pub-service-icon, .contact-icon i, i.fas, i.fa {
  opacity: 0.92;
  transition: opacity var(--dur-fast), transform var(--dur-fast);
}
.service-card:hover .service-icon,
.pub-service:hover .pub-service-icon { opacity: 1; transform: scale(1.05); }

/* ---------- NAVBAR ---------- */
/* PC: centrované max-width 1320px. Mobile: edge-to-edge. */
.pub-nav {
  position: fixed;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 90;
  max-width: 1320px;
  width: calc(100% - 24px);
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 12px 16px 12px 24px;
  border-radius: 999px;
}
@media (max-width: 1024px) {
  .pub-nav {
    left: 0;
    transform: none;
    width: calc(100% - 16px);
    margin: 0 8px;
    max-width: none;
    gap: 8px !important;
    padding: 8px 10px !important;
  }
  .pub-nav-logo { font-size: 16px !important; flex-shrink: 1; min-width: 0; }
  .pub-nav-logo .mark { width: 36px !important; height: 36px !important; }
  .pub-nav-logo small { display: none !important; }
  .pub-nav-cta .gbtn { padding: 0 14px !important; height: 36px !important; font-size: 13px !important; }
  /* Na malých telefonech zobrazit jen Objednat (Přihlásit je v hamburger dropdown) */
  @media (max-width: 480px) {
    .pub-nav-cta .gbtn-ghost { display: none !important; }
  }
}

/* GLOBAL: zakázat horizontální scroll na mobile */
html, body { overflow-x: clip; max-width: 100vw; }

/* Tablet + mobile: 2 ikony vedle sebe pro služby/legislativa/termíny */
@media (max-width: 1024px) and (min-width: 481px) {
  .services-grid,
  .legislation-grid,
  .schedule-grid,
  .pricing-container {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
}
/* Small phones (<480px): 2 kolony pokud šířka dovolí, jinak 1 */
@media (max-width: 480px) {
  .services-grid,
  .legislation-grid,
  .schedule-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
  .service-card, .legislation-card, .schedule-card {
    padding: 18px 12px !important;
  }
  .service-card h3, .legislation-card h3, .schedule-card h3 {
    font-size: 15px !important;
  }
  .service-card p, .legislation-card p, .schedule-card p {
    font-size: 12.5px !important;
  }
  /* Pricing v tabulce zůstává 1 column (je to text-heavy) */
  .pricing-container { grid-template-columns: 1fr !important; }
}
/* Spacer pod fixed navbar — minimum aby hero nezačínal pod navem */
body { padding-top: 86px; }
@media (max-width: 640px) { body { padding-top: 78px; } }
.pub-nav-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--ink-900);
  font: 700 19px/1 var(--font-display);
  letter-spacing: -0.02em;
}
.pub-nav-logo .mark {
  filter: drop-shadow(0 6px 14px rgba(237,138,16,0.35));
}
.pub-nav-logo small {
  display: block;
  font: 500 10px/1 var(--font-text);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-500);
  margin-top: 3px;
}
.pub-nav-links {
  display: flex;
  gap: 4px;
  margin-left: auto;
}
.pub-nav-link {
  padding: 10px 16px;
  border-radius: 999px;
  border: 0;
  background: transparent;
  color: var(--ink-700);
  font: 600 14px var(--font-text);
  cursor: pointer;
  transition: all var(--dur-fast);
  white-space: nowrap;
}
.pub-nav-link:hover { background: rgba(255,253,247,0.6); color: var(--ink-900); }
.pub-nav-link.is-active {
  background: linear-gradient(180deg, rgba(255,236,203,0.9), rgba(253,219,154,0.5));
  color: var(--amber-800);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.9);
}
.pub-nav-cta {
  display: flex;
  gap: 8px;
}

@media (max-width: 1024px) {
  .pub-nav-links { display: none; }
}

/* ---------- HERO ---------- */
.pub-hero {
  position: relative;
  padding: 80px 32px 56px;
  text-align: center;
  max-width: none;
  margin: 24px 12px 0 !important;
  /* Liquid Glass obal celé hero sekce */
  background: var(--glass-tint-light);
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border);
  border-radius: 32px;
  box-shadow: var(--glass-shadow-md), var(--glass-inner-glow);
  isolation: isolate;
  overflow: hidden;
}
.pub-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--glass-highlight);
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: 0.9;
  z-index: 0;
}
.pub-hero > * { position: relative; z-index: 1; }
.pub-hero > .hero-background { z-index: 0; }
.pub-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 18px;
  border-radius: 999px;
  font: 600 12px var(--font-text);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--amber-800);
  margin-bottom: 24px;
}
.pub-hero-eyebrow .dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--amber-500);
  box-shadow: 0 0 0 3px rgba(237,138,16,0.25);
  animation: pulse 2s ease-in-out infinite;
}
.pub-hero h1 {
  font-family: "Clash Display", "General Sans", "Satoshi", -apple-system, sans-serif;
  font-weight: 600;
  font-size: clamp(32px, 4.8vw, 58px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  margin: 0 auto;
  max-width: 20ch;
  /* Jemný ember gradient — tmavý uhel → žhavý amber */
  background: linear-gradient(180deg,
    #241a12 0%,
    #3a2c20 40%,
    #7a3d10 80%,
    #a5530a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  /* Subtle ember glow */
  filter:
    drop-shadow(0 2px 6px rgba(74, 37, 8, 0.25))
    drop-shadow(0 0 24px rgba(237, 138, 16, 0.15));
  position: relative;
}
@media (max-width: 640px) {
  .pub-hero h1 { font-size: clamp(26px, 7vw, 40px); max-width: 14ch; }
}
.pub-hero h1 .accent {
  background: linear-gradient(180deg, #f5a62a 0%, #b66a08 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  position: relative;
}
.pub-hero-sub {
  max-width: 620px;
  margin: 24px auto 0;
  font-size: 19px;
  line-height: 1.5;
  color: var(--ink-600);
}
.pub-hero-ctas {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 36px;
  flex-wrap: wrap;
}
.pub-hero-trust {
  display: flex;
  gap: 48px;
  justify-content: center;
  margin-top: 56px;
  flex-wrap: wrap;
  padding: 24px 40px;
  border-radius: 24px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.pub-hero-trust-item {
  text-align: center;
}
.pub-hero-trust-item .num {
  font: 700 32px/1 var(--font-display);
  letter-spacing: -0.02em;
  background: linear-gradient(180deg, #f5a62a, #b66a08);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.pub-hero-trust-item .lbl {
  font: 500 12px/1.4 var(--font-text);
  color: var(--ink-500);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 6px;
}

/* Orbital glass icons around hero */
.pub-hero-orbit {
  position: absolute;
  pointer-events: none;
  filter: drop-shadow(0 12px 28px rgba(237,138,16,0.25));
  animation: float 6s ease-in-out infinite;
}
.pub-hero-orbit.o1 { top: 70px; left: 4%; animation-delay: 0s; }
.pub-hero-orbit.o2 { top: 140px; right: 6%; animation-delay: -2s; }
.pub-hero-orbit.o3 { top: 340px; left: 10%; animation-delay: -4s; }
.pub-hero-orbit.o4 { top: 300px; right: 12%; animation-delay: -3s; }
@keyframes float {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50%     { transform: translateY(-12px) rotate(3deg); }
}
@media (max-width: 900px) { .pub-hero-orbit { display: none; } }

/* ---------- SECTION FRAME ---------- */
.pub-section {
  padding: 80px 32px;
  max-width: 1280px;
  margin: 0 auto;
}

/* Obal existujících sekcí v index.php do Liquid Glass karty.
   Vyšší specificity (main >) aby přepsala legacy styles.css rules s backgroundem. */
main > .services,
main > .legislation,
main > .schedule,
main > .pricing,
main > .contact,
main > .orders,
main > section.services,
main > section.legislation,
main > section.schedule,
main > section.pricing,
main > section.contact,
main > section.orders {
  position: relative;
  max-width: 1320px;
  margin: 24px auto !important;
  padding: 48px 40px !important;
  background: var(--glass-tint-light) !important;
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation)) !important;
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation)) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: 32px !important;
  box-shadow: var(--glass-shadow-md), var(--glass-inner-glow) !important;
  isolation: isolate;
  width: calc(100% - 32px);
}
.services::after, .legislation::after, .schedule::after,
.pricing::after, .contact::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--glass-highlight);
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: 0.9;
  z-index: 0;
}
.services > *, .legislation > *, .schedule > *,
.pricing > *, .contact > * { position: relative; z-index: 1; }

/* Služby / ostatní grid karty jako individuální glass */
.service-card, .schedule-card, .pricing-card, .legislation-card, .info-card {
  position: relative;
  background: var(--glass-tint-lighter) !important;
  backdrop-filter: blur(18px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(160%) !important;
  border: 1px solid var(--glass-border-inner) !important;
  border-radius: 24px !important;
  box-shadow: var(--glass-shadow-sm), var(--glass-inner-glow) !important;
  transition: transform var(--dur-med) var(--ease-glass), box-shadow var(--dur-med) var(--ease-glass);
}
.service-card:hover, .schedule-card:hover, .pricing-card:hover,
.legislation-card:hover, .info-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--glass-shadow-lg), var(--glass-inner-glow) !important;
}

/* Footer Liquid Glass */
footer, .footer {
  position: relative;
  margin: 32px 16px 16px !important;
  padding: 40px 32px !important;
  background: var(--glass-tint-lighter);
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border);
  border-radius: 28px;
  box-shadow: var(--glass-shadow-md), var(--glass-inner-glow);
}
.pub-section-head {
  text-align: center;
  margin-bottom: 48px;
}
.pub-section-head .eyebrow {
  color: var(--amber-700);
  font-weight: 700;
}
.pub-section-head h2 {
  font: 700 clamp(30px, 3.5vw, 48px)/1.1 var(--font-display);
  letter-spacing: -0.025em;
  margin: 12px 0 14px;
  color: var(--ink-900);
  max-width: 22ch;
  margin-left: auto;
  margin-right: auto;
}
.pub-section-head p {
  max-width: 580px;
  margin: 0 auto;
  color: var(--ink-600);
  font-size: 17px;
  line-height: 1.55;
}

/* ---------- SERVICES ---------- */
.pub-services {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 1024px) { .pub-services { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .pub-services { grid-template-columns: 1fr; } }

.pub-service {
  padding: 32px;
  border-radius: 28px;
  position: relative;
  overflow: hidden;
  transition: transform var(--dur-med) var(--ease-glass);
  opacity: 1 !important;
  animation: none !important;
}
.pub-why-item { opacity: 1 !important; animation: none !important; }
.pub-why-visual { opacity: 1 !important; min-height: 520px; }
.pub-service:hover { transform: translateY(-4px); }
.pub-service-icon {
  margin-bottom: 20px;
  filter: drop-shadow(0 8px 20px rgba(237,138,16,0.3));
}
.pub-service h3 {
  font: 700 22px/1.2 var(--font-display);
  letter-spacing: -0.015em;
  color: var(--ink-900);
  margin: 0 0 10px;
}
.pub-service p {
  color: var(--ink-600);
  font-size: 14.5px;
  line-height: 1.55;
  margin: 0 0 16px;
}
.pub-service ul {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pub-service li {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 14px;
  color: var(--ink-700);
}
.pub-service li::before {
  content: "";
  width: 16px; height: 16px;
  background: linear-gradient(180deg, #ffc975, #ed8a10);
  border-radius: 5px;
  flex-shrink: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
  position: relative;
}
.pub-service-price {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgba(122,61,16,0.08);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.pub-service-price .from {
  font: 500 11px var(--font-text);
  color: var(--ink-500);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.pub-service-price .num {
  font: 700 22px var(--font-display);
  color: var(--amber-800);
}

/* ---------- WHY US ---------- */
.pub-why {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 48px;
  align-items: center;
}
@media (max-width: 900px) { .pub-why { grid-template-columns: 1fr; } }
.pub-why-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pub-why-item {
  display: flex;
  gap: 20px;
  padding: 20px 24px;
  border-radius: 22px;
}
.pub-why-item .n {
  flex-shrink: 0;
  width: 44px; height: 44px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(180deg, #ffc975, #ed8a10);
  color: #3a1d00;
  font: 700 18px var(--font-display);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6), 0 6px 14px rgba(237,138,16,0.3);
}
.pub-why-item h4 {
  font: 700 17px var(--font-display);
  color: var(--ink-900);
  margin: 0 0 4px;
}
.pub-why-item p {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-600);
  margin: 0;
}

.pub-why-visual {
  position: relative;
  min-height: 520px;
  border-radius: 32px;
  padding: 32px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(255, 201, 117, 0.55), transparent 55%),
    radial-gradient(ellipse at 70% 80%, rgba(237, 138, 16, 0.4), transparent 60%),
    linear-gradient(135deg, #fff8ec, #fddb9a 40%, #f7a538 100%);
  border: 1px solid rgba(255,255,255,0.6);
  box-shadow: 0 12px 40px rgba(237, 138, 16, 0.2), inset 0 1px 0 rgba(255,255,255,0.7);
}
.pub-why-visual::before { display: none; }
.pub-why-visual > * { position: relative; z-index: 1; }
.pub-why-medal {
  position: absolute;
  top: 32px; left: 32px;
  padding: 10px 16px;
  background: rgba(255, 253, 247, 0.5);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.7);
  border-radius: 999px;
  font: 600 12px var(--font-text);
  color: var(--amber-800);
  letter-spacing: 0.04em;
  z-index: 2;
}
.pub-why-quote {
  padding: 24px;
  background: rgba(255, 253, 247, 0.55);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.7);
  border-radius: 22px;
}
.pub-why-quote blockquote {
  margin: 0 0 16px;
  font: 500 16px/1.5 var(--font-display);
  color: var(--ink-800);
}
.pub-why-quote cite {
  font: 600 13px var(--font-text);
  color: var(--amber-800);
  font-style: normal;
}
.pub-why-quote cite small {
  display: block;
  font-weight: 500;
  color: var(--ink-500);
  margin-top: 2px;
}

/* ---------- PRODUCTS ---------- */
.pub-products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 1024px) { .pub-products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .pub-products { grid-template-columns: 1fr; } }
.pub-product {
  padding: 24px 22px;
  border-radius: 24px;
  text-align: center;
  transition: transform var(--dur-med) var(--ease-glass);
  cursor: pointer;
}
.pub-product:hover { transform: translateY(-3px) scale(1.01); }
.pub-product .illo {
  aspect-ratio: 1;
  margin: -8px auto 16px;
  background:
    radial-gradient(ellipse at 40% 30%, rgba(255,255,255,0.8), transparent 60%),
    linear-gradient(135deg, rgba(255,236,203,0.7), rgba(253,219,154,0.35));
  border-radius: 18px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,0.6);
  max-width: 160px;
}
.pub-product h4 {
  font: 700 16px/1.2 var(--font-display);
  color: var(--ink-900);
  margin: 0 0 4px;
}
.pub-product p {
  font: 500 12px var(--font-text);
  color: var(--ink-500);
  margin: 0 0 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.pub-product .price {
  font: 700 15px var(--font-display);
  color: var(--amber-800);
}

/* ---------- REFERENCES / LOGO STRIP ---------- */
.pub-refs {
  padding: 24px 32px;
  border-radius: 24px;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  align-items: center;
}
@media (max-width: 900px) { .pub-refs { grid-template-columns: repeat(3, 1fr); } }
.pub-ref {
  padding: 18px 12px;
  text-align: center;
  font: 700 15px/1.1 var(--font-display);
  letter-spacing: -0.01em;
  color: var(--ink-500);
  border-right: 1px solid rgba(122,61,16,0.08);
  transition: color var(--dur-fast);
  cursor: default;
}
.pub-ref:last-child { border-right: 0; }
.pub-ref:hover { color: var(--amber-800); }
.pub-ref small {
  display: block;
  font: 500 10px var(--font-text);
  letter-spacing: 0.08em;
  color: var(--ink-400);
  margin-top: 4px;
  text-transform: uppercase;
}

/* ---------- PROCESS ---------- */
.pub-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  position: relative;
}
@media (max-width: 900px) { .pub-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .pub-steps { grid-template-columns: 1fr; } }
.pub-step {
  padding: 28px 24px;
  border-radius: 22px;
  position: relative;
}
.pub-step .step-n {
  font: 700 48px/1 var(--font-display);
  background: linear-gradient(180deg, #f7a538, #a5530a);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  opacity: 0.6;
  margin-bottom: 8px;
}
.pub-step h4 {
  font: 700 18px var(--font-display);
  color: var(--ink-900);
  margin: 0 0 8px;
}
.pub-step p {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-600);
  margin: 0;
}

/* ---------- FAQ ---------- */
.pub-faq {
  max-width: 780px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pub-faq-item {
  padding: 20px 24px;
  border-radius: 18px;
  cursor: pointer;
  transition: background var(--dur-fast);
}
.pub-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font: 600 16px var(--font-display);
  color: var(--ink-900);
  cursor: pointer;
  list-style: none;
}
.pub-faq-item summary::-webkit-details-marker { display: none; }
.pub-faq-item summary .chev {
  width: 28px; height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(180deg, #ffc975, #ed8a10);
  color: #3a1d00;
  font-weight: 800;
  transition: transform var(--dur-med);
  flex-shrink: 0;
  margin-left: 12px;
}
.pub-faq-item[open] summary .chev { transform: rotate(45deg); }
.pub-faq-item p {
  margin: 14px 0 0;
  color: var(--ink-600);
  font-size: 14.5px;
  line-height: 1.6;
}

/* ---------- CONTACT / CTA BAND ---------- */
.pub-contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
@media (max-width: 900px) { .pub-contact { grid-template-columns: 1fr; } }
.pub-contact-card {
  padding: 40px 36px;
  border-radius: 28px;
}
.pub-contact-card h3 {
  font: 700 28px/1.15 var(--font-display);
  letter-spacing: -0.02em;
  color: var(--ink-900);
  margin: 0 0 12px;
}
.pub-contact-card > p {
  color: var(--ink-600);
  font-size: 15px;
  line-height: 1.55;
  margin: 0 0 24px;
}
.pub-contact-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  margin-bottom: 10px;
}
.pub-contact-row .ico {
  width: 44px; height: 44px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(135deg, #ffecca, #fcc166);
  color: var(--amber-800);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
  flex-shrink: 0;
}
.pub-contact-row .lbl {
  font: 500 11px var(--font-text);
  color: var(--ink-500);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.pub-contact-row .val {
  font: 600 16px var(--font-display);
  color: var(--ink-900);
  margin-top: 2px;
}

/* ---------- FOOTER ---------- */
.pub-footer {
  margin-top: 80px;
  padding: 56px 32px 32px;
  background: linear-gradient(180deg, transparent, rgba(74, 37, 8, 0.04));
}
.pub-footer-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
}
@media (max-width: 800px) {
  .pub-footer-inner { grid-template-columns: 1fr 1fr; }
}
.pub-footer-col h5 {
  font: 700 12px var(--font-text);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--amber-700);
  margin: 0 0 16px;
}
.pub-footer-col a {
  display: block;
  color: var(--ink-700);
  font: 500 14px var(--font-text);
  text-decoration: none;
  padding: 5px 0;
  transition: color var(--dur-fast);
  cursor: pointer;
}
.pub-footer-col a:hover { color: var(--amber-800); }
.pub-footer-brand p {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-600);
  margin: 12px 0 16px;
  max-width: 300px;
}
.pub-footer-bar {
  max-width: 1280px;
  margin: 40px auto 0;
  padding: 20px 0 0;
  border-top: 1px solid rgba(122,61,16,0.08);
  display: flex;
  justify-content: space-between;
  font: 500 12px var(--font-text);
  color: var(--ink-500);
  flex-wrap: wrap;
  gap: 12px;
}

/* ---------- FORM ---------- */
.pub-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 14px;
}
.pub-form .span2 { grid-column: span 2; }
.pub-form-field label {
  display: block;
  font: 600 11px var(--font-text);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-600);
  margin-bottom: 6px;
}
.pub-form-field input,
.pub-form-field select,
.pub-form-field textarea {
  width: 100%;
  padding: 12px 14px;
  background: rgba(255,253,247,0.6);
  border: 1px solid rgba(255,255,255,0.7);
  border-radius: 14px;
  font: 500 15px var(--font-text);
  color: var(--ink-900);
  backdrop-filter: blur(8px);
  transition: all var(--dur-fast);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.5);
}
.pub-form-field textarea { min-height: 100px; resize: vertical; }
.pub-form-field input:focus,
.pub-form-field select:focus,
.pub-form-field textarea:focus {
  outline: none;
  border-color: var(--amber-400);
  box-shadow: 0 0 0 3px rgba(237,138,16,0.15), inset 0 1px 0 rgba(255,255,255,0.5);
}

/* ---------- SERVICE DETAIL / SUBPAGE ---------- */
.pub-subpage-hero {
  max-width: 1280px;
  margin: 40px auto 0;
  padding: 64px 32px 32px;
}
.pub-subpage-hero h1 {
  font: 700 clamp(32px, 4.5vw, 60px)/1.05 var(--font-display);
  letter-spacing: -0.025em;
  color: var(--ink-900);
  margin: 16px 0 14px;
  max-width: 18ch;
}
.pub-subpage-hero p {
  max-width: 560px;
  color: var(--ink-600);
  font-size: 17px;
  line-height: 1.55;
  margin: 0 0 24px;
}

/* ---------- BLOG ---------- */
.pub-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 900px) { .pub-blog-grid { grid-template-columns: 1fr; } }
.pub-blog-card {
  padding: 0;
  border-radius: 24px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: transform var(--dur-med) var(--ease-glass);
}
.pub-blog-card:hover { transform: translateY(-3px); }
.pub-blog-thumb {
  aspect-ratio: 16/10;
  background:
    radial-gradient(ellipse at 30% 30%, rgba(255,201,117,0.6), transparent 60%),
    linear-gradient(135deg, #fff8ec, #fcc166);
  position: relative;
  display: grid;
  place-items: center;
}
.pub-blog-card:nth-child(2) .pub-blog-thumb {
  background:
    radial-gradient(ellipse at 70% 30%, rgba(255,190,160,0.5), transparent 60%),
    linear-gradient(135deg, #ffe0cc, #d9541a);
}
.pub-blog-card:nth-child(3) .pub-blog-thumb {
  background:
    radial-gradient(ellipse at 50% 70%, rgba(237,138,16,0.3), transparent 70%),
    linear-gradient(135deg, #fddb9a, #a5530a);
}
.pub-blog-body {
  padding: 24px 24px 28px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.pub-blog-body .tag {
  font: 600 10px var(--font-text);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--amber-700);
  margin-bottom: 8px;
}
.pub-blog-body h4 {
  font: 700 19px/1.25 var(--font-display);
  letter-spacing: -0.01em;
  color: var(--ink-900);
  margin: 0 0 10px;
}
.pub-blog-body p {
  color: var(--ink-600);
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 16px;
}
.pub-blog-body .meta {
  margin-top: auto;
  font: 500 12px var(--font-text);
  color: var(--ink-500);
}

/* ---------- TEAM ---------- */
.pub-team {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media (max-width: 900px) { .pub-team { grid-template-columns: repeat(2, 1fr); } }
.pub-team-card {
  padding: 24px 20px;
  border-radius: 22px;
  text-align: center;
}
.pub-team-avatar {
  width: 96px; height: 96px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ffecca, #fcc166);
  display: grid;
  place-items: center;
  color: var(--amber-800);
  font: 700 32px var(--font-display);
  letter-spacing: -0.02em;
  box-shadow: inset 0 2px 0 rgba(255,255,255,0.6), 0 8px 22px rgba(237,138,16,0.25);
  border: 2px solid rgba(255,255,255,0.7);
}
.pub-team-card h4 {
  font: 700 17px var(--font-display);
  color: var(--ink-900);
  margin: 0 0 4px;
}
.pub-team-card .role {
  font: 500 12px var(--font-text);
  color: var(--ink-500);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 10px;
}
.pub-team-card p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-600);
  margin: 0;
}

/* ---------- CALCULATOR CARD ---------- */
.pub-calc {
  max-width: 780px;
  margin: 0 auto;
  padding: 36px 40px;
  border-radius: 28px;
}
.pub-calc-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  border-top: 1px solid rgba(122,61,16,0.08);
}
.pub-calc-row:first-of-type { border-top: 0; padding-top: 0; }
.pub-calc-total {
  margin-top: 8px;
  padding: 18px 20px;
  background: linear-gradient(180deg, rgba(255,236,203,0.7), rgba(253,219,154,0.4));
  border-radius: 18px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.pub-calc-total .lbl {
  font: 600 14px var(--font-text);
  color: var(--ink-700);
}
.pub-calc-total .num {
  font: 700 28px var(--font-display);
  color: var(--amber-800);
}
