.cancellation-policy-page {
  background: var(--surface-soft);
}

body:has(.cancellation-policy-page) main#wp--skip-link--target {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body:has(.cancellation-policy-page) main#wp--skip-link--target > .wp-block-group.alignfull.has-global-padding {
  padding-top: 0 !important;
}

body:has(.cancellation-policy-page) .entry-content.wp-block-post-content.has-global-padding,
body:has(.cancellation-policy-page) .frontend-page-cancellation-policy {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.cancellation-policy-section {
  display: flex;
  justify-content: center;
  margin-top: 0 !important;
  padding-top: 0;
}

.cancellation-policy-card {
  width: min(100%, 760px);
  padding: clamp(28px, 5vw, 46px);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}

.cancellation-policy-card .page-kicker {
  color: var(--accent);
  margin-bottom: 8px;
}

.cancellation-policy-card h1 {
  margin: 0 0 28px;
  font-family: 'Playfair Display', serif;
  font-size: clamp(2.1rem, 4.5vw, 3.4rem);
  line-height: 1.08;
  color: var(--text);
}

.cancellation-policy-list {
  display: grid;
}

.cancellation-policy-row {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.cancellation-policy-row:last-child {
  border-bottom: 0;
}

.cancellation-policy-clock {
  position: relative;
  display: inline-flex;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(37, 122, 70, 0.12);
  border: 2px solid #177a43;
}

.cancellation-policy-clock::before,
.cancellation-policy-clock::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 2px;
  border-radius: 999px;
  background: #177a43;
  transform-origin: 50% 0;
}

.cancellation-policy-clock::before {
  height: 10px;
  transform: rotate(180deg);
}

.cancellation-policy-clock::after {
  height: 9px;
  transform: rotate(125deg);
}

.cancellation-policy-clock-no::before {
  width: 18px;
  height: 2px;
  transform: translate(-50%, -50%) rotate(45deg);
  transform-origin: center;
}

.cancellation-policy-clock-no::after {
  width: 18px;
  height: 2px;
  transform: translate(-50%, -50%) rotate(-45deg);
  transform-origin: center;
}

.cancellation-policy-window {
  display: grid;
  gap: 2px;
  color: var(--text);
}

.cancellation-policy-window strong {
  font-size: 1.08rem;
}

.cancellation-policy-window span {
  color: var(--muted);
}

.cancellation-policy-refund {
  color: #177a43;
  font-weight: 700;
  white-space: nowrap;
}

@media (max-width: 560px) {
  .cancellation-policy-row {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
  }

  .cancellation-policy-refund {
    grid-column: 2;
  }
}
