/* Paper-specific presentation. Loaded with media="print" after the screen stylesheet. */
@page {
  margin: 17mm;
}

@media print {
  html {
    scroll-behavior: auto !important;
    scroll-padding: 0 !important;
  }

  body {
    margin: 0 !important;
    color: #000 !important;
    background: #fff !important;
    font: 11pt/1.4 "DM Sans", Arial, sans-serif !important;
  }

  body *, body *::before, body *::after {
    color: #000 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
  }

  body * {
    font-size: inherit !important;
    line-height: inherit !important;
    letter-spacing: normal !important;
  }

  body h1 {
    font-size: 24pt !important;
    line-height: 1.15 !important;
    margin: 0 0 5mm !important;
  }

  body h2 {
    font-size: 17pt !important;
    line-height: 1.2 !important;
    margin: 6mm 0 3mm !important;
  }

  body h3 {
    font-size: 13pt !important;
    line-height: 1.3 !important;
    margin: 4mm 0 2mm !important;
  }

  body h1, body h2, body h3, body h4, body h5, body h6,
  body dt, body summary {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }

  body p, body ul, body ol, body dl {
    margin-top: 0 !important;
    margin-bottom: 3mm !important;
    orphans: 3;
    widows: 3;
  }

  body li { margin-bottom: 1.5mm !important; }
  body ul, body ol { padding-left: 6mm !important; }
  body dd { margin-left: 0 !important; }

  body .small, body small, body .eyebrow, body .news-date,
  body figcaption, body .source-entry .small, body .print-metadata,
  body .footer-bottom {
    font-size: 10pt !important;
    line-height: 1.4 !important;
  }

  body .budget-preview > p {
    color: #000 !important;
    font-size: 10pt !important;
    line-height: 1.4 !important;
  }

  .eyebrow, .section-heading, .finder-result-head {
    break-after: avoid !important;
    page-break-after: avoid !important;
  }
  .section-heading { margin-bottom: 3mm !important; }

  .shell, .narrow, .article-width, .news-article, .news-article-header,
  .news-prose, .detail-main, .disclaimer-content, main {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .section, .section-tight, .page-intro, .destination-hero,
  .detail-layout, .article-section, .news-article, .news-article-header,
  .hero-content, .newsletter-layout, .budget-method {
    padding: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 5mm !important;
  }

  .article-section, .article-sources { padding-top: 3mm !important; }

  .skip-link, .utility, .main-nav, .header-actions, .disclaimer-link,
  .menu-toggle, .save-button, .toast, .subnav, .page-breadcrumbs,
  .breadcrumbs, .disclaimer-contents, .hero-buttons,
  .hero-image, .hero-overlay, .hero-caption, .route-visual,
  .map-art, .orbit, .goal-arrow, .card-image, .news-card-image,
  .newsletter-band, .end-cta, .compare-add, .footer-grid,
  button, .form-honeypot {
    display: none !important;
  }

  /* Retain the existing truthful identity and footer; omit their navigation. */
  .site-header {
    display: block !important;
    position: static !important;
    height: auto !important;
    border: 0 !important;
    padding: 0 0 3mm !important;
    margin: 0 !important;
    backdrop-filter: none !important;
  }

  .header-inner, .brand-cluster {
    display: block !important;
    height: auto !important;
  }

  .site-header .brand {
    display: block !important;
    position: relative !important;
    font-size: 18pt !important;
    padding-left: 11mm !important;
    white-space: normal !important;
    text-decoration: none !important;
  }

  .site-header .brand-mark {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
  }

  .site-header .brand-mark .icon {
    display: block !important;
    width: 8mm !important;
    height: 8mm !important;
  }

  .site-header .brand small {
    font-size: 10pt !important;
    margin-top: 1mm !important;
  }

  .site-footer {
    display: block !important;
    position: static !important;
    padding: 3mm 0 0 !important;
    margin: 4mm 0 0 !important;
    border-top: 1px solid #777 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .footer-bottom {
    display: block !important;
    border: 0 !important;
    padding: 0 !important;
  }

  .footer-bottom p { margin: 1mm 0 0 !important; max-width: none !important; }

  .print-only[hidden] { display: block !important; }
  span.print-only[hidden] { display: inline !important; }

  .print-metadata {
    margin: 0 0 5mm !important;
    padding: 0 0 3mm !important;
    border-bottom: 1px solid #777 !important;
    overflow-wrap: anywhere;
    break-inside: avoid;
  }

  .print-metadata p { margin: 0 !important; }

  .hero, .goal-card, .guide-card, .destination-card, .news-card,
  .route-panel, .goal-result, .form-panel, .budget-summary,
  .aside-card, .finder-aside, .notice, .disclaimer-summary,
  .editorial-bar, .budget-preview {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    transform: none !important;
    padding: 3mm 0 !important;
    margin: 0 0 4mm !important;
  }

  .hero { border: 0 !important; }
  .hero h1 em { font-style: italic !important; }
  .hero-copy, .route-copy p, .money-feature p, .section-heading p {
    max-width: none !important;
  }

  .route-split, .money-feature, .detail-hero-grid, .detail-layout,
  .finder-layout, .budget-layout, .newsletter-layout, .method-grid,
  .section-heading, .finder-result-head, .editorial-bar,
  .goal-grid, .destination-grid, .guide-grid, .news-grid {
    display: block !important;
    gap: 0 !important;
  }

  .goal-grid, .destination-grid, .guide-grid, .news-grid {
    border: 0 !important;
    margin: 0 0 4mm !important;
  }

  .goal-card, .guide-card, .destination-card, .news-card {
    display: block !important;
    border: 0 !important;
    border-bottom: 1px solid #aaa !important;
    padding: 1.5mm 0 !important;
    margin-bottom: 2mm !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .card-body, .news-card-body { padding: 0 !important; }
  .goal-card h3, .guide-card h3, .destination-card h3, .news-card h3 {
    margin: 2mm 0 1mm !important;
  }
  .card-body > p { min-height: 0 !important; margin-bottom: 2mm !important; }
  .card-bottom { padding: 2mm 0 0 !important; }
  .card-top .eyebrow { margin-bottom: 1mm !important; }
  .goal-card p { max-width: none !important; }
  .goal-card .goal-icon, .goal-card > .icon, .guide-card > .icon,
  .text-link .icon, .button .icon, .card-bottom .icon,
  .edition-link > .icon { display: none !important; }

  .evidence-strip {
    position: static !important;
    margin: 3mm 0 5mm !important;
    padding: 0 !important;
    min-height: 0 !important;
    border: 0 !important;
    gap: 4mm !important;
  }
  .evidence-strip > div { padding: 0 3mm 0 0 !important; }
  .evidence-strip strong { white-space: nowrap !important; }
  .evidence-strip > a { display: none !important; }

  .detail-aside, .finder-aside, .budget-summary {
    display: block !important;
    position: static !important;
    top: auto !important;
    width: 100% !important;
  }
  .aside-card dl { display: block !important; }
  .detail-aside { margin-top: 4mm !important; }

  /* Screen rules hide these links at the narrower A4 print viewport. */
  .aside-card .text-link {
    display: block !important;
    margin-top: 2mm !important;
  }
  .finder-aside .aside-card, .detail-aside .aside-card {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .route-panel, .goal-result, .form-panel, .budget-summary,
  .disclaimer-summary, .article-section {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  .facts-list > div {
    display: block !important;
    padding: 2mm 0 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  .facts-list dt, .aside-card dt { font-weight: 700 !important; }
  .facts-list dd { margin-top: 1mm !important; }
  .panel-head { break-after: avoid !important; }

  details, details::details-content {
    display: block !important;
    content-visibility: visible !important;
    height: auto !important;
    block-size: auto !important;
    overflow: visible !important;
  }

  summary {
    display: block !important;
    font-weight: 700 !important;
    list-style: none !important;
    padding: 2mm 0 !important;
  }
  summary::marker, summary::-webkit-details-marker { display: none; content: ""; }
  [role="tabpanel"] { display: block !important; visibility: visible !important; }

  .form-step {
    display: block !important;
    padding: 0 0 3mm !important;
    margin: 0 0 3mm !important;
    break-inside: avoid !important;
  }
  .form-step > span { display: none !important; }
  .form-step label, .form-step legend, .input-label { font-weight: 700 !important; }
  .form-step fieldset { padding: 0 !important; border: 0 !important; }
  .checkbox-options, .budget-controls, .cost-inputs {
    display: block !important;
    margin: 0 0 3mm !important;
  }
  .checkbox-options label, .cost-inputs label, .budget-controls > label {
    display: block !important;
    margin-bottom: 2mm !important;
  }
  .income-input { padding: 2mm 0 !important; margin: 0 0 3mm !important; }
  .summary-line, .budget-preview-row, .budget-preview-result {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    gap: 5mm !important;
    padding: 2mm 0 !important;
    break-inside: avoid !important;
  }
  .summary-line b { text-align: right !important; }
  .print-prepared [data-print-control] { display: none !important; }
  .print-value {
    font-weight: 400 !important;
    padding-left: 2mm !important;
    white-space: pre-wrap !important;
    overflow-wrap: anywhere;
  }
  .print-selection { margin: 1mm 0 3mm !important; }
  #newsletter-subscribe { display: none !important; }
  .print-newsletter-note { overflow-wrap: anywhere; }

  /* Keep the short subscription hand-off and truthful footer on Letter. */
  .newsletter-layout, .newsletter-layout .form-panel {
    margin-bottom: 0 !important;
  }
  .newsletter-layout .form-panel h2 {
    margin-top: 2mm !important;
    margin-bottom: 2mm !important;
  }
  .newsletter-layout .edition-link {
    padding: 2mm 0 !important;
  }

  .comparison-wrap {
    overflow: visible !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  table, .comparison-table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    break-inside: auto !important;
    font-size: 10pt !important;
  }
  thead { display: table-header-group !important; }
  tfoot { display: table-footer-group !important; }
  tbody { display: table-row-group !important; }
  tr { break-inside: avoid !important; page-break-inside: avoid !important; }
  th, td {
    padding: 2mm !important;
    border: 1px solid #777 !important;
    vertical-align: top !important;
    overflow-wrap: anywhere;
  }
  .comparison-table th:first-child { width: 22% !important; }
  table h3 { font-size: 11pt !important; margin: 0 !important; }
  caption { text-align: left !important; padding: 0 0 2mm !important; }

  img, svg, figure {
    max-width: 100% !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  img { height: auto !important; object-fit: contain !important; }
  .detail-image { height: auto !important; max-height: none !important; }
  .detail-media, .news-article-image { margin: 3mm 0 5mm !important; }
  .detail-image img, .news-article-image img {
    width: auto !important;
    max-height: 48mm !important;
  }

  a { text-decoration: underline !important; overflow-wrap: anywhere; }
  a.button {
    display: inline !important;
    min-height: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    font-weight: 400 !important;
  }
  a[href^="http"]:not([href^="https://teachatlas.me.uk"]):not([href^="http://teachatlas.me.uk"])::after {
    content: " (" attr(href) ")";
    font-size: 10pt !important;
    font-weight: 400 !important;
    overflow-wrap: anywhere;
  }
  .print-prepared a[href^="http"]::after { content: none; }
  .print-prepared a[data-print-url]::after {
    content: " (" attr(data-print-url) ")";
    font-size: 10pt !important;
    font-weight: 400 !important;
    overflow-wrap: anywhere;
  }

  body a[data-print-url] { display: inline !important; }
  a[data-print-url] .icon { display: none !important; }
  .source-links { display: block !important; }
  body .source-links a, body .source-links a[data-print-url] {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    border: 0 !important;
    padding: 1mm 0 !important;
  }
  .source-links .icon { display: none !important; }

  .source-entry, .article-sources li, .edition-link,
  .section-tight > p.small, .print-newsletter-note {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .source-entry {
    display: block !important;
    padding: 2mm 0 !important;
    margin: 0 !important;
  }
  .source-entry > span { display: none !important; }
  .source-entry h3 { margin: 0 0 1mm !important; font-size: 11pt !important; }
  .source-entry p { margin: 0 0 1mm !important; }
}
