/* ====================================================================
   Creativelines — Page Blocks (frontend) — Phase 11
   ==================================================================== */

/* ============================================================
   HERO
   ============================================================ */

.pgb-hero {
    padding: clamp(3.5rem, 8vw, 7rem) 0 clamp(3rem, 6vw, 6rem);
    position: relative;
}
.pgb-hero--yellow {
    background: var(--cl-yellow);
    color: var(--cl-black);
}
.pgb-hero--black {
    background: var(--cl-black);
    color: white;
}
.pgb-hero--cream {
    background: color-mix(in srgb, var(--cl-yellow) 7%, var(--cl-bg));
    color: var(--cl-fg);
}
.pgb-hero--image {
    background-image: var(--cover);
    background-size: cover;
    background-position: center;
    color: white;
    position: relative;
}
.pgb-hero--image::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.65) 100%);
}
.pgb-hero--image > .cl-container { position: relative; z-index: 2; }

.pgb-hero--align-center .pgb-hero__inner {
    text-align: center;
    max-width: 760px;
    margin: 0 auto;
}
.pgb-hero--align-left .pgb-hero__inner {
    max-width: 820px;
}

.pgb-hero__eyebrow {
    display: inline-block;
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-weight: 700;
    margin-bottom: 1.25rem;
    padding: 0.3em 1em;
    border: 1px solid currentColor;
    border-radius: 999px;
    opacity: 0.9;
}

.pgb-hero__body h1,
.pgb-hero__body h2 {
    font-family: var(--font-display);
    font-size: clamp(2.2rem, 5.5vw, 4rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -0.035em;
    margin: 0 0 1rem;
    text-wrap: balance;
}
.pgb-hero__body p {
    font-size: clamp(1.05rem, 1.5vw, 1.25rem);
    line-height: 1.55;
    margin: 0 0 1em;
    opacity: 0.9;
}
.pgb-hero__cta { margin-top: 1.5rem; }


/* ============================================================
   TEXT
   ============================================================ */

.pgb-text { padding: clamp(2rem, 4vw, 3rem) 0; }
.pgb-text__body {
    font-size: clamp(1rem, 1.35vw, 1.15rem);
    line-height: 1.75;
    color: var(--cl-fg);
}
.pgb-text__body p { margin: 0 0 1.4em; }
.pgb-text__body h2 {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 2.5vw, 2rem);
    font-weight: 700;
    line-height: 1.2;
    margin: 2em 0 0.75em;
    letter-spacing: -0.025em;
}
.pgb-text__body h3 {
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 1.8vw, 1.45rem);
    font-weight: 600;
    margin: 1.5em 0 0.5em;
}
.pgb-text__body a {
    color: var(--cl-red);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.pgb-text__body ul,
.pgb-text__body ol {
    margin: 0 0 1.4em;
    padding-left: 1.5em;
}
.pgb-text__body li { margin-bottom: 0.4em; }
.pgb-text__body blockquote {
    border-left: 4px solid var(--cl-yellow);
    padding: 0.4em 0 0.4em 1.5em;
    margin: 1.5em 0;
    font-family: var(--font-display);
    font-style: italic;
    font-size: 1.15em;
    line-height: 1.45;
}


/* ============================================================
   TWO COLUMN
   ============================================================ */

.pgb-twocol { padding: clamp(2.5rem, 5vw, 4rem) 0; }
.pgb-twocol__head {
    max-width: 760px;
    margin: 0 0 2.5rem;
}
.pgb-twocol__heading {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3vw, 2.25rem);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.025em;
    margin: 0 0 0.5rem;
}
.pgb-twocol__intro {
    font-size: clamp(1rem, 1.3vw, 1.1rem);
    color: var(--cl-fg-muted);
    line-height: 1.55;
}
.pgb-twocol__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 4vw, 3.5rem);
}
@media (max-width: 720px) { .pgb-twocol__grid { grid-template-columns: 1fr; } }
.pgb-twocol__col {
    font-size: var(--fs-md);
    line-height: 1.7;
}
.pgb-twocol__col p { margin: 0 0 1.2em; }
.pgb-twocol__col h3 {
    font-family: var(--font-display);
    font-size: 1.2em;
    font-weight: 600;
    margin: 0 0 0.6em;
}


/* ============================================================
   IMAGE
   ============================================================ */

.pgb-image { padding: clamp(2rem, 4vw, 3rem) 0; }
.pgb-image--full { padding: 0; margin: clamp(2rem, 4vw, 3rem) 0; }
.pgb-image__fig { margin: 0; }
.pgb-image__fig img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--r-md);
}
.pgb-image--full .pgb-image__fig img { border-radius: 0; }
.pgb-image__caption {
    margin-top: 0.85rem;
    font-size: var(--fs-sm);
    color: var(--cl-fg-muted);
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}
.pgb-image__credit { color: var(--cl-fg-subtle); font-style: italic; }


/* ============================================================
   GALLERY
   ============================================================ */

.pgb-gallery { padding: clamp(2rem, 4vw, 3rem) 0; }
.pgb-gallery__grid {
    display: grid;
    gap: 1rem;
}
.pgb-gallery--cols-2 .pgb-gallery__grid { grid-template-columns: repeat(2, 1fr); }
.pgb-gallery--cols-3 .pgb-gallery__grid { grid-template-columns: repeat(3, 1fr); }
.pgb-gallery--cols-4 .pgb-gallery__grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 700px) {
    .pgb-gallery--cols-3 .pgb-gallery__grid,
    .pgb-gallery--cols-4 .pgb-gallery__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .pgb-gallery--cols-2 .pgb-gallery__grid,
    .pgb-gallery--cols-3 .pgb-gallery__grid,
    .pgb-gallery--cols-4 .pgb-gallery__grid { grid-template-columns: 1fr; }
}
.pgb-gallery__item {
    margin: 0;
    aspect-ratio: 4 / 3;
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--admin-surface-2);
}
.pgb-gallery__item img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.pgb-gallery__caption {
    margin-top: 1rem;
    text-align: center;
    font-size: var(--fs-sm);
    color: var(--cl-fg-muted);
}


/* ============================================================
   STATS
   ============================================================ */

.pgb-stats {
    padding: clamp(2.5rem, 5vw, 4rem) 0;
    background: color-mix(in srgb, var(--cl-yellow) 6%, var(--cl-bg));
    text-align: center;
}
.pgb-stats__heading {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 2.5vw, 2rem);
    font-weight: 700;
    margin: 0 0 2.5rem;
    letter-spacing: -0.025em;
}
.pgb-stats__grid {
    display: grid;
    gap: clamp(1.5rem, 4vw, 3rem);
}
.pgb-stats__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.pgb-stats__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.pgb-stats__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 700px) {
    .pgb-stats__grid--cols-3,
    .pgb-stats__grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
}
.pgb-stats__item {}
.pgb-stats__num {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 700;
    line-height: 1;
    color: var(--cl-red);
    letter-spacing: -0.035em;
}
.pgb-stats__lab {
    margin-top: 0.5rem;
    font-size: var(--fs-sm);
    color: var(--cl-fg-muted);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
}


/* ============================================================
   CTA
   ============================================================ */

.pgb-cta { padding: clamp(3rem, 6vw, 5rem) 0; }
.pgb-cta--yellow {
    background: var(--cl-yellow);
    color: var(--cl-black);
}
.pgb-cta--black {
    background: var(--cl-black);
    color: white;
}
.pgb-cta--ghost {
    background: color-mix(in srgb, var(--cl-yellow) 5%, var(--cl-bg));
    color: var(--cl-fg);
}
.pgb-cta__inner {
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
}
.pgb-cta__heading {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.03em;
    margin: 0 0 0.85rem;
    text-wrap: balance;
}
.pgb-cta__intro {
    font-size: clamp(1.05rem, 1.4vw, 1.2rem);
    line-height: 1.55;
    margin: 0 0 2rem;
    opacity: 0.9;
}
.pgb-cta--black .pgb-cta__btn,
.pgb-cta--ghost .pgb-cta__btn { background: var(--cl-yellow); color: var(--cl-black); }
.pgb-cta--yellow .pgb-cta__btn { background: var(--cl-black); color: white; }


/* ============================================================
   QUOTE
   ============================================================ */

.pgb-quote { padding: clamp(3rem, 5vw, 4rem) 0; }
.pgb-quote__inner {
    margin: 0;
    border-left: 4px solid var(--cl-yellow);
    padding-left: clamp(1.5rem, 3vw, 2.5rem);
    text-align: left;
}
.pgb-quote__text {
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 2.8vw, 2.1rem);
    font-weight: 400;
    line-height: 1.35;
    color: var(--cl-fg);
    font-style: italic;
    margin: 0 0 1.5rem;
    text-wrap: balance;
}
.pgb-quote__cite {
    font-style: normal;
}
.pgb-quote__attr {
    display: block;
    font-weight: 600;
    color: var(--cl-fg);
}
.pgb-quote__role {
    display: block;
    font-size: var(--fs-sm);
    color: var(--cl-fg-muted);
}


/* ============================================================
   EMBEDS
   ============================================================ */

.pgb-team,
.pgb-services,
.pgb-portfolio {
    padding: clamp(2.5rem, 5vw, 4rem) 0;
}


/* ============================================================
   DIVIDER / SPACER
   ============================================================ */

.pgb-divider { padding: 2rem 0; }
.pgb-divider hr {
    border: 0;
    height: 1px;
    background: var(--cl-border, rgba(0,0,0,0.1));
}
.pgb-divider--dots hr {
    background: none;
    border-top: 2px dotted var(--cl-border, rgba(0,0,0,0.2));
    height: 0;
}
.pgb-divider--thick hr {
    height: 4px;
    background: var(--cl-yellow);
}

.pgb-spacer--sm { height: 2rem; }
.pgb-spacer--md { height: 4rem; }
.pgb-spacer--lg { height: 6rem; }
.pgb-spacer--xl { height: 9rem; }
