/*
Theme Name:   The London Escorts
Theme URI:    https://divalondonescort.com
Description:  Astra child theme for The London Escorts. A reference sheet for London: guides, areas and measured prices. No imagery.
Author:       The London Escorts
Template:     astra
Version:      2.0.0
Text Domain:  london-companion
*/

/* ==========================================================================
   The London Escorts, v2.

   One idea: the site is a reference document, not a brochure. Paper, ruled
   frames, lettered panels, monospace annotation, a single technical blue.
   No photographs, no textures, no images of any kind. Type and structure
   carry everything.

   Rewritten from scratch. The previous stylesheet had grown forty override
   blocks deep, each patching the last, which is why fixes kept breaking.
   Every rule here is written once, at the specificity it needs.
   ========================================================================== */

:root {
  --paper: #F5F6F8;
  --sheet: #FFFFFF;
  --ink: #15171C;
  --body: #33363D;
  --muted: #6E727B;
  --hair: #D5D7DC;
  --line: #E6E7EA;
  --grid: rgba(31, 78, 140, 0.055);

  --blue: #1F4E8C;
  --blue-ink: #163A6B;
  --blue-wash: #EDF2F9;
  --red: #B23A2E;
  --green: #2D6A47;

  --sans: 'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', monospace;

  --wrap: 1360px;
  --gutter: 28px;
}

/* ==========================================================================
   1. Astra reset
   Astra lays .ast-container out with flex. Our templates render their own
   blocks straight into it, so restore normal flow on every page we own.
   ========================================================================== */

body.lc-template #content > .ast-container,
body.lc-template .site-content > .ast-container {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.lc-template #primary,
body.lc-template .site-main,
body.lc-template .ast-article-single,
body.lc-template .ast-article-post {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  background: transparent !important;
}

body.lc-template #content { padding: 0 0 56px; }

/* Astra's own copyright row. The legal bar carries that line instead. */
.site-below-footer-wrap { display: none !important; }

/* ==========================================================================
   2. Base
   A plain white page. The structure comes from the rules, not the ground.
   ========================================================================== */

body,
body.ast-separate-container,
body.ast-plain-container,
body.ast-page-builder-template,
body.ast-narrow-container {
  /* The ground is the header and footer colour, so a phone's status bar and
     bottom toolbar, which take their colour from the page, read as part of
     the frame. The white is the content band below. */
  background-color: var(--ink);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.ast-separate-container .ast-article-single,
body.ast-separate-container .site-content > .ast-container { background: transparent; }

/* The white band between the header and the footer. */
#content,
.site-content { background-color: var(--sheet); }

.lc-wrap {
  display: block;
  width: 100%;
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 var(--gutter);
  box-sizing: border-box;
}

a { color: var(--blue); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--blue-ink); }

::selection { background: var(--blue); color: #fff; }

/* ==========================================================================
   3. Site header, dark like the footer
   ========================================================================== */

.site-header,
.ast-primary-header-bar,
.main-header-bar {
  background: var(--ink) !important;
  border-bottom: 0 !important;
}
/* The rule sits on the outer header only, or the nested bars stack it */
.site-header { border-bottom: 6px solid var(--blue) !important; }

.site-title a,
.site-title a:hover {
  font-family: var(--sans) !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em;
  color: #fff !important;
}

.main-header-menu .menu-link,
.ast-builder-menu .menu-item > .menu-link {
  font-family: var(--mono) !important;
  font-size: 14.5px !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #fff !important;
}
.main-header-menu .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link { color: #9DB8E0 !important; }

/* Narrow screens: Astra's menu panel and toggle follow the bar */
.ast-mobile-header-content,
.ast-header-break-point .main-header-bar-navigation { background: var(--ink) !important; }
.ast-header-break-point .main-header-menu,
.ast-header-break-point .main-header-menu .sub-menu,
.ast-header-break-point .main-header-menu .menu-item > .menu-link,
.ast-header-break-point .ast-menu-toggle { background: var(--ink) !important; }
.ast-header-break-point .main-header-menu .menu-item > .menu-link { border-bottom: 1px solid #2C2F36 !important; }
.ast-header-break-point .main-header-menu .menu-item > .menu-link:hover,
.ast-header-break-point .main-header-menu .current-menu-item > .menu-link { background: #20232A !important; }
.ast-header-break-point .ast-menu-toggle { color: #fff !important; }
.ast-button-wrap .menu-toggle,
.ast-mobile-menu-buttons .menu-toggle { color: #fff !important; }
.ast-button-wrap .menu-toggle .ast-mobile-svg,
.ast-mobile-menu-buttons .menu-toggle .ast-mobile-svg { fill: #fff !important; color: #fff !important; }

/* ==========================================================================
   4. Title block
   The hero is a drawing sheet's title block: document identity across the
   top, then the title. It replaces the dark band entirely.
   ========================================================================== */

/* The side padding is the same gutter the sheet uses, so the title block and
   the sheet below it share both edges at every width, not just on a wide
   screen. */
.lc-hero {
  background: transparent;
  color: var(--ink);
  padding: 34px var(--gutter) 0;
}

.lc-hero > .lc-wrap {
  background: var(--sheet);
  border: 2px solid var(--ink);
  border-top-width: 6px;
  padding: 0;
  max-width: calc(var(--wrap) - 2 * var(--gutter));
  box-sizing: border-box;
}

/* Breadcrumb becomes the top strip of the block */
.lc-hero .lc-crumbs {
  margin: 0;
  padding: 10px 22px;
  border-bottom: 1px solid var(--hair);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.lc-hero .lc-crumbs a { color: var(--muted); text-decoration: none; }
.lc-hero .lc-crumbs a:hover { color: var(--blue); }
.lc-hero .lc-crumbs span { color: var(--ink); }
.lc-hero .lc-crumbs .sep { margin: 0 8px; color: var(--hair); }

.lc-hero .lc-eyebrow,
.lc-hero .lc-eyebrow-bright {
  display: inline-block;
  margin: 26px 22px 0;
  padding: 3px 8px;
  background: var(--ink);
  color: #fff;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.lc-hero h1,
.lc-hero .entry-title {
  margin: 16px 22px 0;
  font-family: var(--sans);
  font-weight: 700;
  font-size: clamp(28px, 3.7vw, 48px);
  line-height: 1.06;
  letter-spacing: -0.025em;
  color: var(--ink);
  max-width: none;
  text-wrap: pretty;
}

.lc-hero .lc-hero-lede {
  margin: 16px 22px 26px;
  font-size: 18px;
  line-height: 1.55;
  color: var(--body);
  max-width: none;
}

/* ==========================================================================
   5. The sheet
   Every page's content sits on one ruled sheet, joined to the title block.
   ========================================================================== */

body.lc-template main.site-main { padding-top: 0 !important; }

body.lc-template .lc-prose {
  position: relative;
  background: var(--sheet);
  border: 2px solid var(--ink);
  border-top: 0;
  padding: 40px 44px 46px;
  margin: 0;
  box-sizing: border-box;
}

body.lc-template .lc-prose > :first-child { margin-top: 0; }

/* The hero owns the title, so a second one inside the sheet is suppressed */
body.lc-template .lc-prose > .entry-title { display: none; }

/* Running text */
body.lc-template .lc-prose h2 {
  font-family: var(--sans);
  font-weight: 700;
  font-size: clamp(22px, 2.6vw, 28px);
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 46px 0 14px;
  padding-top: 18px;
  border-top: 1px solid var(--ink);
}
body.lc-template .lc-prose h3 {
  font-family: var(--sans);
  font-weight: 600;
  font-size: 17px;
  color: var(--ink);
  margin: 28px 0 8px;
}
body.lc-template .lc-prose p { margin: 0 0 16px; color: var(--body); }
body.lc-template .lc-prose ul,
body.lc-template .lc-prose ol { margin: 0 0 18px; padding-left: 22px; color: var(--body); }
body.lc-template .lc-prose li { margin-bottom: 8px; }
body.lc-template .lc-prose strong { font-weight: 600; color: var(--ink); }

.lc-lede,
body.lc-template .lc-prose .lc-lede {
  font-size: 19px;
  line-height: 1.55;
  color: var(--ink);
  margin-bottom: 22px;
}

.lc-eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 10px;
}

.lc-crumbs {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.lc-crumbs a { color: var(--muted); text-decoration: none; }
.lc-crumbs .sep { margin: 0 6px; opacity: 0.5; }

.lc-hint { font-size: 13px; line-height: 1.5; color: var(--muted); }
.lc-centre { text-align: center; }

/* ==========================================================================
   6. Panels: cards, callouts, key facts
   ========================================================================== */

.lc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 0;
  margin: 24px 0;
  padding: 0;
  list-style: none;
  border-top: 1.5px solid var(--ink);
  border-left: 1.5px solid var(--ink);
}
body.lc-template .lc-prose .lc-grid > li { margin: 0; }

.lc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  height: 100%;
  padding: 20px 20px 22px;
  background: var(--sheet);
  border-right: 1.5px solid var(--ink);
  border-bottom: 1.5px solid var(--ink);
  text-decoration: none;
  box-sizing: border-box;
  transition: background-color 0.15s ease;
}
a.lc-card:hover { background: var(--blue-wash); }
a.lc-card:hover h3 { color: var(--blue); }

.lc-card .tag,
.lc-casting .tag {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue);
}
body.lc-template .lc-prose .lc-card h3 {
  margin: 0;
  font-family: var(--sans);
  font-weight: 600;
  font-size: 17px;
  line-height: 1.3;
  color: var(--ink);
}
body.lc-template .lc-prose .lc-card p {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--body);
}

/* Listing card specifics */
.lc-distance { display: flex; align-items: baseline; gap: 8px; margin: 0; }
.lc-distance b {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 30px;
  line-height: 1;
  color: var(--blue);
}
.lc-distance span {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
body.lc-template .lc-prose .lc-card .lc-name { font-size: 18px; }
.lc-card .lc-name a { color: var(--ink); text-decoration: none; }
.lc-where { font-family: var(--mono); font-size: 12px; color: var(--muted); }

.lc-nights { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.lc-nights i { height: 16px; border: 1px solid var(--hair); display: block; }
.lc-nights i.on { background: var(--blue); border-color: var(--blue); }
.lc-nights-note {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.lc-nights-note.all { color: var(--green); }

.lc-rule { height: 1px; background: var(--line); border: 0; margin: 4px 0; }
.lc-rate { display: flex; align-items: baseline; gap: 8px; margin: auto 0 0; }
.lc-rate b { font-family: var(--mono); font-weight: 500; font-size: 18px; color: var(--ink); }
.lc-rate span { font-family: var(--mono); font-size: 12px; color: var(--muted); }

.lc-callout {
  margin: 28px 0;
  padding: 18px 20px;
  background: var(--blue-wash);
  border: 1.5px solid var(--blue);
}
body.lc-template .lc-prose .lc-callout h3 { margin-top: 0; color: var(--blue-ink); }
body.lc-template .lc-prose .lc-callout > :last-child { margin-bottom: 0; }

/* Key facts: a spec table */
.lc-keyfacts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  margin: 26px 0;
  border-top: 1.5px solid var(--ink);
  border-left: 1.5px solid var(--ink);
}
.lc-keyfacts > div {
  padding: 12px 14px;
  border-right: 1.5px solid var(--ink);
  border-bottom: 1.5px solid var(--ink);
  background: var(--sheet);
  margin: 0;
}
.lc-keyfacts dt {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 4px;
}
.lc-keyfacts dd { margin: 0; font-size: 15px; font-weight: 500; color: var(--ink); }

/* ==========================================================================
   7. Controls
   ========================================================================== */

.lc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 22px;
  background: var(--ink);
  color: #fff !important;
  border: 0;
  border-radius: 0;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.lc-btn:hover { background: var(--blue); color: #fff !important; }
.lc-btn-block { width: 100%; }

.lc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0; padding: 0; list-style: none; }
body.lc-template .lc-prose .lc-chips li { margin: 0; }
.lc-chips a,
.lc-chips .lc-chip-static {
  display: inline-block;
  padding: 5px 10px;
  border: 1px solid var(--ink);
  background: var(--sheet);
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink);
  text-decoration: none;
}
.lc-chips a:hover { background: var(--ink); color: #fff; }
.lc-chips .lc-chip-static { border-style: dashed; color: var(--muted); border-color: var(--hair); }

/* ==========================================================================
   8. Trip planner
   ========================================================================== */

.lc-planner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0;
  margin: 0 22px 26px;
  border: 1.5px solid var(--ink);
  background: var(--sheet);
}
.lc-planner-field {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1 1 170px;
  border-right: 1px solid var(--hair);
}
.lc-planner-wide { flex: 1.6 1 230px; }
.lc-planner-go { flex: 0 0 auto; border-right: 0; }
.lc-planner label {
  padding: 8px 12px 0;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}
.lc-planner input,
.lc-planner select {
  min-height: 46px;
  padding: 0 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-family: var(--sans);
  font-size: 15px;
  color: var(--ink);
  width: 100%;
  box-sizing: border-box;
}
.lc-planner input:focus,
.lc-planner select:focus { outline: 2px solid var(--blue); outline-offset: -2px; }
.lc-planner .lc-btn { min-height: 62px; padding: 0 26px; }

.lc-trust {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--hair);
}
.lc-trust li {
  margin: 0;
  padding: 16px 22px 20px;
  border-right: 1px solid var(--hair);
}
.lc-trust li:last-child { border-right: 0; }
.lc-trust strong {
  display: block;
  margin-bottom: 4px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue);
}
.lc-trust span { font-size: 14px; line-height: 1.5; color: var(--body); }

.lc-stay-banner {
  margin: 0 0 22px;
  padding: 10px 14px;
  border: 1px solid var(--blue);
  background: var(--blue-wash);
  font-family: var(--mono);
  font-size: 12.5px;
  color: var(--blue-ink);
}

/* ==========================================================================
   9. Lists of places, read next
   ========================================================================== */

.lc-nearby {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  margin: 18px 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--ink);
}
body.lc-template .lc-prose .lc-nearby li { margin: 0; }
.lc-nearby a {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 4px;
  border-bottom: 1px solid var(--line);
  font-size: 14.5px;
  color: var(--ink);
  text-decoration: none;
}
.lc-nearby a:hover { color: var(--blue); background: var(--blue-wash); }
.lc-nearby .d { font-family: var(--mono); font-size: 12px; color: var(--muted); white-space: nowrap; }

.lc-readnext { margin: 44px 0 0; padding-top: 18px; border-top: 2px solid var(--ink); }
.lc-readnext .lc-eyebrow { margin-bottom: 14px; }
.lc-readnext ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0;
  border-left: 1px solid var(--line);
}
body.lc-template .lc-prose .lc-readnext li {
  margin: 0;
  padding: 4px 18px 6px;
  border-right: 1px solid var(--line);
}
.lc-readnext a { font-weight: 600; font-size: 15px; text-decoration: none; }
.lc-readnext a::after { content: " \2192"; }
.lc-readnext .why { display: block; margin-top: 4px; font-size: 13.5px; line-height: 1.45; color: var(--muted); }

/* ==========================================================================
   10. FAQ
   ========================================================================== */

.lc-faq { margin: 22px 0; border-top: 1.5px solid var(--ink); }
.lc-faq details { border-bottom: 1px solid var(--hair); }
.lc-faq summary {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 0;
  font-size: 16px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
}
.lc-faq summary::-webkit-details-marker { display: none; }
.lc-faq summary::before {
  content: "Q";
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ink);
  color: #fff;
  font-family: var(--mono);
  font-size: 11px;
}
.lc-faq summary::after { content: "+"; margin-left: auto; font-family: var(--mono); color: var(--muted); }
.lc-faq details[open] summary::after { content: "\2212"; }
.lc-faq details[open] summary { color: var(--blue); }
body.lc-template .lc-prose .lc-faq details > p { padding: 0 0 18px 36px; margin: 0; }

/* ==========================================================================
   11. Casting strip. The one inverted block on the page.
   ========================================================================== */

.lc-casting {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  margin: 34px 0;
  padding: 22px 24px;
  background: var(--ink);
  border: 2px solid var(--ink);
  text-decoration: none;
}
.lc-casting .grow { flex: 1 1 260px; }
.lc-casting .tag { color: #9DB8E0; }
body.lc-template .lc-prose .lc-casting h3 {
  margin: 4px 0 0;
  font-weight: 700;
  font-size: 21px;
  color: #fff;
}
body.lc-template .lc-prose .lc-casting p { margin: 4px 0 0; font-size: 14.5px; color: #C4C7CF; }
.lc-casting .pill {
  padding: 12px 20px;
  border: 1.5px solid #fff;
  color: #fff;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}
.lc-casting:hover .pill { background: #fff; color: var(--ink); }

/* ==========================================================================
   12. Datasheets
   White cards on the white page, in the same family as the stat tiles: a
   hairline border, a soft shadow, rounded corners and one blue accent.
   ========================================================================== */

.lc-sheet { position: relative; margin: 30px 0 38px; padding: 0; }

.lc-sheet-body { padding: 0; background: transparent; border: 0; }

.lc-sheet-head {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 16px;
  padding-bottom: 13px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--hair);
}
.lc-sheet-head::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 64px;
  height: 3px;
  background: var(--blue);
}
.lc-sheet-title { font-weight: 700; font-size: 20px; line-height: 1.25; letter-spacing: -0.01em; color: var(--ink); }
.lc-sheet-spec { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }

.lc-sheet-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.lc-panel-span-2 { grid-column: span 2; }
.lc-panel-span-3 { grid-column: span 3; }

.lc-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--hair);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(21, 23, 28, 0.05), 0 8px 22px rgba(21, 23, 28, 0.05);
}
.lc-panel-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  background: linear-gradient(180deg, #fff, var(--paper));
  border-bottom: 1px solid var(--line);
}
.lc-panel-letter {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: var(--blue);
  color: #fff;
  font-family: var(--mono);
  font-weight: 500;
  font-size: 12px;
}
body.lc-template .lc-prose .lc-panel-head h3 {
  margin: 0;
  padding: 0;
  border: 0;
  flex-grow: 1;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ink);
}
.lc-panel-note {
  flex-shrink: 0;
  padding: 2px 9px;
  border-radius: 999px;
  background: var(--blue-wash);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.02em;
  color: var(--blue-ink);
  white-space: nowrap;
}
.lc-panel-body { flex: 1 1 auto; min-width: 0; padding: 14px; font-size: 13.5px; overflow-x: auto; }
body.lc-template .lc-prose .lc-panel-body p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.6; }
body.lc-template .lc-prose .lc-panel-foot { margin: 12px 0 0; font-size: 12px; line-height: 1.5; color: var(--muted); }

.lc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.lc-table th, .lc-table td { padding: 7px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.lc-table thead th {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1.5px solid var(--ink);
}
.lc-table tbody th { font-weight: 400; }
.lc-table code { padding: 0; background: none; font-family: var(--mono); font-size: 12.5px; color: var(--ink); }

.lc-panel .lc-table { margin: 0; border: 0; background: none; font-size: 13.5px; }
.lc-panel .lc-table th, .lc-panel .lc-table td { padding: 10px 12px; border-top: 0; border-left: 0; border-right: 0; vertical-align: middle; }
.lc-panel .lc-table thead th { background: var(--paper); border-bottom: 1px solid var(--hair); font-weight: 500; }
.lc-panel .lc-table thead th:first-child { border-top-left-radius: 6px; }
.lc-panel .lc-table thead th:last-child { border-top-right-radius: 6px; }
.lc-panel .lc-table tbody tr:last-child th,
.lc-panel .lc-table tbody tr:last-child td { border-bottom: 0; }
.lc-panel .lc-table tbody tr:hover { background: var(--blue-wash); }
.lc-panel .lc-table td { color: var(--body); }
.lc-panel .lc-table code { font-weight: 500; }

.lc-status { white-space: nowrap; }
.lc-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 11px 2px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.55;
}
.lc-status-ok .lc-pill { background: #EAF4EE; color: var(--green); }
.lc-status-ask .lc-pill { background: #FBEEEC; color: var(--red); }

.lc-bars { list-style: none; margin: 0; padding: 0; }
body.lc-template .lc-prose .lc-bars li { margin: 0 0 12px; display: grid; gap: 4px; }
body.lc-template .lc-prose .lc-bars li:last-child { margin-bottom: 0; }
.lc-bar-label { font-size: 13px; color: var(--ink); }
.lc-bar-track { position: relative; height: 8px; overflow: hidden; background: var(--blue-wash); border: 0; border-radius: 999px; }
.lc-bar-fill { position: absolute; inset: 0 auto 0 0; background: linear-gradient(90deg, var(--blue-ink), var(--blue)); border-radius: 999px; }
.lc-bar-value { font-family: var(--mono); font-size: 11px; color: var(--blue-ink); text-align: right; }

.lc-steps { list-style: none; margin: 0; padding: 0 !important; }
body.lc-template .lc-prose .lc-steps li { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; font-size: 13.5px; line-height: 1.5; }
body.lc-template .lc-prose .lc-steps li:last-child { margin-bottom: 0; }
.lc-step-n {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--blue-wash);
  font-family: var(--mono);
  font-size: 10.5px;
  color: var(--blue-ink);
}

.lc-spec { margin: 0; }
.lc-spec > div { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.4fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.lc-spec > div:first-child { padding-top: 0; }
.lc-spec > div:last-child { padding-bottom: 0; border-bottom: 0; }
.lc-spec dt { font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); padding-top: 3px; }
.lc-spec dd { margin: 0; font-size: 13.5px; line-height: 1.45; color: var(--ink); }

.lc-dont { list-style: none; margin: 0 !important; padding: 0 !important; }
body.lc-template .lc-prose .lc-dont li { position: relative; margin: 0 0 9px; padding-left: 22px; font-size: 13.5px; line-height: 1.5; }
body.lc-template .lc-prose .lc-dont li:last-child { margin-bottom: 0; }
.lc-dont li::before { content: "\2717"; position: absolute; left: 0; color: var(--red); }

/* ==========================================================================
   13. Forms
   ========================================================================== */

.lc-apply-cols { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 40px; margin: 30px 0; }
.lc-apply-form { padding: 24px; border: 2px solid var(--ink); background: var(--sheet); }
body.lc-template .lc-prose .lc-apply-form h2 { margin-top: 0; padding-top: 0; border-top: 0; }

.lc-field { display: flex; flex-direction: column; gap: 5px; margin: 0 0 14px; }
.lc-field-row { display: flex; flex-wrap: wrap; gap: 12px; }
.lc-field-row .lc-field { flex: 1 1 160px; }
.lc-field-narrow { flex: 0 1 110px !important; }
.lc-field label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}
.lc-field input,
.lc-field select,
.lc-field textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1.5px solid var(--ink);
  border-radius: 0;
  background: var(--sheet);
  font-family: var(--sans);
  font-size: 15px;
  color: var(--ink);
  box-sizing: border-box;
}
.lc-field input:focus,
.lc-field select:focus,
.lc-field textarea:focus { outline: 2px solid var(--blue); outline-offset: 1px; }
.lc-field textarea { resize: vertical; }

.lc-consent label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  cursor: pointer;
  font-family: var(--sans);
  font-size: 13.5px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--body);
}
.lc-consent input { width: 17px; height: 17px; min-height: 0; margin-top: 2px; flex-shrink: 0; accent-color: var(--blue); }

.lc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lc-notice-good { border-color: var(--green) !important; background: #EEF6F0 !important; }
.lc-notice-bad { border-color: var(--red) !important; background: #FAEFED !important; }

.lc-nearme { margin: 24px 0; padding: 22px; border: 1.5px solid var(--ink); background: var(--sheet); }
.lc-nearme .lc-hint { margin: 10px 0 0; }
#lc-locate-result:not(:empty) { margin-top: 12px; font-family: var(--mono); font-size: 13px; color: var(--blue); }

/* ==========================================================================
   14. Profile
   ========================================================================== */

.lc-enquire {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  margin: 28px 0 12px;
  padding: 18px 20px;
  border: 2px solid var(--ink);
  background: var(--sheet);
}
.lc-enquire .lc-rate { flex-grow: 1; margin: 0; }
.lc-enquire .lc-rate b { font-size: 26px; }
.lc-verified { margin-top: 12px; }

/* ==========================================================================
   15. Footer
   Dark, to match the header: the age notice, then the site's own map in
   columns, then the copyright line. The columns are where every guide, area
   and departure city is linked from every page.
   ========================================================================== */

.lc-legalbar {
  background: var(--ink);
  color: #C4C7CF;
  font-size: 14px;
  line-height: 1.6;
  border-top: 6px solid var(--blue);
}
.lc-legalbar a { text-decoration: none; }

.lc-legalbar-age {
  margin: 0;
  padding: 18px 0;
  border-bottom: 1px solid #2C2F36;
  font-size: 13.5px;
  color: #C4C7CF;
}
.lc-legalbar-age strong {
  display: inline-block;
  margin-right: 10px;
  padding: 2px 7px;
  background: #fff;
  color: var(--ink);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.lc-foot-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) repeat(5, minmax(0, 1fr));
  gap: 34px 30px;
  padding: 38px 0 36px;
}

/* Brand and figures */
.lc-foot-name {
  display: inline-block;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: #fff;
}
.lc-foot-name:hover { color: #9DB8E0; }
.lc-foot-blurb { margin: 10px 0 0; font-size: 14px; color: #C4C7CF; }

.lc-foot-facts {
  display: flex;
  gap: 26px;
  margin: 22px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid #2C2F36;
  list-style: none;
}
.lc-foot-facts li { display: flex; flex-direction: column; gap: 5px; margin: 0; }
.lc-foot-facts b { font-family: var(--mono); font-size: 22px; font-weight: 500; line-height: 1; letter-spacing: -0.02em; color: #fff; }
.lc-foot-facts span { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; color: #8E929B; }
.lc-foot-stamp { margin: 14px 0 0; font-family: var(--mono); font-size: 11.5px; color: #8E929B; }
.lc-foot-stamp a { color: #9DB8E0; }
.lc-foot-stamp a:hover { color: #fff; text-decoration: underline; }

/* Link columns */
.lc-foot-h {
  margin: 0 0 14px;
  padding-bottom: 11px;
  border-bottom: 1px solid #2C2F36;
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-transform: uppercase;
  color: #fff;
}
.lc-foot-h::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 8px;
  background: #3F6FB0;
  vertical-align: 1px;
}
.lc-foot-col ul { margin: 0; padding: 0; list-style: none; }
.lc-foot-col li { margin: 0 0 9px; line-height: 1.35; }
.lc-foot-col a { font-size: 14px; color: #C4C7CF; }
.lc-foot-col a:hover { color: #fff; text-decoration: underline; }
.lc-foot-col .lc-foot-all { margin-top: 15px; }
.lc-foot-col .lc-foot-all a { font-family: var(--mono); font-size: 12px; letter-spacing: 0.05em; text-transform: uppercase; color: #9DB8E0; }
.lc-foot-col .lc-foot-all a:hover { color: #fff; }

/* Copyright line */
.lc-legalbar-note {
  margin: 0;
  padding: 16px 0 20px;
  border-top: 1px solid #2C2F36;
  font-size: 12.5px;
  color: #8E929B;
}

@media (max-width: 1100px) {
  .lc-foot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lc-foot-brand { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .lc-foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; padding: 28px 0 26px; }
  .lc-foot-facts { gap: 20px; }
}

/* ==========================================================================
   16. Responsive
   ========================================================================== */

@media (max-width: 960px) {
  .lc-sheet-grid { grid-template-columns: 1fr; }
  .lc-panel-span-2,
  .lc-panel-span-3 { grid-column: span 1; }
  .lc-apply-cols { grid-template-columns: 1fr; gap: 28px; }
  .lc-trust { grid-template-columns: 1fr; }
  .lc-trust li { border-right: 0; border-bottom: 1px solid var(--hair); }
  .lc-trust li:last-child { border-bottom: 0; }
}

@media (max-width: 782px) {
  .lc-planner { flex-direction: column; align-items: stretch; }
  .lc-planner-field,
  .lc-planner-wide,
  .lc-planner-go { flex: 1 1 auto; border-right: 0; border-bottom: 1px solid var(--hair); }
  .lc-planner-go { border-bottom: 0; }
  .lc-planner .lc-btn { width: 100%; }
}

@media (max-width: 640px) {
  :root { --gutter: 14px; }
  body { font-size: 15.5px; }
  .lc-hero { padding-top: 18px; }
  .lc-hero h1,
  .lc-hero .entry-title { margin: 12px 16px 0; }
  .lc-hero .lc-eyebrow,
  .lc-hero .lc-eyebrow-bright { margin: 18px 16px 0; }
  .lc-hero .lc-hero-lede { margin: 12px 16px 20px; font-size: 16.5px; }
  .lc-hero .lc-crumbs { padding: 9px 16px; }
  .lc-planner { margin: 0 16px 20px; }
  body.lc-template .lc-prose { padding: 26px 18px 30px 22px; }
  .lc-sheet { margin: 24px 0 30px; }
  .lc-sheet-title { font-size: 18px; }
  .lc-sheet-grid { gap: 14px; }
  .lc-panel-head { flex-wrap: wrap; row-gap: 6px; padding: 12px; }
  body.lc-template .lc-prose .lc-panel-head h3 { flex: 1 1 calc(100% - 34px); }
  .lc-panel-note { margin-left: 34px; }
  .lc-panel-body { padding: 12px; }
  .lc-panel .lc-table,
  .lc-panel .lc-table tbody { display: block; }
  .lc-panel .lc-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .lc-panel .lc-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "term status" "meaning meaning";
    align-items: center;
    gap: 5px 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
  }
  .lc-panel .lc-table tbody tr:first-child { padding-top: 2px; }
  .lc-panel .lc-table tbody tr:last-child { padding-bottom: 2px; border-bottom: 0; }
  .lc-panel .lc-table tbody tr:hover { background: none; }
  .lc-panel .lc-table th,
  .lc-panel .lc-table td { display: block; padding: 0; border: 0; }
  .lc-panel .lc-table tbody th { grid-area: term; }
  .lc-panel .lc-table tbody td:nth-child(2) { grid-area: meaning; line-height: 1.45; }
  .lc-panel .lc-table td.lc-status { grid-area: status; justify-self: end; white-space: normal; }
  .lc-field-row { flex-direction: column; gap: 0; }
  .lc-field-narrow { flex: 1 1 auto !important; }
  .lc-casting { flex-direction: column; align-items: flex-start; }
  .lc-enquire { flex-direction: column; align-items: stretch; }
  .lc-enquire .lc-btn { width: 100%; }
  .lc-readnext ul { border-left: 0; }
  body.lc-template .lc-prose .lc-readnext li { padding: 8px 0; border-right: 0; border-bottom: 1px solid var(--line); }
}

/* ==========================================================================
   17. Alignment
   Astra's header uses its own 1240px container, ours is 1360px with a 28px
   gutter. Matching them so the logo, the title block and the sheet share one
   left edge, which is the whole point of a ruled document.
   ========================================================================== */

body.lc-template .site-header .ast-container,
body.lc-template .main-header-bar .ast-container,
body.lc-template .ast-primary-header-bar .ast-container,
body.lc-template .site-primary-header-wrap {
  max-width: var(--wrap) !important;
  padding-left: var(--gutter) !important;
  padding-right: var(--gutter) !important;
  box-sizing: border-box;
}

body.lc-template .lc-legalbar > .lc-wrap { max-width: var(--wrap); }

/* The submit button fills the full height of the planner strip */
.lc-planner { align-items: stretch; }
.lc-planner-go { display: flex; }
.lc-planner-go .lc-btn { min-height: 0; height: 100%; align-self: stretch; }

/* ==========================================================================
   18. Sheet padding, restored on single posts
   Single guides and profiles carry both .lc-prose and Astra's
   .ast-article-single. The Astra reset zeroes the latter's padding with
   !important, which was stripping the sheet's padding and running the text
   flush into both borders. This restates it at higher specificity.
   ========================================================================== */

body.lc-template .lc-prose,
body.lc-template article.lc-prose,
body.lc-template .lc-prose.ast-article-single,
body.lc-template .lc-prose.ast-article-post {
  padding: 40px 48px 46px 52px !important;
}

@media (max-width: 640px) {
  body.lc-template .lc-prose,
  body.lc-template article.lc-prose,
  body.lc-template .lc-prose.ast-article-single,
  body.lc-template .lc-prose.ast-article-post {
    padding: 26px 18px 30px 24px !important;
  }
}

/* ==========================================================================
   19. List padding belongs to content lists only
   The generic .lc-prose list rule gave every <ul> a 22px indent, including
   component lists that are layouts rather than lists: the area grid, chips,
   read next, steps, bars. Those now sit flush with everything else.
   ========================================================================== */

body.lc-template .lc-prose ul.lc-nearby,
body.lc-template .lc-prose ul.lc-grid,
body.lc-template .lc-prose ul.lc-chips,
body.lc-template .lc-prose ul.lc-trust,
body.lc-template .lc-prose ul.lc-bars,
body.lc-template .lc-prose ul.lc-dont,
body.lc-template .lc-prose ol.lc-steps,
body.lc-template .lc-prose .lc-readnext ul,
body.lc-template .lc-prose .lc-faq ul,
body.lc-template .lc-hero ul.lc-trust,
body.lc-template .lc-legalbar ul {
  padding-left: 0 !important;
  margin-left: 0 !important;
  list-style: none;
}

/* ==========================================================================
   Stat tiles
   White cards with a faint blue glow in one corner, on the white page. The
   glow is a CSS gradient, so the site still carries no images at all.
   ========================================================================== */

.lc-frost {
  position: relative;
  margin: 18px 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.lc-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(138px, 1fr));
  gap: 10px;
}
.lc-tiles-wide { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

.lc-stat,
.lc-frost .lc-keyfacts > div {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 11px 14px 12px;
  background:
    radial-gradient(140% 120% at 0% 0%, rgba(31, 78, 140, 0.08), transparent 60%),
    #fff;
  border: 1px solid var(--hair);
  border-radius: 6px;
  box-shadow: 0 1px 2px rgba(21, 23, 28, 0.05), 0 6px 18px rgba(21, 23, 28, 0.05);
  text-decoration: none;
  transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

a.lc-stat:hover {
  transform: translateY(-2px);
  border-color: var(--blue);
  box-shadow: 0 1px 2px rgba(21, 23, 28, 0.06), 0 10px 24px rgba(31, 78, 140, 0.14);
}

.lc-stat-num {
  font-family: var(--mono);
  font-weight: 500;
  font-size: 26px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--blue-ink);
}
.lc-stat-num small { margin-left: 3px; font-size: 13px; font-weight: 400; color: var(--muted); letter-spacing: 0; }
.lc-stat-num-long { font-size: 20px; }

.lc-stat-label { margin-top: 5px; font-size: 14.5px; font-weight: 600; line-height: 1.25; color: var(--ink); }
.lc-stat-sub { font-family: var(--mono); font-size: 10.5px; line-height: 1.35; color: var(--muted); }
.lc-stat-note { margin-top: 4px; font-size: 12.5px; line-height: 1.4; color: var(--body); }

.lc-frost .lc-keyfacts {
  margin: 0;
  gap: 10px;
  border: 0;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.lc-frost .lc-keyfacts dt { margin-bottom: 2px; }
.lc-frost .lc-keyfacts dd {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--blue-ink);
}

@media (max-width: 640px) {
  .lc-tiles,
  .lc-tiles-wide { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .lc-stat-num { font-size: 22px; }
  .lc-frost .lc-keyfacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Where the counted profiles can be found: named, never linked */
body.lc-template .lc-prose p.lc-source {
  margin: -6px 0 26px;
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--muted);
}
body.lc-template .lc-prose p.lc-source::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 8px;
  background: var(--blue);
  vertical-align: 1px;
}

/* Plain marker list inside datasheet panels */
.lc-plain { list-style: none; margin: 0 0 10px !important; padding: 0 !important; }
body.lc-template .lc-prose .lc-plain li { position: relative; margin: 0 0 7px; padding-left: 16px; font-size: 13.5px; line-height: 1.45; }
.lc-plain li::before { content: ""; position: absolute; left: 0; top: 0.5em; width: 6px; height: 6px; background: var(--blue); }

/* Full width data tables inside articles */
.lc-table-wide { margin: 18px 0 8px; font-size: 14.5px; }
.lc-table-wide th, .lc-table-wide td { padding: 10px 12px; }
.lc-table-wide thead th { background: var(--paper); }
.lc-table-wide tbody tr:hover { background: var(--blue-wash); }
.lc-table-wide tbody td { font-family: var(--mono); font-size: 13.5px; }
.lc-table-wide tbody th a { font-weight: 600; text-decoration: none; }
@media (max-width: 640px) { .lc-table-wide { display: block; overflow-x: auto; } }

/* ==========================================================================
   Browser chrome and the scroll button
   The canvas behind the page is the header and footer colour, so the status
   bar, the overscroll and the bottom toolbar on a phone read as part of the
   frame and not as white strips. The page itself stays white.
   ========================================================================== */

html { background-color: var(--ink); }

/* No scroll to top button. */
#ast-scroll-top,
.ast-scroll-top-icon { display: none !important; }
