/* Puifín — charter page panels.
   ==========================================================================
   Restyles the .nc-* and .vsd-* cards that come out of the product meta, in
   place of the blue-and-Playfair rules still sitting in the Customizer's
   Additional CSS. See inc/puifin-panels.php for why.

   Every selector here is prefixed with .woocommerce purely for weight: the
   Customizer prints its stylesheet in an inline <style> AFTER everything
   enqueued, so matching its specificity would lose on source order. One extra
   class is enough and keeps the rules readable.
   ========================================================================== */

/* ---------- Shared card shell ---------- */
.woocommerce .nc-wrap,
.woocommerce .vsd-wrap {
    max-width: none;
    margin: 0;
    padding: 0;
    background: none;
}

.woocommerce .nc-grid,
.woocommerce .vsd-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    align-items: stretch;
}

.woocommerce .nc-card,
.woocommerce .vsd-card {
    display: flex;
    flex-direction: column;
    padding: 1.5rem;
    background: #fff;
    border: 1px solid var(--pf-line);
    border-top: 3px solid var(--pf-line);
    border-radius: 2px;
}
.woocommerce .nc-card.nc-card--light { background: var(--pf-bg); }

.woocommerce .nc-heading,
.woocommerce .vsd-head {
    display: flex;
    align-items: baseline;
    gap: .6rem;
    margin: 0 0 1.1rem;
}

/* WooCommerce centres everything inside .woocommerce-tabs .panel, which left
   the card headings and the closing line centred and the body copy ranged
   left in the same card. */
.woocommerce div.product .woocommerce-tabs .panel .nc-wrap,
.woocommerce div.product .woocommerce-tabs .panel .vsd-wrap,
.woocommerce div.product .woocommerce-tabs .panel .nc-card,
.woocommerce div.product .woocommerce-tabs .panel .vsd-card { text-align: left; }

/* Was 28px italic Playfair in #005ea2. Nothing else on the site is either. */
.woocommerce .nc-title,
.woocommerce .vsd-title {
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-style: normal;
    font-weight: 600;
    font-size: 1.05rem;
    line-height: 1.3;
    letter-spacing: 0;
    color: var(--pf-ink);
    background: none;
    border: 0;
}

/* The decorative icons were sized with five !important declarations each. */
.woocommerce .nc-heading-icon,
.woocommerce .nc-heading-icon svg,
.woocommerce .nc-charter-item-icon,
.woocommerce .nc-charter-item-icon svg,
.woocommerce .nc-contact-icon,
.woocommerce .nc-contact-icon svg,
.woocommerce .vsd-icon {
    width: 1rem !important;
    height: 1rem !important;
    max-width: 1rem !important;
    max-height: 1rem !important;
    min-width: 0;
    flex: none;
    color: var(--pf-accent);
}

/* ---------- Label / value rows ---------- */
.woocommerce .vsd-rows,
.woocommerce .nc-bring-list,
.woocommerce .nc-charter-list,
.woocommerce .vsd-sys-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.woocommerce .vsd-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1.5rem;
    padding: .65rem 0;
    border-bottom: 1px solid var(--pf-line);
}
.woocommerce .vsd-row:last-child { border-bottom: 0; }

.woocommerce .vsd-row-label,
.woocommerce .nc-info-label,
.woocommerce .vsd-label {
    font-family: inherit;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--pf-muted);
}
.woocommerce .vsd-row-label { text-transform: none; letter-spacing: 0; font-size: .92rem; color: var(--pf-ink); }

.woocommerce .vsd-row-val {
    flex: none;
    font-family: inherit;
    font-size: .92rem;
    font-weight: 600;
    color: var(--pf-ink);
    text-align: right;
}

/* ---------- Stacked blocks ---------- */
.woocommerce .vsd-blocks,
.woocommerce .nc-info-blocks {
    display: grid;
    gap: 1rem;
}
.woocommerce .nc-info-block,
.woocommerce .nc-bring-item {
    padding-top: .9rem;
    border-top: 1px solid var(--pf-line);
}
.woocommerce .nc-info-block:first-child,
.woocommerce .nc-bring-item:first-child {
    padding-top: 0;
    border-top: 0;
}

.woocommerce .vsd-block-val,
.woocommerce .nc-info-text,
.woocommerce .nc-bring-sub,
.woocommerce .nc-charter-intro,
.woocommerce .nc-charter-item-text,
.woocommerce .vsd-sys-item,
.woocommerce .vsd-range-sub {
    margin: .25rem 0 0;
    font-family: inherit;
    font-size: .92rem;
    line-height: 1.55;
    color: var(--pf-muted);
}
.woocommerce .nc-bring-bold {
    margin: 0;
    font-family: inherit;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--pf-ink);
}
.woocommerce .nc-italic,
.woocommerce .nc-bring-sub.nc-italic,
.woocommerce .nc-info-text.nc-italic { font-style: normal; }

.woocommerce .vsd-block-val.vsd-accent,
.woocommerce .vsd-range-val {
    font-weight: 600;
    color: var(--pf-ink);
}

/* ---------- Lists with a marker ---------- */
.woocommerce .vsd-sys-item,
.woocommerce .nc-charter-item {
    display: flex;
    align-items: baseline;
    gap: .6rem;
    padding: .45rem 0;
}
.woocommerce .vsd-sys-dot {
    flex: none;
    width: .35rem;
    height: .35rem;
    border-radius: 50%;
    background: var(--pf-accent);
}

.woocommerce .vsd-divider {
    height: 1px;
    margin: 1.1rem 0;
    background: var(--pf-line);
    border: 0;
}

.woocommerce .vsd-range-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem 1.5rem;
}

/* ---------- Closing strip ---------- */
.woocommerce .nc-contact-strip {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-top: auto;
    padding-top: 1.1rem;
    border-top: 1px solid var(--pf-line);
}
.woocommerce .nc-contact-text {
    font-family: inherit;
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--pf-ink);
}

@media (max-width: 900px) {
    .woocommerce .nc-grid,
    .woocommerce .vsd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .woocommerce .nc-grid,
    .woocommerce .vsd-grid { grid-template-columns: 1fr; }
}
