/*
Theme Name: David Nortman
Description: Block theme for David Nortman, N.D. (naturopathic practice) and Mappa Mundi (YouTube channel). Work Sans and IM Fell English are bundled.
Version: 1.0.1
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: david-nortman
*/

/* Layout rhythm: sections are full-width bands, no gaps between them */
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-block-post-content > * { margin-block-start: 0; margin-block-end: 0; }
.sec { padding: 48px clamp(20px, 5vw, 64px); }
.sec.hero { padding: 44px clamp(20px, 5vw, 64px) 52px; }
.sec.cards { padding-top: 0; padding-bottom: 48px; }
.sec.cta { padding-top: 0; padding-bottom: 56px; }
.band { background: var(--wp--preset--color--band); border-top: 1px solid rgba(15,45,58,.18); border-bottom: 1px solid rgba(15,45,58,.18); }
.sec .wp-block-columns { gap: 48px; margin-bottom: 0; }
.sec.cards .wp-block-columns { gap: 20px; align-items: stretch; }
.sec.cards .wp-block-column { display: flex; flex-direction: column; }
.sec.cards .wp-block-column > .card { flex: 1; }

/* Typography helpers */
.eyebrow { font-size: 13px; font-weight: 600; text-transform: uppercase; color: var(--wp--preset--color--green); margin: 0; }
.lead { font-size: 19px; }
.tagline { font-family: var(--wp--preset--font-family--im-fell-english); font-size: 30px; line-height: 1.15; text-wrap: balance; }
.hero-xl { font-size: clamp(52px, 7vw, 76px) !important; line-height: 1 !important; text-wrap: balance; }
.hero-lg { font-size: clamp(40px, 5.5vw, 64px) !important; line-height: 1.02 !important; text-wrap: balance; }
.note { font-size: 15px; margin: 0; }
.placeholder-note { color: var(--wp--preset--color--green); font-size: 14px; }
.more { font-weight: 600; margin: 0; }
.more a { color: var(--wp--preset--color--green); text-decoration: none; }
.more a:hover { text-decoration: underline; }
.longform { font-size: 18px; max-width: 700px; }
.sec h2, .sec h3 { text-wrap: balance; }

/* Cards and boxes */
.card { background: var(--wp--preset--color--band); border: 1px solid rgba(15,45,58,.18); border-radius: 12px; padding: 32px; }
.card.has-rose-background-color { background: var(--wp--preset--color--rose); }
.card-title { font-size: 30px !important; line-height: 1.1 !important; margin: 0; }
.cards .card-title { font-size: 36px !important; line-height: 1.08 !important; }
.cta-box { padding: 36px; gap: 20px; }
.cta-box .card-title { font-size: 32px !important; }
.cta-line { gap: 14px 20px; }
.cta-line .wp-block-buttons { margin: 0; }

/* Gold-ruled columns (credentials, "How I work", etc.) */
.ruled-row { gap: 28px; }
.ruled { border-top: 2px solid var(--wp--preset--color--gold); padding-top: 14px; }
.ruled-title { font-size: 26px !important; line-height: 1.2 !important; margin: 0 0 8px !important; }

/* Portrait frame (replace the placeholder image with your photo) */
.portrait-col { padding: 8px; }
.portrait-frame { margin: 0; padding: 8px; max-width: 400px; }
.portrait-frame img { width: 100%; height: auto; display: block; background: var(--wp--preset--color--sand);
  border: 1px solid var(--wp--preset--color--gold); outline: 1px solid var(--wp--preset--color--gold); outline-offset: 8px;
  border-radius: 12px; }

/* Outline button */
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--black);
  border: 1px solid var(--wp--preset--color--ink); padding: 13px 28px; }

/* Plain ruled list */
.rowlist { list-style: none; margin: 0; padding: 0; }
.rowlist li { padding: 14px 0; border-top: 1px solid rgba(15,45,58,.25); }
.rowlist li:last-child { border-bottom: 1px solid rgba(15,45,58,.25); }

/* YouTube embed */
.wp-block-embed { margin: 0; }
.wp-block-embed iframe { border-radius: 12px; }

/* Header */
.hd { background: var(--wp--preset--color--sage); color: #000; padding: 16px clamp(20px, 5vw, 64px);
  border-bottom: 1px solid rgba(15,45,58,.18); gap: 12px 20px; }
.hd .wp-block-site-title { margin: 0; font-family: var(--wp--preset--font-family--im-fell-english); font-size: 31px; font-weight: 400; line-height: 1.55; }
.hd .wp-block-site-title a { text-decoration: none; color: #000; }
.hd-nav { font-size: 18px; font-weight: 500; }
.hd-nav .wp-block-navigation__container, .hd-nav .wp-block-page-list { gap: 0; flex-wrap: wrap; }
.hd-nav .wp-block-navigation-item a { color: #000; text-decoration: none; padding: 0; }
.hd-nav .wp-block-navigation-item + .wp-block-navigation-item::before { content: "\00B7"; margin: 0 7px; color: #000; }
.hd-nav .current-menu-item > a { text-decoration: underline; text-underline-offset: 6px; }

/* Footer */
.ft { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--footer-text); padding: 22px clamp(20px, 5vw, 64px); gap: 12px 20px; font-size: 15px; }
.ft .wp-block-site-title { margin: 0; font-family: var(--wp--preset--font-family--im-fell-english); font-size: 22px; font-weight: 400; }
.ft .wp-block-site-title a { color: var(--wp--preset--color--footer-text); text-decoration: none; }
.ft .wp-block-social-links .wp-social-link, .ft .wp-block-social-links .wp-social-link a { color: var(--wp--preset--color--footer-text) !important; }
.ft .wp-block-social-links { gap: 18px; }

/* Phones */
@media (max-width: 640px) {
  .hd { padding: 12px 16px; gap: 4px 16px; }
  .hd .wp-block-site-title { font-size: 26px; }
  .hd-nav { font-size: 14.5px; }
  .hd-nav .wp-block-navigation-item + .wp-block-navigation-item::before { margin: 0 3px; }
  .hd-nav .wp-block-navigation-item a { white-space: nowrap; }
  .sec .wp-block-columns { gap: 28px; }
  .card { padding: 24px; }
  .cta-box { padding: 28px; }
}
