/*
Theme Name: Did You Practise
Theme URI: https://didyoupractise.com
Author: Did You Practice
Description: A deliberately simple, text-first block theme.
Version: 0.1.22
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: didyoupractice
*/
html{scroll-behavior:smooth}body{text-rendering:optimizeLegibility}a{text-underline-offset:.18em}
.wp-site-blocks{min-height:100vh}.nfttr-kicker{letter-spacing:.16em;text-transform:uppercase}
.nfttr-post-row{border-top:1px solid var(--wp--preset--color--line);padding-top:1.65rem;margin-top:1.65rem}
.nfttr-meta{letter-spacing:.08em;text-transform:uppercase}.nfttr-footer{border-top:1px solid var(--wp--preset--color--line);margin-top:5rem;padding-top:2rem}
@media(max-width:700px){.nfttr-hero{padding-top:2.25rem!important}.nfttr-hero h1{font-size:clamp(2.1rem,10vw,3rem)!important}.nfttr-post-row{padding-top:1.35rem;margin-top:1.35rem}.nfttr-footer{margin-top:3rem}}


/* 0.1.1 — editorial proportions */
:root { --nfttr-site-max: 1500px; }

.wp-site-blocks > header > .wp-block-group,
.wp-site-blocks > footer > .wp-block-group {
  width: min(calc(100% - 80px), var(--nfttr-site-max));
  margin-left: auto !important;
  margin-right: auto !important;
}

.wp-site-blocks > main {
  width: min(calc(100% - 80px), var(--nfttr-site-max));
  max-width: none !important;
  margin-left: auto;
  margin-right: auto;
}

.wp-site-blocks > main > .nfttr-hero,
.wp-site-blocks > main > .wp-block-separator,
.wp-site-blocks > main > h2,
.wp-site-blocks > main > .wp-block-query {
  width: 100%;
  max-width: none !important;
}

.nfttr-hero {
  padding-top: 2.25rem !important;
  padding-bottom: 2rem !important;
}

.nfttr-hero h1 {
  max-width: 1180px;
  font-size: clamp(2rem, 2.45vw, 2.55rem) !important;
  line-height: 1.13 !important;
  letter-spacing: -0.015em;
}

.nfttr-hero p {
  max-width: 900px;
  font-size: clamp(1.05rem, 1.15vw, 1.18rem) !important;
  line-height: 1.55 !important;
}

header .wp-block-site-title {
  font-size: clamp(1.65rem, 2.1vw, 2.15rem) !important;
}

header .nfttr-kicker {
  margin-top: .55rem;
}

.wp-block-query .nfttr-post-row {
  max-width: 980px;
}

body.single main,
body.page:not(.home) main,
body.archive main,
body.search main {
  max-width: 860px !important;
}

@media (max-width: 800px) {
  .wp-site-blocks > header > .wp-block-group,
  .wp-site-blocks > footer > .wp-block-group,
  .wp-site-blocks > main {
    width: calc(100% - 40px);
  }

  .nfttr-hero {
    padding-top: 2rem !important;
    padding-bottom: 1.5rem !important;
  }

  .nfttr-hero h1 {
    font-size: clamp(2rem, 8.8vw, 2.75rem) !important;
    line-height: 1.08 !important;
  }

  .nfttr-hero p {
    font-size: 1.05rem !important;
  }

  header .wp-block-site-title {
    font-size: 1.55rem !important;
  }
}

@media (max-width: 420px) {
  .wp-site-blocks > header > .wp-block-group,
  .wp-site-blocks > footer > .wp-block-group,
  .wp-site-blocks > main {
    width: calc(100% - 32px);
  }

  .nfttr-hero h1 {
    font-size: 2rem !important;
  }
}


/* 0.1.2 — content/navigation refinement */
.nfttr-topics {
  margin-top: .35rem;
  margin-bottom: 2rem;
  padding-bottom: 1.35rem;
  border-bottom: 1px solid var(--wp--preset--color--line);
}
.nfttr-topics a {
  font-size: .92rem;
  text-decoration: none;
}
.nfttr-topics a:hover,
.nfttr-topics a:focus-visible,
.wp-block-post-title a:hover,
.wp-block-post-title a:focus-visible {
  text-decoration: underline;
}
.wp-block-query .nfttr-post-row {
  max-width: 1060px;
}
.nfttr-meta {
  gap: .7rem !important;
  font-size: .76rem !important;
}
.nfttr-meta .wp-block-post-terms a {
  color: var(--wp--preset--color--muted);
}
.nfttr-post-row .wp-block-post-title {
  margin-top: .7rem;
  margin-bottom: .45rem;
}
.nfttr-post-row .wp-block-post-excerpt {
  margin-top: 0;
}
.nfttr-post-row .wp-block-post-excerpt__excerpt {
  max-width: 850px;
  margin-bottom: .55rem;
}
.nfttr-post-row .wp-block-post-excerpt__more-text {
  margin-top: .45rem;
}
@media (max-width: 700px) {
  .nfttr-topics {
    gap: .65rem 1rem !important;
    align-items: flex-start !important;
  }
  .nfttr-topics a {
    font-size: .9rem;
  }
  .nfttr-meta {
    gap: .45rem .65rem !important;
  }
}


/* 0.1.3 — topic bar alignment */
.wp-site-blocks > main > .nfttr-topics {
  width: 100%;
  max-width: 1060px !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  margin-top: .25rem !important;
  margin-bottom: 1.7rem !important;
  padding-bottom: 1.35rem;
  justify-content: flex-start !important;
}

.nfttr-topics p {
  margin: 0;
}

.nfttr-topics .nfttr-all-posts a {
  display: inline-block;
  padding: .42rem .72rem;
  background: var(--wp--preset--color--ink);
  color: var(--wp--preset--color--paper);
  border-radius: 4px;
  line-height: 1.2;
}

@media (max-width: 700px) {
  .wp-site-blocks > main > .nfttr-topics {
    margin-top: 0 !important;
    margin-bottom: 1.45rem !important;
    padding-bottom: 1.1rem;
  }
}


/* 0.1.4 — deliberate header/navigation */
.nfttr-header-nav {
  gap: 1.35rem !important;
}
.nfttr-header-nav .wp-block-navigation-item__content {
  font-size: .95rem;
  text-decoration: none;
}
.nfttr-header-nav .wp-block-navigation-item__content:hover,
.nfttr-header-nav .wp-block-navigation-item__content:focus-visible {
  text-decoration: underline;
}
.nfttr-header-nav .wp-block-navigation__submenu-container {
  min-width: 180px !important;
  padding: .45rem !important;
  border: 1px solid var(--wp--preset--color--line) !important;
  background: var(--wp--preset--color--paper) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.nfttr-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: .5rem .65rem !important;
}
.nfttr-search .wp-block-search__inside-wrapper {
  padding: 0;
  border: 0;
}
.nfttr-search .wp-block-search__button {
  margin: 0;
  padding: .45rem;
  background: transparent;
  color: var(--wp--preset--color--ink);
}
.nfttr-search .wp-block-search__button svg {
  width: 22px;
  height: 22px;
}
@media (max-width: 700px) {
  .nfttr-header-nav .wp-block-navigation__responsive-container.is-menu-open {
    padding: 1.25rem 1.25rem 2rem;
    background: var(--wp--preset--color--paper);
    color: var(--wp--preset--color--ink);
  }
  .nfttr-header-nav .wp-block-navigation__responsive-container-content {
    align-items: flex-start !important;
  }
  .nfttr-header-nav .wp-block-navigation__container {
    gap: .75rem !important;
    align-items: flex-start !important;
  }
}


/* 0.1.5 — compact header search + dropdown polish */
.nfttr-header-actions {
  position: relative;
  gap: .55rem !important;
}

.nfttr-header-nav .wp-block-navigation__submenu-container {
  min-width: 168px !important;
  padding: .3rem !important;
  border-radius: 4px;
}

.nfttr-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: .38rem .55rem !important;
  line-height: 1.35;
}

.nfttr-search-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--wp--preset--color--ink);
  padding: .35rem;
  margin: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}

.nfttr-search-toggle:hover,
.nfttr-search-toggle:focus-visible {
  background: rgba(0,0,0,.055);
}

.nfttr-search-toggle svg {
  width: 20px;
  height: 20px;
  display: block;
}

.nfttr-search-panel {
  display: none;
  position: absolute;
  z-index: 50;
  right: 0;
  top: calc(100% + .75rem);
  width: min(360px, calc(100vw - 40px));
  padding: .65rem;
  background: var(--wp--preset--color--paper);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

.nfttr-search-panel.is-open {
  display: block;
}

.nfttr-search-panel form {
  display: flex;
  gap: .45rem;
}

.nfttr-search-panel input[type="search"] {
  min-width: 0;
  width: 100%;
  padding: .62rem .7rem;
  border: 1px solid #aaa;
  border-radius: 4px;
  background: #fff;
  color: var(--wp--preset--color--ink);
  font: inherit;
}

.nfttr-search-panel button[type="submit"] {
  border: 0;
  border-radius: 4px;
  padding: .62rem .8rem;
  background: var(--wp--preset--color--ink);
  color: var(--wp--preset--color--paper);
  font: inherit;
  cursor: pointer;
}

@media (max-width: 700px) {
  .nfttr-search-toggle {
    padding: .4rem;
  }
  .nfttr-search-panel {
    position: fixed;
    top: 76px;
    right: 16px;
    left: 16px;
    width: auto;
  }
}


/* 0.1.6 — coherent editorial grid between homepage and articles */

/* Override the earlier centred article/page rule. */
body.single main,
body.page:not(.home) main {
  width: min(calc(100% - 80px), var(--nfttr-site-max));
  max-width: var(--nfttr-site-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Article contents share the homepage's left editorial axis,
   while retaining a comfortable reading measure. */
body.single main > *,
body.page:not(.home) main > * {
  width: 100%;
  max-width: 830px !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* Keep the single-post title restrained relative to the homepage hero. */
body.single main > .wp-block-post-title {
  font-size: clamp(2.7rem, 3.6vw, 3.5rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.018em;
  margin-top: .75rem;
  margin-bottom: 1.35rem;
}

/* Article body measure and rhythm. */
body.single .wp-block-post-content {
  max-width: 830px !important;
}

body.single .wp-block-post-content p,
body.single .wp-block-post-content li {
  line-height: 1.72;
}

body.single .wp-block-post-content h2 {
  margin-top: 2.2rem;
  margin-bottom: .8rem;
  font-size: clamp(1.55rem, 2vw, 1.9rem);
}

/* Archives/search remain intentionally narrower but use the same left axis. */
body.archive main,
body.search main {
  width: min(calc(100% - 80px), var(--nfttr-site-max));
  max-width: var(--nfttr-site-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.archive main > *,
body.search main > * {
  max-width: 1060px !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}

@media (max-width: 800px) {
  body.single main,
  body.page:not(.home) main,
  body.archive main,
  body.search main {
    width: calc(100% - 40px);
  }

  body.single main > .wp-block-post-title {
    font-size: clamp(2.35rem, 10vw, 3rem) !important;
  }
}

@media (max-width: 420px) {
  body.single main,
  body.page:not(.home) main,
  body.archive main,
  body.search main {
    width: calc(100% - 32px);
  }

  body.single main > .wp-block-post-title {
    font-size: 2.25rem !important;
  }
}

/* 0.1.9 — ordinary links in single-post body content only. */
body.single-post .wp-site-blocks > main > .wp-block-post-content a[href]:not(:where(
  header a, footer a, nav a, .wp-block-navigation a, .nfttr-topics a,
  .wp-block-post-title a, .nfttr-meta a, .wp-block-post-terms a,
  .wp-block-post-date a, .wp-block-post-excerpt a, .wp-block-query a,
  .wp-block-post-navigation-link a, .wp-block-read-more, .more-link,
  .wp-block-buttons a, .wp-block-button__link, .wp-element-button, [role="button"]
)) {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body.single-post .wp-site-blocks > main > .wp-block-post-content a[href]:not(:where(
  header a, footer a, nav a, .wp-block-navigation a, .nfttr-topics a,
  .wp-block-post-title a, .nfttr-meta a, .wp-block-post-terms a,
  .wp-block-post-date a, .wp-block-post-excerpt a, .wp-block-query a,
  .wp-block-post-navigation-link a, .wp-block-read-more, .more-link,
  .wp-block-buttons a, .wp-block-button__link, .wp-element-button, [role="button"]
)):is(:hover, :focus) {
  text-decoration-thickness: 2px;
}

/* Blog post images */

.single-post .wp-block-post-content .wp-block-image img {
    border: 1px solid #dedede;
    border-radius: 4px;
    box-sizing: border-box;
}

.single-post .wp-block-post-content .wp-block-image {
    margin-top: 1.75rem;
    margin-bottom: 1.75rem;
}

/* DYP — Links within articles and pages */

.single-post .wp-block-post-content a:not(.dyp-cta__link),
.page .wp-block-post-content a:not(.dyp-cta__link) {
    color: #087f86;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.15s ease, text-decoration-thickness 0.15s ease;
}

.single-post .wp-block-post-content a:not(.dyp-cta__link):hover,
.page .wp-block-post-content a:not(.dyp-cta__link):hover {
    color: #055b60;
    text-decoration-thickness: 2px;
}

.single-post .wp-block-post-content a:not(.dyp-cta__link):focus-visible,
.page .wp-block-post-content a:not(.dyp-cta__link):focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

/* ========================================
   DYP — Download cards
   ======================================== */

.dyp-download {
    margin: 2rem 0;
    padding: 1.75rem;
    background: #f7f8f8;
    border: 1px solid #dedede;
    border-radius: 6px;
}

.dyp-download__label {
    margin: 0 0 0.75rem;
    color: #666;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dyp-download__title {
    margin: 0 0 0.75rem;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.3;
}

.dyp-download__description {
    margin: 0 0 1.25rem;
    color: #444;
    line-height: 1.6;
}

.dyp-download__button {
    display: inline-block;
    padding: 0.8rem 1.25rem;
    background: #111;
    color: #fff !important;
    border: 1px solid #111;
    border-radius: 4px;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none !important;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.dyp-download__button:hover {
    background: #333;
    border-color: #333;
    color: #fff !important;
    text-decoration: none !important;
}

.dyp-download__button:focus-visible {
    outline: 3px solid #087f86;
    outline-offset: 3px;
}

@media (max-width: 600px) {
    .dyp-download {
        padding: 1.25rem;
    }

    .dyp-download__button {
        display: block;
        text-align: center;
    }
}
/* 0.1.14 — Homepage resources follow the article feed. */
.dyp-home-resources {
    width: 100%;
    max-width: 100% !important;
    margin: 2.5rem 0 0 !important;
    padding-top: 1.5rem;
    border-top: 1px solid var(--wp--preset--color--line, #ddd);
}
.dyp-home-resources > .wp-block-heading { margin-bottom: .5rem; }
.dyp-home-resource-grid { gap: 1.25rem; align-items: stretch; margin-top: 1.15rem; }
.dyp-home-resource-grid > .wp-block-column { display: flex; }
.dyp-home-resource-grid .dyp-download {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 1.2rem 1.35rem;
    display: flex;
    flex-direction: column;
}
.dyp-home-resource-grid .dyp-download__title { font-size: 1.2rem; }
.dyp-home-resource-grid .dyp-download__description { margin-bottom: .9rem; }
.dyp-home-resource-grid .dyp-download > p:last-child { margin-top: auto; margin-bottom: 0; }
.dyp-home-resource-grid .dyp-download__button { text-align: center; }
@media (max-width: 781px) {
    .dyp-home-resource-grid > .wp-block-column { display: block; }
}
@media (max-width: 600px) {
    .dyp-home-resource-grid .dyp-download { padding: 1.1rem; }
}

/* 0.1.15 — category introductions */
body.category .dyp-category-description {
  max-width: 760px;
  color: var(--wp--preset--color--muted, #555);
  font-size: clamp(1rem, 1.1vw, 1.125rem);
  line-height: 1.65;
  margin-top: 1rem;
  margin-bottom: 2.25rem;
}

/* 0.1.17 — Let the three homepage resource cards span the full content width.
   WordPress constrained layouts otherwise cap the Columns block at contentSize. */
.dyp-home-resources > .dyp-home-resource-grid {
    width: 100%;
    max-width: 100% !important;
    box-sizing: border-box;
}
.dyp-home-resource-grid > .wp-block-column {
    min-width: 0;
}

/* 0.1.18 — Centre the free-resources heading and introduction above the full-width cards. */
.dyp-home-resources > .wp-block-heading {
    text-align: center;
    max-width: 100% !important;
}
.dyp-home-resources > p {
    text-align: center;
    max-width: 44rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* 0.1.19 — Fourth free resource: maintain legible card widths on tablets. */
@media (min-width: 782px) and (max-width: 1100px) {
  .dyp-home-resource-grid { flex-wrap: wrap !important; }
  .dyp-home-resource-grid > .wp-block-column {
    flex: 0 0 calc(50% - .625rem) !important;
  }
}


/* 0.1.21 — Editorial introductions: serif type and restrained teal rule.
   Shared by homepage, category descriptions and optional About intro class. */
:root { --dyp-intro-accent: #168b94; }
.nfttr-hero h1 {
  font-family: var(--wp--preset--font-family--serif, Georgia, serif) !important;
  font-weight: 400 !important;
  font-size: clamp(1.65rem, 2vw, 2rem) !important;
  line-height: 1.4 !important;
  letter-spacing: -0.015em !important;
  max-width: 1100px;
  border-left: 3px solid var(--dyp-intro-accent);
  padding-left: 24px;
  box-sizing: border-box;
}
.nfttr-hero p {
  font-family: var(--wp--preset--font-family--sans, Arial, sans-serif);
  max-width: 900px;
}
/* Category title remains a normal serif editorial heading. */
body.category main > .wp-block-query-title,
body.category main > h1.wp-block-query-title,
body.category main > .wp-block-query-title h1 {
  font-family: var(--wp--preset--font-family--serif, Georgia, serif) !important;
  font-size: clamp(1.9rem, 3vw, 2.5rem) !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.015em !important;
}
body.category .dyp-category-description,
.dyp-editorial-intro {
  font-family: var(--wp--preset--font-family--serif, Georgia, serif) !important;
  font-size: clamp(1.15rem, 1.6vw, 1.55rem) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: -0.01em;
  color: var(--wp--preset--color--ink, #151515);
  border-left: 3px solid var(--dyp-intro-accent);
  padding-left: 24px;
  box-sizing: border-box;
  max-width: 850px;
}
@media (max-width: 800px) {
  .nfttr-hero h1 { font-size: clamp(1.6rem, 5vw, 1.9rem) !important; }
  .nfttr-hero h1, body.category .dyp-category-description, .dyp-editorial-intro {
    padding-left: 16px;
  }
}

/* 0.1.22: discreet support links; responsive, theme-native */
.nfttr-support{border-top:1px solid var(--wp--preset--color--line);padding-top:1.6rem;margin-top:2.5rem}
.nfttr-support h2{margin-top:0;margin-bottom:.55rem;font-size:clamp(1.2rem,2vw,1.45rem)}
.nfttr-support p{margin-top:0;margin-bottom:.8rem}
.nfttr-support a{font-weight:600;text-underline-offset:.2em}
.nfttr-footer-links{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center}
.nfttr-footer-links a{overflow-wrap:anywhere}
@media(max-width:700px){.nfttr-support{padding-top:1.3rem;margin-top:2rem}.nfttr-footer-links{gap:.65rem 1.1rem}}
