/*==================================================
    TAS Painting — Utility Classes
==================================================*/

.d-flex{display:flex;}
.d-grid{display:grid;}
.d-block{display:block;}
.d-inline-block{display:inline-block;}
.d-none{display:none;}

.align-center{align-items:center;}
.align-start{align-items:flex-start;}
.align-end{align-items:flex-end;}

.justify-center{justify-content:center;}
.justify-between{justify-content:space-between;}
.justify-around{justify-content:space-around;}
.justify-end{justify-content:flex-end;}

.flex-column{flex-direction:column;}
.flex-wrap{flex-wrap:wrap;}

.gap-10{gap:10px;}
.gap-15{gap:15px;}
.gap-20{gap:20px;}
.gap-30{gap:30px;}
.gap-40{gap:40px;}
.gap-60{gap:60px;}

.w-100{width:100%;}
.w-auto{width:auto;}

.h-100{height:100%;}
.vh-100{min-height:100vh;}

.text-left{text-align:left;}
.text-center{text-align:center;}
.text-right{text-align:right;}

.fw-light{font-weight:300;}
.fw-normal{font-weight:400;}
.fw-medium{font-weight:500;}
.fw-semibold{font-weight:600;}
.fw-bold{font-weight:700;}
.fw-extra-bold{font-weight:800;}

.text-ink{color:var(--text-heading);}
.text-white{color:#fff;}
.text-muted{color:var(--text-light);}
.text-orange{color:var(--color-orange);}

.bg-ink{background:var(--color-ink);}
.bg-white{background:#fff;}
.bg-cream{background:var(--color-cream);}
.bg-surface{background:var(--color-surface);}
.bg-gradient{background:var(--gradient-brand);}

.radius-sm{border-radius:var(--radius-sm);}
.radius-md{border-radius:var(--radius-md);}
.radius-lg{border-radius:var(--radius-lg);}
.radius-pill{border-radius:var(--radius-pill);}

.shadow-sm{box-shadow:var(--shadow-sm);}
.shadow-md{box-shadow:var(--shadow-md);}
.shadow-lg{box-shadow:var(--shadow-lg);}

.overflow-hidden{overflow:hidden;}
.overflow-visible{overflow:visible;}

.position-relative{position:relative;}
.position-absolute{position:absolute;}
.position-fixed{position:fixed;}

.mb-10{margin-bottom:10px;}
.mb-20{margin-bottom:20px;}
.mb-30{margin-bottom:30px;}
.mb-40{margin-bottom:40px;}
.mb-60{margin-bottom:60px;}

.mt-10{margin-top:10px;}
.mt-20{margin-top:20px;}
.mt-30{margin-top:30px;}
.mt-40{margin-top:40px;}

.pt-0{padding-top:0;}
.pb-0{padding-bottom:0;}

.transition{transition:var(--transition-fast);}

/*==============================
    Visually hidden (a11y)
==============================*/

.visually-hidden{
    position:absolute !important;
    width:1px;height:1px;
    padding:0;margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}

/* WordPress core hardcodes this exact class name on its own
   accessibility headings (e.g. the "Posts navigation" <h2> that
   the_posts_pagination() prints) — without a rule for it, that text
   renders fully visible instead of screen-reader-only. Same values as
   .visually-hidden above; kept separate since WP core, not this theme,
   controls the class name and expects to find it. */
.screen-reader-text{
    border:0;
    clip:rect(1px,1px,1px,1px);
    clip-path:inset(50%);
    height:1px;
    margin:-1px;
    overflow:hidden;
    padding:0;
    position:absolute;
    width:1px;
    word-wrap:normal !important;
}

.skip-link{
    position:fixed;
    top:-60px;
    left:16px;
    z-index:10000;
    background:var(--color-ink);
    color:#fff;
    padding:12px 22px;
    font-size:14px;
    font-weight:600;
    border-radius:var(--radius-sm);
    transition:top .2s ease;
}

.skip-link:focus{
    top:16px;
}

/*==============================
    Grid helpers used across sections
==============================*/

.grid-2{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:var(--space-8);
}

.grid-3{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:var(--space-6);
}

.grid-4{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:var(--space-6);
}

@media (max-width:991px){
    .grid-3{ grid-template-columns:repeat(2,1fr); }
    .grid-4{ grid-template-columns:repeat(2,1fr); }
}

@media (max-width:575px){
    .grid-2,
    .grid-3,
    .grid-4{ grid-template-columns:1fr; }
}
