/*
This stylesheet loads in two places simultaneously: the frontend of your site AND inside the block editor.
That's the key difference from a regular stylesheet.
It means what you see while editing in the CMS matches exactly what visitors see on the live site.
Regular CSS enqueued with wp_enqueue_style only loads on the frontend.
*/
/* Strips browser styling */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* CATEGORY: 2025 stylings */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}

/*
 * Prevents unnecessary scrollbars while handling long lines of preformatted text.
 * https://core.trac.wordpress.org/ticket/63875
 */
:where(pre) {
	overflow-x: auto;
}

/* CATEGORY: Typography stylings */
@font-face {
    font-family: 'Geist';
    src: url('./assets/fonts/Geist-Regular.ttf') format('ttf');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Geist';
    src: url('./assets/fonts/Geist-Medium.woff2') format('ttf');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* Base typography */
body {
    font-family: 'Geist', sans-serif;
}

/* Paragraph type scale */
:root {
    --font-size-display-large:  clamp(56px, 6vw, 128px);
    --font-size-display-medium: clamp(40px, 4vw, 64px);
    --font-size-display-small:  clamp(28px, 3vw, 40px);
    --font-size-large:          clamp(24px, 4vw, 64px);
    --font-size-medium:         clamp(20px, 3vw, 40px);
    --font-size-small:          clamp(14px, 2vw, 24px);
}

.is-display-large  { font-size: var(--font-size-display-large);  font-weight: 700; line-height: 1.1; }
.is-display-medium { font-size: var(--font-size-display-medium); font-weight: 700; line-height: 1.2; }
.is-display-small  { font-size: var(--font-size-display-small);  font-weight: 700; line-height: 1.3; }

p, .wp-block-paragraph         { font-size: var(--font-size-small); }
p.large,  .wp-block-paragraph.large  { font-size: var(--font-size-large); }
p.medium, .wp-block-paragraph.medium { font-size: var(--font-size-medium); }
p.small,  .wp-block-paragraph.small  { font-size: var(--font-size-small); }

/* CATEGORY: Patterns */

/* =====================
   PROFILE CARD
   ===================== */

:root {
    --profile-image-size: clamp(120px, 20vw, 200px);
    --profile-preferred-width: 450px;
    --team-gap: clamp(24px, 4vw, 60px);
}

.profile-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: var(--profile-preferred-width);
    max-width: 100%;
    margin: 0;
    padding: 0 0 5% 0;
}

.profile-image {
    width: var(--profile-image-size);
    height: var(--profile-image-size);
    flex-shrink: 0;
    margin: 0;
}

.profile-image img {
    width: 100%;
    height: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 100%;
    display: block;
}

.profile-text {
    width: 100%;
    box-sizing: border-box;
}

.profile-name {
    width: max-content;
    max-width: 100%;
    margin: 16px 0 0;
    font-weight: 700;
    text-align: left;
}

.profile-title {
    width: max-content;
    max-width: 100%;
    margin: 14px 0 0;
    font-weight: 700;
    text-align: left;
}

.profile-detail {
    width: 100%;
    margin: 12px 0 0;
    text-align: left;
    white-space: normal;
    overflow-wrap: break-word;
    box-sizing: border-box;
}

/* =====================
   OUR TEAM
   ===================== */

.team-section {
    display: flex;
    justify-content: center;
    width: 100%;
}

.team-section__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: fit-content;
    max-width: 100%;
}

.team-section__heading {
    width: 100%;
    text-align: center;
    margin-bottom: clamp(24px, 4vw, 48px);
    padding-top: 1rem;
    font-weight: 700;
}

.team-section__columns {
    display: flex;
    flex-wrap: wrap;
    gap: var(--team-gap);
    align-items: flex-start;
    align-content: flex-start;
    /* 3 columns + 2 gaps */
    width: calc(3 * var(--profile-preferred-width) + 2 * var(--team-gap));
    max-width: 100%;
    box-sizing: border-box;
}

.team-section__column {
    flex: 0 0 var(--profile-preferred-width);
    max-width: 100%;
    box-sizing: border-box;
    align-self: flex-start;
}

/* =====================
   RESPONSIVE
   ===================== */

@media (max-width: 1000px) {
    .team-section__columns {
        /* 2 columns + 1 gap, centered */
        width: calc(2 * var(--profile-preferred-width) + 1 * var(--team-gap));
        justify-content: center;
    }
}

@media (max-width: 600px) {
    .team-section__columns {
        width: 100%;
        flex-direction: column;
        align-items: center;
    }

    .team-section__column {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* Begin square-image-text */
.square-image-layout {
    display: flex;
    padding: 50px 0 50px 0;
}

.square-image-content {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: clamp(24px, 3vw, 48px);
    padding: 0;
}

.square-image {
    flex-shrink: 0;
    margin: 0;
}

.square-image img {
    width: clamp(200px, 25vw, 256px);
    height: clamp(200px, 25vw, 256px);
    object-fit: cover;
    border-radius: 20px;
    display: block;
}

.square-image-text {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0;
    padding: 0;
}

.square-image-text p {
    margin: 0;
}

/* When content wraps, both image and text are centered */
@media (max-width: 600px) {
    .square-image-content {
        flex-direction: column;
        align-items: center;
        gap: 0;
    }

    .square-image-text {
        text-align: center;
        align-items: center;
        padding: 10px 0 10px 0;
    }
}
/* End square-image-text */

/* BEGIN text-link */
.cta-block {
    gap: 1rem;
}

.cta-link {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.cta-link a {
    text-decoration: none;
}

.cta-link a:hover {
    text-decoration: underline;
    text-decoration-thickness: 5px !important;
    text-underline-offset: 5px !important;
}

/* Show break only where the line fits on one line without 'price' */
@media (max-width: 600px) {
    .price-break {
        display: none;
    }
}
/* END text-link */

/* =====================
   whatever these are
   ===================== */

.text-block {
    width: 100%;
    max-width: 120ch; /* never wider than ~2/3? of typical reading width */
}

.text-block__heading {
    padding-bottom: 1rem;
}

.media-text {
    display: flex;
    flex-direction: row;
    align-items: flex-start; /*center */
    justify-content: space-between;
    padding: 30px;
    gap: clamp(0px, 4vw, 10%);
}

.media-text__image {
    width: clamp(160px, 45vw, 50%);
    flex-shrink: 0;
}

.media-text__image img {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 12px;
    display: block;
}

.media-text__body {
    flex: 1;
    min-width: 0;
    align-self: flex-start; 
}

/* reverse */
.media-text--reverse {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    padding: 30px;
    gap: clamp(16px, 4vw, 10%);
    justify-content: flex-end;
}

.media-text--reverse__image {
    width: clamp(160px, 45vw, 50%);
    flex-shrink: 0;
}

.media-text--reverse__image img {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 12px;
    display: block;
}

.media-text--reverse__body {
    min-width: 0;
    align-self: flex-start;
}

@media (max-width: 600px) {
    .media-text,
    .media-text--reverse {
        flex-direction: column;
        align-items: center;
    }

    .media-text__image,
    .media-text--reverse__image {
        width: 100%;
    }
}

.text-block-2__item {
    width: 100%;
    max-width: 120ch; /* never wider than ~2/3? of typical reading width */
}

.text-block-2 {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: clamp(24px, 3vw, 48px);
    padding: 0;
}

.text-block-2 {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(24px, 4vw, 64px);
    align-items: flex-start;
    padding-bottom: 20px;
}

.text-block-2__item {
    flex: 1 1 40ch; /* grow and shrink, but never below 40ch */
    min-width: 0;
}

.text-block-tier-three__heading {
    padding-bottom: 2rem;
}

.text-block-tier-three__body-2 {
    padding-bottom: 1rem;
    width: 100%;
    max-width: 25ch; /* never wider than ~2/3? of typical reading width */
}

.text-block-tier-three__body {
    width: 100%;
    max-width: 50ch; /* never wider than ~2/3? of typical reading width */
}

/* design layout helpers */
body {
    background-color: red;
    padding: 32px;
}

.wp-site-blocks {
    background-color: white;
    /* no padding needed here */
}

.wp-block-group[class*="wp-block"] {
    outline: 1px solid #000;
}