/* Layout and component appearance only; inherit Elementor typography.
   Color references use Elementor's built-in global color IDs.
   Override these variables on .pyp-checker to use other global tokens. */
.pyp-checker {
  --pyp-checker-primary: var(--e-global-color-primary, #003087);
  --pyp-checker-heading: var(--e-global-color-secondary, #25282d);
  --pyp-checker-muted: var(--e-global-color-text, #606b79);
  --pyp-checker-surface: #ffffff;
  --pyp-checker-border: #d8dee6;
  --pyp-checker-radius: 1.375rem;
  --pyp-checker-padding: clamp(1.3125rem, 1.125rem + .65vw, 1.625rem);
  --pyp-checker-gap: clamp(1rem, .75rem + .8vw, 1.5rem);
  color: var(--pyp-checker-heading);
  width: 100%;
  max-width: 42rem;
  margin-inline: auto;
}
.pyp-checker *, .pyp-checker *::before, .pyp-checker *::after { box-sizing: border-box; }
.pyp-checker [hidden] { display: none !important; }
.pyp-checker__demo, .pyp-checker__notice {
  padding: .875rem 1rem;
  background: #fff8dc;
  color: #735b0c;
  border-radius: .75rem;
  margin-block-end: var(--pyp-checker-gap);
}
.pyp-checker__form {
  display: flex;
  flex-direction: column;
  gap: var(--pyp-checker-gap);
  padding: var(--pyp-checker-padding);
  border: 1px solid var(--pyp-checker-border);
  border-radius: var(--pyp-checker-radius);
  background: var(--pyp-checker-surface);
}
.pyp-checker__field { display: flex; flex-direction: column; gap: .5rem; margin: 0; min-width: 0; }
.pyp-checker__label, .pyp-checker__help { display: block; }
.pyp-checker__help, .pyp-checker__privacy { color: var(--pyp-checker-muted); }
.pyp-checker .pyp-checker__input {
  width: 100%;
  min-width: 0;
  min-height: 3.0625rem;
  padding: .6875rem .75rem;
  border: 1px solid var(--pyp-checker-border);
  border-radius: .75rem;
  background: var(--pyp-checker-surface);
  color: inherit;
  font: inherit;
}
.pyp-checker__vehicles { border: 0; padding: 0; margin: 0; min-width: 0; }
.pyp-checker__vehicles legend { margin-block-end: .5rem; }
.pyp-checker__vehicle-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.pyp-checker__vehicle-option {
  display: flex; flex: 1 1 7rem; gap: .5rem; align-items: center;
  padding: .75rem; min-height: 2.75rem; border: 1px solid var(--pyp-checker-border);
  border-radius: .75rem; margin: 0; background: #f0f3f7;
}
.pyp-checker__vehicle-option:has(input:checked) { border-color: var(--pyp-checker-primary); background: #eff4fc; }
.pyp-checker__vehicle-option input { width: auto; margin: 0; accent-color: var(--pyp-checker-primary); }
.pyp-checker__extra { padding-block-start: .5rem; }
.pyp-checker__extra summary { min-height: 2.75rem; color: var(--pyp-checker-primary); }
.pyp-checker__extra-fields { display: flex; flex-direction: column; gap: var(--pyp-checker-gap); padding-block: .75rem; }
.pyp-checker__submit {
  display: flex; justify-content: center; align-items: center;
  width: 100%; min-height: 3rem; padding: .8125rem 1rem;
  border: 0; border-radius: .8125rem; background: var(--pyp-checker-primary);
  color: #ffffff; font: inherit;
}
.pyp-checker__privacy { margin: 0; text-align: center; }
.pyp-checker__result {
  margin-block-start: var(--pyp-checker-gap);
  padding: var(--pyp-checker-padding);
  border: 1px solid #d5e4f6; border-radius: var(--pyp-checker-radius);
  background: #eef5fc;
}
.pyp-checker__result--restricted { background: #fff2f1; border-color: #f1d7d5; }
.pyp-checker__result--clear { background: #eef7f1; border-color: #d4e9db; }
.pyp-checker__result--unknown, .pyp-checker__result--review { background: #fff8dc; border-color: #eadca4; }
.pyp-checker__result p { margin-block: 0 .75rem; }
.pyp-checker__result-title { color: var(--pyp-checker-heading); }
.pyp-checker__source { display: block; margin-block-start: .75rem; color: var(--pyp-checker-primary); }
.pyp-checker__week-section { margin-block-start: var(--pyp-checker-gap); }
.pyp-checker__week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .25rem; }
.pyp-checker__day {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .375rem;
  min-width: 0; min-height: 5rem; padding: .5rem .125rem;
  border: 1px solid transparent; border-radius: .75rem;
  background: #f0f3f7; color: var(--pyp-checker-heading); font: inherit;
}
.pyp-checker__day[data-status="restricted"] { background: #fff2f1; }
.pyp-checker__day[data-status="clear"] { background: #eef7f1; }
.pyp-checker__day[aria-pressed="true"] { border-color: var(--pyp-checker-primary); }
.pyp-checker :is(button, input, select, summary, a):focus-visible { outline: 3px solid #f4be00; outline-offset: 3px; }
.pyp-checker__error { color: #a42530; }
.pyp-checker__week-help { color: var(--pyp-checker-muted); margin-block: .75rem 0; }
@media (max-width: 360px) {
  .pyp-checker { --pyp-checker-padding: 1rem; }
  .pyp-checker__week { gap: .125rem; }
}

  border: 1px solid var(--pyp-checker-border);
  border-radius: var(--pyp-checker-radius);
  background: var(--pyp-checker-surface);
}
.pyp-checker__field { display: flex; flex-direction: column; gap: .5rem; margin: 0; min-width: 0; }
.pyp-checker__label, .pyp-checker__help { display: block; }
.pyp-checker__help, .pyp-checker__privacy { color: var(--pyp-checker-muted); }
.pyp-checker__input {
  width: 100%;
  min-width: 0;
  min-height: 3.0625rem;
  padding: .6875rem .75rem;
  border: 1px solid var(--pyp-checker-border);
  border-radius: .75rem;
  background: var(--pyp-checker-surface);
  color: inherit;
  font: inherit;
}
.pyp-checker__vehicles { border: 0; padding: 0; margin: 0; min-width: 0; }
.pyp-checker__vehicles legend { margin-block-end: .5rem; }
.pyp-checker__vehicle-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.pyp-checker__vehicle-option {
  display: flex; flex: 1 1 7rem; gap: .5rem; align-items: center;
  padding: .75rem; min-height: 2.75rem; border: 1px solid var(--pyp-checker-border);
  border-radius: .75rem; margin: 0; background: #f0f3f7;
}
.pyp-checker__vehicle-option:has(input:checked) { border-color: var(--pyp-checker-primary); background: #eff4fc; }
.pyp-checker__vehicle-option input { width: auto; margin: 0; accent-color: var(--pyp-checker-primary); }
.pyp-checker__extra { padding-block-start: .5rem; }
.pyp-checker__extra summary { min-height: 2.75rem; color: var(--pyp-checker-primary); }
.pyp-checker__extra-fields { display: flex; flex-direction: column; gap: var(--pyp-checker-gap); padding-block: .75rem; }
.pyp-checker__submit {
  display: flex; justify-content: center; align-items: center;
  width: 100%; min-height: 3rem; padding: .8125rem 1rem;
  border: 0; border-radius: .8125rem; background: var(--pyp-checker-primary);
  color: #ffffff; font: inherit;
}
.pyp-checker__privacy { margin: 0; text-align: center; }
.pyp-checker__result {
  margin-block-start: var(--pyp-checker-gap);
  padding: var(--pyp-checker-padding);
  border: 1px solid #d5e4f6; border-radius: var(--pyp-checker-radius);
  background: #eef5fc;
}
.pyp-checker__result--restricted { background: #fff2f1; border-color: #f1d7d5; }
.pyp-checker__result--clear { background: #eef7f1; border-color: #d4e9db; }
.pyp-checker__result--unknown, .pyp-checker__result--review { background: #fff8dc; border-color: #eadca4; }
.pyp-checker__result p { margin-block: 0 .75rem; }
.pyp-checker__result-title { color: var(--pyp-checker-heading); }
.pyp-checker__source { display: block; margin-block-start: .75rem; color: var(--pyp-checker-primary); }
.pyp-checker__week-section { margin-block-start: var(--pyp-checker-gap); }
.pyp-checker__week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .25rem; }
.pyp-checker__day {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .375rem;
  min-width: 0; min-height: 5rem; padding: .5rem .125rem;
  border: 1px solid transparent; border-radius: .75rem;
  background: #f0f3f7; color: var(--pyp-checker-heading); font: inherit;
}
.pyp-checker__day[data-status="restricted"] { background: #fff2f1; }
.pyp-checker__day[data-status="clear"] { background: #eef7f1; }
.pyp-checker__day[aria-pressed="true"] { border-color: var(--pyp-checker-primary); }
.pyp-checker :is(button, input, select, summary, a):focus-visible { outline: 3px solid #f4be00; outline-offset: 3px; }
.pyp-checker__error { color: #a42530; }
.pyp-checker__week-help { color: var(--pyp-checker-muted); margin-block: .75rem 0; }
@media (max-width: 360px) {
  .pyp-checker { --pyp-checker-padding: 1rem; }
  .pyp-checker__week { gap: .125rem; }
}


/* Weekly city panel: append after the existing checker styles. */
.pyp-checker.pyp-checker--weekly-layout {
  width: 100%;
  max-width: 75rem;
}
.pyp-checker--weekly-layout > * { min-width: 0; }
.pyp-checker--weekly-layout .pyp-checker__week-section {
  margin-block-start: var(--pyp-checker-gap);
}
.pyp-checker__city-heading { margin: 0 0 1rem; }
.pyp-checker__week-card {
  padding: var(--pyp-checker-padding);
  background: var(--pyp-checker-surface);
  border: 1px solid var(--pyp-checker-border);
  border-radius: var(--pyp-checker-radius);
}
.pyp-checker__week-eyebrow {
  color: var(--pyp-checker-muted);
  font-size: .75rem;
  letter-spacing: .12em;
  margin: 0 0 .75rem;
}
.pyp-checker__week-title { margin: 0 0 .5rem; }
.pyp-checker__week-intro { color: var(--pyp-checker-muted); margin: 0 0 1rem; }
.pyp-checker__week-card .pyp-checker__day { min-height: 4.5rem; }
.pyp-checker__week-card .pyp-checker__day[data-status="pending"][aria-pressed="true"] {
  background: var(--pyp-checker-primary);
  color: #fff;
}
.pyp-checker__week-card .pyp-checker__day span:first-of-type { font-weight: 600; }

/* This page has one HTML widget directly in a boxed Elementor container.
   Let the widget span the parent; the checker owns its internal two columns. */
.pyp-layout:has(> .e-con-inner > .elementor-widget-html > .pyp-checker--weekly-layout) {
  display: block;
}
.pyp-layout > .e-con-inner:has(> .elementor-widget-html > .pyp-checker--weekly-layout) {
  display: block;
  width: 100%;
}
.pyp-layout > .e-con-inner > .elementor-widget-html:has(> .pyp-checker--weekly-layout) {
  width: 100%;
  min-width: 0;
}

/* Wide desktops/laptops and landscape tablets. Portrait tablets stack. */
@media (min-width: 1201px), (min-width: 768px) and (orientation: landscape) {
  .pyp-checker.pyp-checker--weekly-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    grid-template-areas: "notice notice" "form week" "result week";
    align-items: start;
    gap: clamp(1.25rem, 2.5vw, 2rem);
  }
  .pyp-checker--weekly-layout:has(> .pyp-checker__demo[hidden]) {
    grid-template-areas: "form week" "result week";
  }
  .pyp-checker--weekly-layout:has(> .pyp-checker__demo[hidden]):has(> .pyp-checker__result[hidden]) {
    grid-template-areas: "form week";
  }
  .pyp-checker--weekly-layout > .pyp-checker__demo { grid-area: notice; margin: 0; }
  .pyp-checker--weekly-layout > .pyp-checker__form { grid-area: form; }
  .pyp-checker--weekly-layout > .pyp-checker__result { grid-area: result; margin: 0; }
  .pyp-checker--weekly-layout > .pyp-checker__week-section { grid-area: week; margin: 0; }
}


/* Lucide status icons, in the calendar and its legend. */
.pyp-checker__status-icon {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  vertical-align: middle;
}
.pyp-checker__status-icon[data-state="restricted"] { color: #c8102e; }
.pyp-checker__status-icon[data-state="clear"] { color: #177245; }
.pyp-checker__status-icon[data-state="unknown"] { color: #966400; }
.pyp-checker__status-icon[data-state="past"] { color: #6b7280; }
.pyp-checker__day[data-status="past"] { background: #f0f3f7; }
.pyp-checker__day[data-status="unknown"] { background: #fff8dc; }
.pyp-checker__legend-items { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.pyp-checker__legend-item { display: inline-flex; align-items: center; gap: .375rem; }
.pyp-checker__legend-instruction { display: block; margin-block-start: .75rem; }


/* Smaller status legend labels */
.pyp-checker__legend-item { font-size: .8125rem; line-height: 1.4; }


/* Override theme button hover colors without losing the date's status. */
.pyp-checker .pyp-checker__day:hover,
.pyp-checker .pyp-checker__day:focus-visible { background: #e2ebf8; color: var(--pyp-checker-heading); }
.pyp-checker .pyp-checker__day[data-status="restricted"]:is(:hover, :focus-visible) { background: #fbe0e2; }
.pyp-checker .pyp-checker__day[data-status="clear"]:is(:hover, :focus-visible) { background: #dceee2; }
.pyp-checker .pyp-checker__day[data-status="unknown"]:is(:hover, :focus-visible) { background: #fff0bb; }
.pyp-checker .pyp-checker__day[data-status="past"]:is(:hover, :focus-visible) { background: #e2e7ee; }
.pyp-checker .pyp-checker__day[data-status="pending"][aria-pressed="true"]:is(:hover, :focus-visible) { background: #00246b; color: #fff; }

/* Published guide cards below the weekly calendar */
.pyp-checker__guides { margin-top:clamp(1.5rem,3vw,2rem); }
.pyp-checker .pyp-checker__guides-title { font-size:clamp(1.125rem,1.7vw,1.25rem); margin:0 0 1rem; }
.pyp-checker .pyp-checker__guide-card { display:flex; align-items:center; gap:1rem; padding:clamp(1rem,2vw,1.25rem); margin-top:.75rem; border:1px solid #e3e7ed; border-radius:1rem; background:#fff; color:#202936; text-decoration:none; transition:background .15s,border-color .15s; }
.pyp-checker .pyp-checker__guide-card:hover { background:#eef3fb; border-color:#c8d5ec; }
.pyp-checker__guide-icon { flex:0 0 2.75rem; height:2.75rem; display:flex; align-items:center; justify-content:center; border-radius:.75rem; background:#fff5cb; color:#79610a; }
.pyp-checker__guide-copy { display:flex; flex-direction:column; gap:.25rem; min-width:0; }
.pyp-checker__guide-copy strong { font-size:.9375rem; line-height:1.4; }
.pyp-checker__guide-copy small { color:#5b6b82; font-size:.8125rem; line-height:1.4; }
.pyp-checker__guide-arrow { margin-left:auto; font-size:1.4rem; }

/* Visible consultation result: first item in the calendar column */
.pyp-checker .pyp-checker__result { scroll-margin-top:7rem; margin:0 0 1.5rem; }
.pyp-checker .pyp-checker__result:focus { outline:none; }
.pyp-checker .pyp-checker__result-title { display:flex; align-items:center; gap:.65rem; }
.pyp-checker .pyp-checker__result-title .pyp-checker__status-icon { width:1.6rem; height:1.6rem; flex:0 0 1.6rem; }
@media (min-width:1201px), (min-width:768px) and (orientation:landscape) {
  .pyp-checker.pyp-checker--weekly-layout { grid-template-areas:"notice notice" "form week"; grid-template-rows:auto 1fr; }
  .pyp-checker.pyp-checker--weekly-layout:has(> .pyp-checker__demo[hidden]) { grid-template-areas:"form week"; grid-template-rows:auto; }
}

/* Compact result card and user-opened information dialog */
.pyp-checker .pyp-checker__result > .pyp-checker__source { display:block; margin:1rem 0; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.pyp-checker .pyp-checker__result > .pyp-checker__projection { font-size:.875rem; font-weight:600; }
.pyp-checker .pyp-checker__details-button { display:flex; align-items:center; justify-content:center; gap:.65rem; width:100%; padding:.9rem 1rem; border:2px solid #003087; border-radius:.75rem; background:#edf3ff; color:#003087; font:inherit; font-size:.9375rem; font-weight:700; line-height:1.4; text-align:left; cursor:pointer; }
.pyp-checker .pyp-checker__details-button svg { flex:0 0 22px; }
.pyp-checker .pyp-checker__details-button:hover { background:#dce8ff; color:#00246b; }
.pyp-checker .pyp-checker__details-button:focus-visible,.pyp-checker .pyp-checker__details-close:focus-visible { outline:3px solid #ffcd00; outline-offset:3px; }
.pyp-checker .pyp-checker__details-dialog { box-sizing:border-box; width:calc(100% - 2rem); max-width:42rem; max-height:85vh; max-height:85dvh; margin:auto; padding:0; border:1px solid #d4dce8; border-radius:1.25rem; color:#202936; background:#fff; font:inherit; overflow:auto; box-shadow:0 1.5rem 5rem #10254a40; }
.pyp-checker .pyp-checker__details-dialog:not([open]) { display:none; }
.pyp-checker__details-dialog::backdrop { background:rgba(16,28,48,.58); }
body:has(.pyp-checker__details-dialog[open]) { overflow:hidden; }
.pyp-checker__details-header { display:flex; gap:1rem; align-items:flex-start; justify-content:space-between; position:sticky; top:0; background:#fff; z-index:1; padding:1.25rem; border-bottom:1px solid #e3e7ed; }
.pyp-checker .pyp-checker__details-title { font-size:clamp(1.125rem,2vw,1.375rem); line-height:1.35; margin:0; }
.pyp-checker .pyp-checker__details-close { flex:0 0 auto; padding:.5rem .65rem; border:1px solid #c6d2e6; border-radius:.5rem; color:#003087; background:#edf3ff; font:inherit; font-size:.875rem; font-weight:600; cursor:pointer; }
.pyp-checker .pyp-checker__details-close:hover { background:#dce8ff; }
.pyp-checker__details-body { padding:clamp(1rem,3vw,1.5rem); }
.pyp-checker .pyp-checker__details-body h3 { font-size:1.0625rem; margin:1.5rem 0 .65rem; line-height:1.4; }
.pyp-checker .pyp-checker__details-body .pyp-checker__verified { display:block; }
.pyp-checker .pyp-checker__details-body .pyp-checker__disclaimer { margin-top:1.5rem; }

.pyp-checker .pyp-checker__details-button { white-space:normal; min-width:0; }
.pyp-checker .pyp-checker__details-button span { min-width:0; white-space:normal; overflow-wrap:anywhere; }

/* Keep calendar tiles independent of Elementor's global button colors. */
[data-pyp-checker] .pyp-checker__week-card button.pyp-checker__day {
  --pyp-day-bg: #f0f3f7;
  background-color: var(--pyp-day-bg) !important;
  color: #25282d !important;
}
[data-pyp-checker] .pyp-checker__day > small,
[data-pyp-checker] .pyp-checker__day > span { color: inherit !important; }
[data-pyp-checker] button.pyp-checker__day[data-status="restricted"] { --pyp-day-bg: #fff2f1; }
[data-pyp-checker] button.pyp-checker__day[data-status="clear"] { --pyp-day-bg: #eef7f1; }
[data-pyp-checker] button.pyp-checker__day[data-status="unknown"] { --pyp-day-bg: #fff8dc; }
[data-pyp-checker] button.pyp-checker__day:is(:hover, :focus-visible) { --pyp-day-bg: #e2ebf8; }
[data-pyp-checker] button.pyp-checker__day[data-status="restricted"]:is(:hover, :focus-visible) { --pyp-day-bg: #fbe0e2; }
[data-pyp-checker] button.pyp-checker__day[data-status="clear"]:is(:hover, :focus-visible) { --pyp-day-bg: #dceee2; }
[data-pyp-checker] button.pyp-checker__day[data-status="unknown"]:is(:hover, :focus-visible) { --pyp-day-bg: #fff0bb; }
[data-pyp-checker] button.pyp-checker__day[data-status="past"]:is(:hover, :focus-visible) { --pyp-day-bg: #e2e7ee; }
[data-pyp-checker] .pyp-checker__week-card button.pyp-checker__day[data-status="pending"][aria-pressed="true"] {
  --pyp-day-bg: #003087;
  color: #ffffff !important;
}
[data-pyp-checker] .pyp-checker__week-card button.pyp-checker__day[data-status="pending"][aria-pressed="true"]:is(:hover, :focus-visible) { --pyp-day-bg: #00246b; }
