/* =========================================================
   The Best Pizza Shop — Print Styles
   File: /css/print.css
   ========================================================= */

@media print {

  /* ---------------------------------------------------------
     Page setup
     --------------------------------------------------------- */

  @page {
    size: auto;
    margin: 0.55in 0.6in 0.65in;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
    transition: none !important;
  }

  html {
    font-size: 10.5pt;
    background: #fff !important;
  }

  body {
    margin: 0;
    padding: 0;
    background: #fff !important;
    color: #111 !important;
    font-family:
      Arial,
      Helvetica,
      sans-serif;
    line-height: 1.45;
  }

  /* Encourage browsers to preserve restrained branding colors. */
  body {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  /* ---------------------------------------------------------
     Global layout reset
     --------------------------------------------------------- */

  .container,
  .page-hero__content,
  .content-narrow,
  .story-content,
  .mission-content,
  .calculator-shell,
  .recipe-page .container {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  main,
  .page-main,
  section,
  article,
  .section,
  .story-section,
  .what-i-do-section,
  .mission-section {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    background: #fff !important;
    color: #111 !important;
  }

  section,
  .section,
  .story-section,
  .what-i-do-section {
    padding: 0 !important;
    margin: 0 0 22pt !important;
  }

  /* ---------------------------------------------------------
     Hide interactive and nonessential website elements
     --------------------------------------------------------- */

  .site-header,
  .main-nav,
  .nav-toggle,
  .header-actions,
  .site-footer,
  .breadcrumbs,
  .social-row,
  .socials,
  .button-group,
  .btn,
  .outline-button,
  .video-embed,
  iframe,
  video,
  audio,
  form:not(.print-include-form),
  .newsletter,
  .popup,
  .modal,
  .cookie-banner,
  .loading-message,
  .status-message,
  .affiliate-disclosure,
  .gear-grid,
  .ingredients-grid,
  .products-grid,
  .featured-products,
  .learn-cta,
  .page-hero__image,
  .story-image,
  .mission-image,
  .feature-icon,
  .no-print,
  [data-no-print] {
    display: none !important;
  }

  /* ---------------------------------------------------------
     Print branding
     --------------------------------------------------------- */

  .print-header,
  .print-footer {
    display: block !important;
  }

  .print-header {
    position: relative;
    margin: 0 0 24pt;
    padding: 0 0 12pt;
    border-bottom: 2pt solid #c62828;
  }

  .print-header__brand {
    display: flex;
    align-items: center;
    gap: 10pt;
  }

  .print-header__mark {
    font-size: 23pt;
    line-height: 1;
  }

  .print-header__name {
    margin: 0;
    color: #111 !important;
    font-size: 17pt;
    font-weight: 800;
    line-height: 1.05;
  }

  .print-header__tagline {
    margin: 4pt 0 0;
    color: #555 !important;
    font-size: 8.5pt;
  }

  .print-header__url {
    position: absolute;
    top: 2pt;
    right: 0;
    margin: 0;
    color: #c62828 !important;
    font-size: 8.5pt;
    font-weight: 700;
  }

  .print-footer {
    margin: 28pt 0 0;
    padding: 13pt 0 0;
    border-top: 1pt solid #bbb;
    color: #444 !important;
    font-size: 8.5pt;
  }

  .print-footer__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18pt;
  }

  .print-footer p {
    margin: 0 0 5pt;
  }

  .print-footer strong {
    color: #111 !important;
  }

  .print-assessment-cta {
    padding: 9pt 11pt;
    border: 1.5pt solid #c62828;
    border-radius: 6pt;
    color: #111 !important;
  }

  .print-assessment-cta__title {
    display: block;
    margin-bottom: 3pt;
    color: #c62828 !important;
    font-size: 10pt;
    font-weight: 800;
  }

  .print-assessment-cta__url {
    display: block;
    margin-top: 4pt;
    font-weight: 700;
  }

  /* ---------------------------------------------------------
     Typography
     --------------------------------------------------------- */

  h1,
  h2,
  h3,
  h4 {
    color: #111 !important;
    font-family:
      Arial,
      Helvetica,
      sans-serif;
    break-after: avoid;
    page-break-after: avoid;
  }

  h1 {
    margin: 0 0 10pt;
    font-size: 25pt;
    line-height: 1.08;
    letter-spacing: -0.02em;
  }

  h2 {
    margin: 20pt 0 8pt;
    font-size: 17pt;
    line-height: 1.15;
  }

  h3 {
    margin: 14pt 0 6pt;
    font-size: 12.5pt;
    line-height: 1.2;
  }

  h4 {
    margin: 11pt 0 5pt;
    font-size: 10.5pt;
  }

  p {
    margin: 0 0 8pt;
    orphans: 3;
    widows: 3;
  }

  .eyebrow,
  .guide-category,
  .recipe-category,
  .gear-category,
  .ingredients-category {
    display: block;
    margin: 0 0 4pt;
    color: #c62828 !important;
    font-size: 8pt;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
  }

  .accent-line {
    width: 38pt !important;
    height: 3pt !important;
    margin: 8pt 0 12pt !important;
    background: #c62828 !important;
    border: 0 !important;
  }

  /* ---------------------------------------------------------
     Page heroes
     --------------------------------------------------------- */

  .page-hero {
    display: block !important;
    min-height: 0 !important;
    margin: 0 0 22pt !important;
    padding: 0 0 15pt !important;
    background: #fff !important;
    border-bottom: 1pt solid #ccc;
  }

  .page-hero__content {
    display: block !important;
  }

  .page-hero p {
    max-width: none !important;
    font-size: 10.5pt;
  }

  /* ---------------------------------------------------------
     Links
     --------------------------------------------------------- */

  a,
  a:visited {
    color: #111 !important;
    text-decoration: underline;
    text-decoration-thickness: 0.5pt;
    text-underline-offset: 1.5pt;
  }

  /*
   * Show external URLs in general content.
   * Suppress URLs for internal navigation-style links.
   */
  main a[href^="http"]::after {
    content: " (" attr(href) ")";
    color: #555 !important;
    font-size: 7.5pt;
    font-weight: 400;
    overflow-wrap: anywhere;
  }

  main a[href^="https://thebestpizza.shop"]::after,
  main a[href^="/"]::after,
  main a[href^="#"]::after,
  main a[href^="mailto:"]::after,
  main a[href^="tel:"]::after,
  .no-print-url::after {
    content: "" !important;
  }

  /* ---------------------------------------------------------
     Lists and recipe instructions
     --------------------------------------------------------- */

  ul,
  ol {
    margin: 6pt 0 12pt;
    padding-left: 22pt;
  }

  li {
    margin: 0 0 5pt;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  ol li::marker {
    font-weight: 700;
  }

  /* ---------------------------------------------------------
     Tables
     --------------------------------------------------------- */

  table {
    width: 100% !important;
    margin: 10pt 0 16pt;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    font-size: 9.5pt;
  }

  thead {
    display: table-header-group;
  }

  tfoot {
    display: table-footer-group;
  }

  tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  th,
  td {
    padding: 6pt 7pt !important;
    border: 0.75pt solid #999 !important;
    background: #fff !important;
    color: #111 !important;
    text-align: left;
    vertical-align: top;
  }

  th {
    background: #eee !important;
    font-weight: 800;
  }

  th:not(:first-child),
  td:not(:first-child) {
    text-align: right;
  }

  /* ---------------------------------------------------------
     Recipe pages
     --------------------------------------------------------- */

  .recipe-page {
    font-size: 10pt;
  }

  .recipe-card {
    margin: 0 0 18pt !important;
    padding: 0 !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    break-inside: auto;
    page-break-inside: auto;
  }

  .recipe-card h2 {
    padding-bottom: 5pt;
    border-bottom: 1.5pt solid #c62828;
  }

  .recipe-card .note,
  .note {
    margin: 10pt 0;
    padding: 9pt 11pt;
    background: #f4f4f4 !important;
    border: 1pt solid #bbb;
    border-left: 3pt solid #c62828;
    border-radius: 0;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .recipe-table {
    break-inside: auto;
    page-break-inside: auto;
  }

  .recipe-meta,
  .recipe-summary,
  .recipe-yield {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* ---------------------------------------------------------
     Dough calculator
     --------------------------------------------------------- */

  .calculator-grid {
    display: block !important;
  }

  .calculator-panel {
    display: none !important;
  }

  .results-panel {
    display: block !important;
    position: static !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .results-heading {
    margin-bottom: 12pt;
    padding-bottom: 10pt;
    border-bottom: 1.5pt solid #c62828;
  }

  .total-dough {
    display: flex !important;
    justify-content: space-between;
    margin: 10pt 0 14pt !important;
    padding: 8pt 10pt !important;
    background: #eee !important;
    border: 1pt solid #aaa;
    border-radius: 0 !important;
    color: #111 !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .ingredient-results {
    margin: 0 0 14pt;
  }

  .ingredient-results > div {
    display: grid !important;
    grid-template-columns: 1fr auto;
    gap: 14pt;
    padding: 6pt 4pt !important;
    border-bottom: 0.75pt solid #bbb !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .ingredient-results dt,
  .ingredient-results dd {
    margin: 0;
  }

  .ingredient-results dd {
    text-align: right;
  }

  .ingredient-results small {
    display: block;
    color: #555 !important;
    font-size: 7.5pt;
  }

  .formula-notes {
    margin-top: 12pt;
    padding: 8pt 10pt;
    background: #f5f5f5 !important;
    border-left: 3pt solid #c62828;
    color: #333 !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /*
   * Optional classes for calculator content you may add later.
   */
  .calculator-print-summary,
  .fermentation-timeline,
  .mixing-instructions {
    display: block !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* ---------------------------------------------------------
     Content cards
     --------------------------------------------------------- */

  .feature-grid,
  .guide-grid,
  .learn-hub-grid,
  .story-grid {
    display: block !important;
  }

  .feature-card,
  .guide-card,
  .learn-hub-card {
    display: block !important;
    margin: 0 0 13pt !important;
    padding: 10pt 12pt !important;
    background: #fff !important;
    border: 1pt solid #bbb !important;
    border-radius: 0 !important;
    color: #111 !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* ---------------------------------------------------------
     Images
     --------------------------------------------------------- */

  img {
    max-width: 100% !important;
    height: auto !important;
  }

  /*
   * Most decorative images are hidden above. Add .print-image to any
   * instructional image that should remain in a printed recipe or guide.
   */
  img.print-image,
  figure.print-image {
    display: block !important;
    max-width: 5.5in !important;
    margin: 10pt auto !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  figure.print-image figcaption {
    margin-top: 4pt;
    color: #555 !important;
    font-size: 8pt;
    text-align: center;
  }

  /* ---------------------------------------------------------
     Page-break utilities
     --------------------------------------------------------- */

  h1,
  h2,
  h3,
  table,
  thead,
  .note,
  .feature-card,
  .guide-card,
  .print-assessment-cta {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .print-break-before {
    break-before: page;
    page-break-before: always;
  }

  .print-break-after {
    break-after: page;
    page-break-after: always;
  }

  .print-avoid-break {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* ---------------------------------------------------------
     Accessibility / cleanup
     --------------------------------------------------------- */

  [hidden] {
    display: none !important;
  }

  abbr[title]::after {
    content: " (" attr(title) ")";
  }
}

/* Hide print-only branding on screen. */
@media screen {
  .print-header,
  .print-footer,
  .print-only {
    display: none !important;
  }
}