/*
Theme Name: Plus2Clothing
Theme URI: https://plus2clothing.com
Author: Plus2Clothing Team
Author URI: https://plus2clothing.com
Description: A premium WooCommerce theme for tall men's clothing. Features brutalist typography, modern aesthetics, and engineered specifically for ecommerce. Built using Tailwind CSS via CDN.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: p2c
Tags: e-commerce, woocommerce, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, theme-options

WooCommerce Compatible: Yes
*/

/* ==========================================================================
   BRAND DESIGN TOKENS
   ========================================================================== */

:root {
    /* Primary Colors */
    --p2c-primary: #9E3333;
    /* Red - CTAs, sale badges */
    --p2c-accent: #B7995B;
    /* Gold - Brand accent, highlights */
    --p2c-dark: #0A0A0A;
    /* Primary text, dark backgrounds */
    --p2c-offblack: #111111;
    /* Footer backgrounds */

    /* Neutral Colors */
    --p2c-paper: #FDFDFD;
    /* Card backgrounds */
    --p2c-offwhite: #F5F5F5;
    /* Section backgrounds */
    --p2c-background: #FBFBFB;
    /* Main page background */
    --p2c-white: #FFFFFF;
    /* Content backgrounds */

    /* Typography */
    --p2c-font-display: 'Oswald', sans-serif;
    --p2c-font-brutalist: 'Archivo Black', sans-serif;
    --p2c-font-sans: 'Inter', sans-serif;

    /* Transitions */
    --p2c-transition: all 0.3s ease;
    --p2c-transition-slow: all 0.7s ease;
}

.outline-text {
    -webkit-text-stroke: 2px var(--p2c-dark);
    color: transparent;
}

/* ==========================================================================
   BASE STYLES
   ========================================================================== */

body {
    font-family: var(--p2c-font-sans);
    background-color: var(--p2c-background);
    color: var(--p2c-dark);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Selection */
::selection {
    background-color: var(--p2c-accent);
    color: var(--p2c-white);
}

/* ==========================================================================
   UTILITY CLASSES
   ========================================================================== */

.brutalist-text {
    letter-spacing: -0.05em;
    line-height: 0.85;
    text-transform: uppercase;
}

.hide-scrollbar::-webkit-scrollbar {
    display: none;
}

.hide-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Hero stroke – responsive */
.hero-stroke {
    -webkit-text-stroke: 1px white;
}
@media (min-width: 640px) {
    .hero-stroke {
        -webkit-text-stroke: 2px white;
    }
}

/* Swiper overrides for homepage carousels */
.p2c-swiper-categories .swiper-slide,
.p2c-swiper-bundles .swiper-slide,
.p2c-swiper-faves .swiper-slide {
    height: auto;
}

/* Staggered (odd up / even down) layout inside Swiper */
.p2c-stagger-slides .swiper-wrapper {
    padding-top: 40px;
    padding-bottom: 40px;
}
.p2c-stagger-slides .swiper-slide.p2c-slide-offset {
    transform: translateY(40px);
}
@media (min-width: 768px) {
    .p2c-stagger-slides .swiper-wrapper {
        padding-top: 60px;
        padding-bottom: 60px;
    }
    .p2c-stagger-slides .swiper-slide.p2c-slide-offset {
        transform: translateY(60px);
    }
}

.p2c-bundle-static-fallback {
    display: none !important;
}

/* Reviews: on md+ Swiper is destroyed, CSS grid takes over */
@media (min-width: 768px) {
    .p2c-swiper-reviews .swiper-wrapper {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr);
        gap: 2rem;
        transform: none !important;
    }
    .p2c-swiper-reviews .swiper-slide {
        width: auto !important;
        margin-right: 0 !important;
    }
}

.textured-bg {
    background-image: url("https://www.transparenttextures.com/patterns/carbon-fibre.png");
}

/* Geometric containers */
.geo-container {
    clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 0% 100%);
}

.geo-container-alt {
    clip-path: polygon(10% 0%, 100% 0%, 100% 100%, 0% 100%);
}

.diagonal-clip {
    clip-path: polygon(0 0, 100% 0, 85% 100%, 0% 100%);
}

.vertical-ticker {
    writing-mode: vertical-rl;
    text-orientation: mixed;
}

/* Desktop nav: same style for Home, Shop, WP menu items */
.p2c-nav-link {
    font-size: 0.75rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    padding: 0.5rem 0;
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
}

.p2c-nav-link:hover {
    color: var(--p2c-accent);
}

button.p2c-nav-link {
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
}

/* Desktop mega menu */
#p2c-mega-trigger {
    position: static;
}

.p2c-mega-panel {
    z-index: 1001;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.3s, visibility 0.3s;
    /* Bottom-only shadow, no sides */
    box-shadow: 0 20px 36px -20px rgba(0, 0, 0, 0.5);
}

#p2c-mega-trigger:hover .p2c-mega-panel {
    visibility: visible;
    opacity: 1;
}

/* Collections dropdown (BOLD MOVES) */
#p2c-collections-trigger {
    position: static;
}

.p2c-collections-panel {
    z-index: 1001;
    visibility: hidden;
    opacity: 0;
    transition: opacity 0.3s, visibility 0.3s;
    /* Bottom-only shadow, no sides */
    box-shadow: 0 20px 36px -20px rgba(0, 0, 0, 0.5);
}

#p2c-collections-trigger:hover .p2c-collections-panel {
    visibility: visible;
    opacity: 1;
}

/* Blur page when Shop or Collections dropdown is open (no side glow: clip blur edge) */
body.p2c-menu-open .p2c-blur-target {
    filter: blur(8px);
    transition: filter 0.25s ease;
    overflow: hidden;
}

@keyframes p2c-marquee {
    to { transform: translateY(-50%); }
}

.animate-marquee {
    animation: p2c-marquee 15s linear infinite;
}

/* Tall-O-Meter Gradient */
.tall-o-meter-gradient {
    background: linear-gradient(180deg, var(--p2c-accent) 0%, var(--p2c-dark) 100%);
}

/* Blog Utilities */
.drop-cap::first-letter {
    float: left;
    font-family: var(--p2c-font-brutalist);
    font-size: 4rem;
    line-height: 0.8;
    padding-right: 0.5rem;
    color: var(--p2c-accent);
}

/* ==========================================================================
   PASSWORD PROTECTED CONTENT
   ========================================================================== */

.p2c-protected-shell {
    width: 100%;
    padding: clamp(4rem, 8vw, 7rem) 0;
}

.p2c-protected-card {
    position: relative;
    max-width: 860px;
    margin: 0 auto;
    padding: clamp(2rem, 4vw, 4rem);
    background:
        linear-gradient(135deg, rgba(183, 153, 91, 0.1), rgba(183, 153, 91, 0) 40%),
        linear-gradient(180deg, #ffffff 0%, #fdfdfd 100%);
    border: 1px solid rgba(10, 10, 10, 0.08);
    box-shadow: 0 24px 80px rgba(10, 10, 10, 0.08);
    overflow: hidden;
    text-align: center;
}

.p2c-protected-card::before,
.p2c-protected-card::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.p2c-protected-card::before {
    top: 0;
    right: 0;
    width: min(220px, 32vw);
    height: 3px;
    background: var(--p2c-accent);
}

.p2c-protected-card::after {
    left: -40px;
    bottom: -40px;
    width: 180px;
    height: 180px;
    border: 1px solid rgba(183, 153, 91, 0.18);
    transform: rotate(45deg);
}

.p2c-protected-kicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
    font-family: var(--p2c-font-sans);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--p2c-accent);
}

.p2c-protected-kicker::before {
    content: "";
    width: 2.5rem;
    height: 1px;
    background: currentColor;
}

.p2c-protected-title {
    max-width: 10ch;
    margin: 0 auto;
    font-family: var(--p2c-font-brutalist);
    font-size: clamp(2.25rem, 6vw, 4.75rem);
    line-height: 0.92;
    letter-spacing: -0.05em;
    text-transform: uppercase;
    color: var(--p2c-dark);
}

.p2c-protected-copy {
    max-width: 42rem;
    margin: 1.5rem auto 0;
    font-size: 1rem;
    line-height: 1.8;
    color: rgba(10, 10, 10, 0.68);
}

.p2c-protected-copy strong {
    color: var(--p2c-dark);
    font-weight: 700;
}

.p2c-protected-form {
    margin-top: 2rem;
}

.p2c-protected-label {
    display: block;
    margin-bottom: 0.9rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--p2c-dark);
    text-align: center;
}

.p2c-protected-feedback {
    margin: 0 0 1rem;
    font-size: 0.82rem;
    line-height: 1.7;
    color: rgba(10, 10, 10, 0.56);
}

.p2c-protected-feedback[data-state="error"] {
    color: var(--p2c-primary);
    font-weight: 700;
}

.p2c-protected-feedback[data-state="loading"] {
    color: var(--p2c-accent);
    font-weight: 700;
}

.p2c-protected-feedback[data-state="success"] {
    color: #2e7d32;
    font-weight: 700;
}

.p2c-protected-input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.9rem;
    align-items: stretch;
    max-width: 720px;
    margin: 0 auto;
}

.p2c-protected-loader {
    display: none;
    width: 100%;
    max-width: 720px;
    height: 2px;
    margin: 0.85rem auto 0;
    background: rgba(10, 10, 10, 0.06);
    overflow: hidden;
}

.p2c-protected-loader.is-visible {
    display: block;
}

.p2c-protected-loader-bar {
    width: 40%;
    height: 100%;
    background: var(--p2c-accent);
}

.p2c-protected-form input[type="password"] {
    width: 100%;
    min-height: 62px;
    padding: 0 1.2rem;
    border: 1px solid rgba(10, 10, 10, 0.12);
    background: var(--p2c-offwhite);
    font-family: var(--p2c-font-sans);
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--p2c-dark);
    transition: var(--p2c-transition);
}

.p2c-protected-form input[type="password"]::placeholder {
    color: rgba(10, 10, 10, 0.38);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.72rem;
}

.p2c-protected-form input[type="password"]:focus {
    border-color: var(--p2c-accent);
    outline: none;
    box-shadow: 0 0 0 3px rgba(183, 153, 91, 0.12);
}

.p2c-protected-form button {
    min-height: 62px;
    padding: 0 2rem;
    border: 0;
    background: var(--p2c-dark);
    color: var(--p2c-white);
    font-family: var(--p2c-font-display);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    cursor: pointer;
    transition: var(--p2c-transition);
}

.p2c-protected-form button:hover,
.p2c-protected-form button:focus {
    background: var(--p2c-primary);
    outline: none;
}

.p2c-protected-form.is-error input[type="password"] {
    border-color: rgba(158, 51, 51, 0.45);
    box-shadow: 0 0 0 3px rgba(158, 51, 51, 0.08);
}

.p2c-protected-form.is-success input[type="password"] {
    border-color: rgba(46, 125, 50, 0.35);
    box-shadow: 0 0 0 3px rgba(46, 125, 50, 0.08);
}

.p2c-protected-form.is-loading button {
    opacity: 0.85;
    pointer-events: none;
}

.p2c-protected-form.is-success button {
    background: #2e7d32;
}

.p2c-protected-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.p2c-protected-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0.55rem 0.9rem;
    border: 1px solid rgba(10, 10, 10, 0.08);
    background: rgba(245, 245, 245, 0.85);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(10, 10, 10, 0.68);
}

@media (max-width: 767px) {
    .p2c-protected-shell {
        padding: 3.5rem 0;
    }

    .p2c-protected-card {
        padding: 2rem 1.25rem;
    }

    .p2c-protected-title {
        max-width: none;
    }

    .p2c-protected-input-row {
        grid-template-columns: 1fr;
    }

    .p2c-protected-form button {
        width: 100%;
    }
}

/* ==========================================================================
   WOO LOST PASSWORD
   ========================================================================== */

body.woocommerce-lost-password main.flex-grow {
    padding: clamp(4rem, 8vw, 7rem) 1.5rem;
}

body.woocommerce-lost-password main.flex-grow > .woocommerce {
    position: relative;
    width: min(100%, 860px);
    margin: 0 auto;
    padding: clamp(2rem, 4vw, 4rem);
    border: 1px solid rgba(10, 10, 10, 0.08);
    background:
        linear-gradient(135deg, rgba(183, 153, 91, 0.08) 0%, rgba(183, 153, 91, 0) 38%),
        var(--p2c-white);
    box-shadow: 0 24px 60px rgba(10, 10, 10, 0.08);
    overflow: hidden;
}

body.woocommerce-lost-password main.flex-grow > .woocommerce::before,
body.woocommerce-lost-password main.flex-grow > .woocommerce::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

body.woocommerce-lost-password main.flex-grow > .woocommerce::before {
    top: 0;
    right: 0;
    width: min(220px, 32vw);
    height: 3px;
    background: var(--p2c-accent);
}

body.woocommerce-lost-password main.flex-grow > .woocommerce::after {
    left: -40px;
    bottom: -40px;
    width: 180px;
    height: 180px;
    border: 1px solid rgba(183, 153, 91, 0.18);
    transform: rotate(45deg);
}

body.woocommerce-lost-password .woocommerce-notices-wrapper {
    margin-bottom: 1.25rem;
}

body.woocommerce-lost-password .p2c-lostpass-hero {
    position: relative;
    z-index: 1;
    text-align: center;
    margin: 0 auto 2rem;
}

body.woocommerce-lost-password .p2c-lostpass-kicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin: 0;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--p2c-accent);
}

body.woocommerce-lost-password .p2c-lostpass-kicker::before,
body.woocommerce-lost-password .p2c-lostpass-kicker::after {
    content: "";
    width: 2.5rem;
    height: 1px;
    background: currentColor;
}

body.woocommerce-lost-password .p2c-lostpass-title {
    margin: 1.1rem auto 0;
    max-width: 12ch;
    font-family: var(--p2c-font-brutalist);
    font-size: clamp(2.35rem, 5.8vw, 4.6rem);
    line-height: 0.9;
    letter-spacing: -0.05em;
    text-transform: uppercase;
    color: var(--p2c-dark);
}

body.woocommerce-lost-password .p2c-lostpass-title span {
    display: block;
}

body.woocommerce-lost-password .p2c-lostpass-copy {
    max-width: 34rem;
    margin: 1.2rem auto 0;
    font-size: 0.96rem;
    line-height: 1.75;
    color: rgba(10, 10, 10, 0.68);
}

body.woocommerce-lost-password main.flex-grow > .woocommerce > .woocommerce-message {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 42rem;
    margin: 0 auto;
    padding: 1.25rem 1.5rem 1.25rem 4.25rem;
    background: #E8F5E9;
    border: 1px solid #C8E6C9;
    border-left: 4px solid #2E7D32;
    color: var(--p2c-dark);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.65;
}

body.woocommerce-lost-password main.flex-grow > .woocommerce > .woocommerce-message::before {
    content: "\2713";
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: #2E7D32;
    color: #fff;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 2.5rem;
    text-align: center;
}

body.woocommerce-lost-password main.flex-grow > .woocommerce > .woocommerce-message + p {
    position: relative;
    z-index: 1;
    max-width: 42rem;
    margin: 1.5rem auto 0;
    font-size: 1rem;
    line-height: 1.8;
    text-align: center;
    color: rgba(10, 10, 10, 0.72);
}

body.woocommerce-lost-password form.lost_reset_password {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.1rem;
    margin: 0;
}

body.woocommerce-lost-password form.lost_reset_password > p:first-child {
    display: none;
}

body.woocommerce-lost-password form.lost_reset_password .clear {
    display: none;
}

body.woocommerce-lost-password .lost_reset_password .woocommerce-form-row--first.form-row-first {
    flex: 0 0 auto;
    width: 100%;
    max-width: 420px;
    float: none;
    margin: 0;
}

body.woocommerce-lost-password .lost_reset_password .woocommerce-form-row.form-row {
    flex: 0 0 auto;
    width: 100%;
    max-width: 420px;
    float: none;
    margin: 0;
    text-align: center;
}

body.woocommerce-lost-password .lost_reset_password label {
    display: block;
    margin-bottom: 0.9rem;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--p2c-dark);
}

body.woocommerce-lost-password .lost_reset_password label .required {
    color: var(--p2c-accent);
}

body.woocommerce-lost-password .lost_reset_password input.input-text {
    width: 100%;
    min-height: 62px;
    padding: 0 1.2rem;
    border: 1px solid rgba(10, 10, 10, 0.12);
    background: var(--p2c-white);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--p2c-dark);
    transition: var(--p2c-transition);
}

body.woocommerce-lost-password .lost_reset_password input.input-text::placeholder {
    color: rgba(10, 10, 10, 0.38);
}

body.woocommerce-lost-password .lost_reset_password input.input-text:focus {
    border-color: var(--p2c-accent);
    outline: none;
    box-shadow: 0 0 0 3px rgba(183, 153, 91, 0.12);
}

body.woocommerce-lost-password .lost_reset_password button.button {
    width: 100%;
    min-height: 62px;
    padding: 0 2rem;
    border: 0;
    background: var(--p2c-dark);
    color: var(--p2c-white);
    font-family: var(--p2c-font-display);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    cursor: pointer;
    transition: var(--p2c-transition);
}

body.woocommerce-lost-password .lost_reset_password button.button:hover,
body.woocommerce-lost-password .lost_reset_password button.button:focus {
    background: var(--p2c-primary);
    outline: none;
}

@media (max-width: 767px) {
    body.woocommerce-lost-password main.flex-grow {
        padding: 3.5rem 1rem;
    }

    body.woocommerce-lost-password main.flex-grow > .woocommerce {
        padding: 2rem 1.25rem;
    }

    body.woocommerce-lost-password .p2c-lostpass-kicker {
        gap: 0.5rem;
        letter-spacing: 0.2em;
    }

    body.woocommerce-lost-password .p2c-lostpass-kicker::before,
    body.woocommerce-lost-password .p2c-lostpass-kicker::after {
        width: 1.5rem;
    }

    body.woocommerce-lost-password .p2c-lostpass-title {
        max-width: none;
        font-size: clamp(2.1rem, 11vw, 3.5rem);
    }

    body.woocommerce-lost-password .p2c-lostpass-copy {
        max-width: 28rem;
        font-size: 0.9rem;
        line-height: 1.7;
    }

    body.woocommerce-lost-password main.flex-grow > .woocommerce > .woocommerce-message {
        padding: 1rem 1rem 1rem 3.75rem;
        font-size: 0.9rem;
    }

    body.woocommerce-lost-password main.flex-grow > .woocommerce > .woocommerce-message + p {
        margin-top: 1.25rem;
        font-size: 0.9375rem;
        line-height: 1.7;
        text-align: left;
    }

    body.woocommerce-lost-password .lost_reset_password .woocommerce-form-row--first.form-row-first,
    body.woocommerce-lost-password .lost_reset_password .woocommerce-form-row.form-row {
        width: 100%;
        max-width: 100%;
    }

    body.woocommerce-lost-password .lost_reset_password button.button {
        width: 100%;
    }
}

.content-spacing>*+* {
    margin-top: 1.5rem;
}

details>summary {
    list-style: none;
}

details>summary::-webkit-details-marker {
    display: none;
}

/* ==========================================================================
   WOOCOMMERCE OVERRIDES
   ========================================================================== */

/* Product card styles — flex so inner card can use h-full for bottom-aligned add to cart */
.woocommerce ul.products li.product {
    margin-bottom: 2rem;
    display: flex;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--p2c-font-display);
    text-transform: uppercase;
    letter-spacing: -0.025em;
    font-weight: 500;
    color: var(--p2c-dark);
}

.woocommerce ul.products li.product .price {
    font-family: var(--p2c-font-sans);
    font-weight: 800;
    color: var(--p2c-accent);
    letter-spacing: 0.1em;
}

/* Sale badge */
.woocommerce span.onsale {
    background-color: var(--p2c-primary);
    font-family: var(--p2c-font-sans);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 9px;
    padding: 0.5rem 1rem;
    border-radius: 0;
    min-height: auto;
    min-width: auto;
    line-height: 1;
}

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button {
    background-color: var(--p2c-dark);
    color: var(--p2c-white);
    font-family: var(--p2c-font-display);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 500;
    border-radius: 0;
    padding: 1rem 2rem;
    transition: var(--p2c-transition);
    border: none;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .button:hover {
    background-color: var(--p2c-primary);
    color: var(--p2c-white);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    background-color: var(--p2c-primary);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background-color: var(--p2c-dark);
}

/* Add to cart button on archives */
.woocommerce a.added_to_cart {
    font-family: var(--p2c-font-sans);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 10px;
    color: var(--p2c-accent);
}

/* Star ratings */
.woocommerce .star-rating {
    color: var(--p2c-accent);
}

/* Product images */
.woocommerce ul.products li.product a img {
    border-radius: 0;
    transition: var(--p2c-transition-slow);
}

.woocommerce ul.products li.product:hover a img {
    transform: scale(1.05);
}

/* Form fields */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    border-radius: 0;
    border-color: #e5e7eb;
    padding: 1rem;
    font-family: var(--p2c-font-sans);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 12px;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
    border-color: var(--p2c-accent);
    box-shadow: none;
}

/* Notices */
.woocommerce-message,
.woocommerce-info {
    border-top-color: var(--p2c-accent);
}

.woocommerce-message::before,
.woocommerce-info::before {
    color: var(--p2c-accent);
}

/* WooCommerce notices – Status Alerts style */
.woocommerce-notices-wrapper {
    margin-bottom: 2rem;
}
.woocommerce-notices-wrapper:empty {
    display: none;
    margin-bottom: 0;
}
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 0;
}
.woocommerce-notices-wrapper .woocommerce-error {
    background: #FFF5F5;
    border-left: 4px solid var(--p2c-primary);
    padding: 1.5rem 1.5rem 1.5rem 4rem;
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
}
.woocommerce-notices-wrapper .woocommerce-error::before {
    content: '';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    background: var(--p2c-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.woocommerce-notices-wrapper .woocommerce-error::after {
    content: '!';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    text-align: center;
    font-family: var(--p2c-font-brutalist);
    font-weight: 700;
    color: #fff;
    font-size: 1.25rem;
}
.woocommerce-notices-wrapper .woocommerce-error li {
    margin: 0;
    font-size: 0.875rem;
    color: var(--p2c-dark);
}
.woocommerce-notices-wrapper .woocommerce-message {
    background: #E8F5E9;
    border: 1px solid #C8E6C9;
    border-left: 4px solid #2E7D32;
    padding: 1.5rem 1.5rem 1.5rem 4rem;
    position: relative;
}
.woocommerce-notices-wrapper .woocommerce-message::before {
    content: '\2713';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    background: #2E7D32;
    color: #fff;
    border-radius: 50%;
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 2.5rem;
    text-align: center;
}
.woocommerce-notices-wrapper .woocommerce-message .button.wc-forward {
    background: var(--p2c-accent) !important;
    color: var(--p2c-dark) !important;
    border: none !important;
    padding: 0.6rem 1.25rem !important;
    font-family: var(--p2c-font-display) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.15em !important;
    font-size: 0.7rem !important;
    border-radius: 0 !important;
    transition: var(--p2c-transition);
}
.woocommerce-notices-wrapper .woocommerce-message .button.wc-forward:hover {
    background: var(--p2c-dark) !important;
    color: #fff !important;
}

/* Cart page remove/undo notice matches global success alerts */
body.woocommerce-cart .woocommerce-message {
    background: #E8F5E9;
    border: 1px solid #C8E6C9;
    border-left: 4px solid #2E7D32;
    padding: 1.5rem 1.5rem 1.5rem 4rem;
    position: relative;
    margin: 1.5rem 0;
    color: var(--p2c-dark);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.65;
}

body.woocommerce-cart .woocommerce-message::before {
    content: '\2713';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 2.5rem;
    height: 2.5rem;
    background: #2E7D32;
    color: #fff;
    border-radius: 50%;
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 2.5rem;
    text-align: center;
}

body.woocommerce-cart .woocommerce-message .restore-item {
    color: var(--p2c-accent);
    font-family: var(--p2c-font-display);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
}

body.woocommerce-cart .woocommerce-message .restore-item:hover {
    color: var(--p2c-dark);
}

body.woocommerce-cart button[name="update_cart"] {
    border-radius: 0;
    font-family: var(--p2c-font-display);
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

body.woocommerce-cart button[name="update_cart"]:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

/* Breadcrumbs */
.woocommerce .woocommerce-breadcrumb {
    font-family: var(--p2c-font-sans);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: #9ca3af;
}

.woocommerce .woocommerce-breadcrumb a {
    color: #6b7280;
    transition: var(--p2c-transition);
}

.woocommerce .woocommerce-breadcrumb a:hover {
    color: var(--p2c-accent);
}

/* ==========================================================================
   PRIMARY NAV — above sections, below modals (fix header only)
   ========================================================================== */
header {
    position: relative;
    z-index: 100;
    overflow: visible !important;
}
header .container,
header nav {
    overflow: visible !important;
}
header .sub-menu {
    z-index: 10;
    border-color: rgba(0, 0, 0, 0.06);
    background: var(--p2c-white);
}
header .sub-menu a:hover {
    background: var(--p2c-offwhite);
    color: var(--p2c-accent);
}
header .sub-menu .current-menu-item a {
    color: var(--p2c-accent);
}

/* ==========================================================================
   MODALS / OVERLAYS — above header (z 100)
   ========================================================================== */
#p2c-cart-overlay { z-index: 9998 !important; }
#p2c-mini-cart { z-index: 9999 !important; }
#p2c-search-modal { z-index: 9999 !important; }
#bp.bp-popup { z-index: 9999 !important; }

/* ==========================================================================
   MINI CART STYLES
   ========================================================================== */

.p2c-mini-cart {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    max-width: 480px;
    height: 100vh;
    background: var(--p2c-white);
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: -10px 0 50px rgba(0, 0, 0, 0.1);
}

.p2c-mini-cart.is-open {
    transform: translateX(0);
}

/* ==========================================================================
   ANIMATION KEYFRAMES
   ========================================================================== */

@keyframes p2c-fade-in {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes p2c-slide-in-right {
    from {
        opacity: 0;
        transform: translateX(20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes p2c-cart-loading-line {
    0% {
        transform: translateX(-120%);
    }

    100% {
        transform: translateX(260%);
    }
}

.p2c-animate-in {
    animation: p2c-fade-in 0.6s ease forwards;
}

.p2c-cart-loading-line {
    position: relative;
    display: block;
    width: 100%;
    max-width: 10rem;
    height: 2px;
    background: rgba(255, 255, 255, 0.16);
    overflow: hidden;
}

.p2c-cart-loading-line-bar {
    position: absolute;
    inset: 0 auto 0 0;
    width: 40%;
    background: var(--p2c-accent);
    animation: p2c-cart-loading-line 1s ease-in-out infinite;
}

/* Quick view: size selection matches single product (dark bg, accent border, tick) */
#p2c-quick-view .p2c-size-option input:checked + .p2c-qv-size-label {
    background-color: var(--p2c-dark);
    border-color: var(--p2c-accent);
    color: #fff;
    box-shadow: 0 0 0 1px var(--p2c-accent);
}
#p2c-quick-view .p2c-size-option input:checked + .p2c-qv-size-label .p2c-qv-tick {
    opacity: 1;
    color: var(--p2c-accent);
}

/* ==========================================================================
   RESPONSIVE ADJUSTMENTS
   ========================================================================== */

.p2c-shop-filters-overlay,
.p2c-shop-filters-head,
.p2c-shop-filters-mobile-actions {
    display: none;
}

@media (max-width: 767px) {
    .p2c-shop-toolbar-main,
    .p2c-shop-toolbar-sort,
    .p2c-shop-sort-row {
        width: 100%;
    }

    .p2c-shop-orbit {
        display: none !important;
    }

    .p2c-shop-shell {
        padding: 2rem 1rem 2.5rem !important;
    }

    .p2c-shop-toolbar {
        align-items: stretch !important;
        gap: 1rem !important;
    }

    .p2c-shop-toolbar-main {
        flex-wrap: wrap;
        align-items: center;
    }

    .p2c-shop-toolbar-sort {
        justify-content: stretch !important;
    }

    .p2c-shop-sort-row {
        flex-wrap: nowrap !important;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem !important;
    }

    .p2c-shop-toolbar .woocommerce-ordering {
        margin: 0;
        flex: 1 1 0%;
        min-width: 0;
        display: flex;
        justify-content: flex-end;
    }

    .p2c-shop-toolbar .woocommerce-ordering select {
        min-width: 0;
        width: auto;
        max-width: 100%;
        text-align: right;
        text-align-last: right;
    }

    /* #p2c-product-grid mobile gaps: see src/scss/pages/_shop-listings.scss (p2c-styles.css) */

    .woocommerce ul.products[class*="columns-"] li.product,
    .woocommerce-page ul.products[class*="columns-"] li.product {
        width: 100%;
    }

    .p2c-weekly-pack {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .p2c-weekly-pack-head {
        margin-bottom: 2rem;
    }

    .p2c-weekly-pack-head h2 {
        font-size: 2.4rem;
        line-height: 0.95;
    }

    .p2c-weekly-pack-shell {
        padding: 0;
    }

    .p2c-weekly-pack-layout {
        align-items: stretch;
        gap: 1.5rem;
    }

    .p2c-weekly-pack-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem;
    }

    .p2c-weekly-pack-card {
        padding: 0.75rem;
    }

    .p2c-weekly-pack-card .aspect-square {
        margin-bottom: 0.65rem;
    }

    .p2c-weekly-pack-card .text-xs {
        font-size: 0.7rem;
        line-height: 1.35;
    }

    .p2c-weekly-pack-card-last {
        grid-column: 1 / -1;
    }

    .p2c-weekly-pack-summary {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        padding-left: 0;
        padding-top: 1rem;
        width: 100%;
    }

    .p2c-weekly-pack-summary .text-3xl {
        font-size: 2rem;
    }

    .p2c-weekly-pack-summary .p2c-add-bundle-btn {
        font-size: 0.95rem;
        padding: 0.9rem 1rem;
    }
}

/* Shop filters: slide-over drawer at all breakpoints (no in-flow sidebar); toggle styles in p2c-styles.css */
/* Above the category-deal floating cart (z-index 900) so it can never cover Apply Filters. */
.p2c-shop-filters-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(10, 10, 10, 0.55);
    backdrop-filter: blur(4px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.p2c-shop-filters-overlay.is-visible {
    opacity: 1;
    pointer-events: auto;
    display: block;
}

.p2c-shop-filters {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 1001;
    width: min(88vw, 400px);
    max-width: 400px;
    margin: 0;
    padding: 1rem 1.25rem 0;
    background: #fff;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
    transform: translateX(-100%);
    transition: transform 0.28s ease;
}

.p2c-shop-filters-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 1rem;
    /* Keeps the scrollbar off the search field and the row tick marks. */
    padding-right: 0.6rem;
    scrollbar-gutter: stable;
}

.p2c-shop-filters.is-open {
    transform: translateX(0);
}

.p2c-shop-filters-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    z-index: 2;
    margin: -1rem -1.25rem 0.75rem;
    padding: 0.875rem 1.25rem 0.75rem;
    background: #fff;
    border-bottom: 1px solid #f3f4f6;
}

.p2c-shop-filters-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: var(--p2c-dark);
}

.p2c-shop-sidebar-promo {
    display: none !important;
}

.p2c-shop-filters-mobile-actions {
    display: block;
    flex-shrink: 0;
    margin: 0 -1.25rem 0;
    padding: 1rem 1.25rem;
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    background: #fff;
    border-top: 1px solid #f3f4f6;
}

.p2c-shop-filters-apply {
    width: 100%;
    padding: 1rem 1.25rem;
    border: 0;
    background: var(--p2c-dark);
    color: #fff;
    font-family: var(--p2c-font-display);
    font-size: 0.875rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* Blog single: list markers (disc/numbers) and iframe responsive */
.single .p2c-post-content ul {
    list-style-type: disc;
    list-style-position: outside;
}
.single .p2c-post-content ol {
    list-style-type: decimal;
    list-style-position: outside;
}
.single .p2c-post-content li {
    display: list-item;
}
.single .p2c-post-content figure:has(iframe),
.single .p2c-post-content div:has(iframe),
.single .p2c-post-content .wp-block-embed,
.single .p2c-post-content center:has(iframe) {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    position: relative;
    margin-top: 2rem;
    margin-bottom: 2rem;
}
.single .p2c-post-content figure:has(iframe) iframe,
.single .p2c-post-content div:has(iframe) iframe,
.single .p2c-post-content .wp-block-embed iframe,
.single .p2c-post-content center:has(iframe) iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.single .p2c-post-content iframe {
    display: block;
    max-width: 100%;
}
.single .p2c-post-content hr {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

/* Blog single: link spacing and missing WYSIWYG tags */
.single .p2c-post-content a {
    margin-top: 20px;
    margin-bottom: 20px;
}
.single .p2c-post-content p {
    margin-top: 1rem;
    margin-bottom: 1rem;
}
.single .p2c-post-content h1, .single .p2c-post-content h2, .single .p2c-post-content h3,
.single .p2c-post-content h4, .single .p2c-post-content h5, .single .p2c-post-content h6 {
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
}
.single .p2c-post-content blockquote {
    margin-top: 2rem;
    margin-bottom: 2rem;
    padding-left: 1.5rem;
    border-left: 4px solid var(--p2c-accent);
    color: #4b5563;
}
.single .p2c-post-content strong {
    font-weight: 600;
}
.single .p2c-post-content img {
    max-width: 100%;
    height: auto;
    margin-top: 1rem;
    margin-bottom: 1rem;
}
.single .p2c-post-content code {
    font-size: 0.875em;
    padding: 0.2em 0.4em;
    background: #f3f4f6;
    border-radius: 2px;
}
.single .p2c-post-content pre {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    padding: 1rem;
    overflow-x: auto;
    background: #f3f4f6;
    border-radius: 4px;
}
.single .p2c-post-content pre code {
    padding: 0;
    background: none;
}
.single .p2c-post-content table {
    width: 100%;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    border-collapse: collapse;
}
.single .p2c-post-content th,
.single .p2c-post-content td {
    padding: 0.5rem 0.75rem;
    border: 1px solid #e5e7eb;
    text-align: left;
}
.single .p2c-post-content th {
    font-weight: 600;
    background: #f9fafb;
}

/* ── Cart Recommendations Panel (in-drawer stack + motion from theme git history) ── */
#p2c-mini-cart {
    isolation: isolate;
}
@media (min-width: 1024px) {
    /* Let .p2c-mini-cart__recs-reopen (-translate-x-full) sit outside the left edge; inner scroll stays on .p2c-mini-cart-body__scroll */
    #p2c-mini-cart.is-open {
        overflow: visible;
    }
    #p2c-cart-recs {
        background: #faf1f1;
        transform: translateX(0);
        opacity: 0;
        will-change: transform, opacity;
        transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.45s ease, visibility 0s 0.7s;
        box-shadow: inset -18px 0 28px -22px rgba(0, 0, 0, 0.35), -10px 0 26px -24px rgba(0, 0, 0, 0.2);
    }
    #p2c-cart-recs.p2c-recs-hidden {
        transform: translateX(0);
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
        transition: transform 0.55s cubic-bezier(0.55, 0, 1, 0.45), opacity 0.25s ease, visibility 0s 0.55s;
    }
    #p2c-cart-recs.p2c-recs-visible {
        transform: translateX(-100%);
        opacity: 1;
        pointer-events: auto;
        visibility: visible;
        transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.45s ease, visibility 0s 0s;
    }
}
#p2c-quick-view {
    z-index: 9999 !important;
}
.p2c-recs-items {
    transition: opacity 0.28s ease, transform 0.28s ease;
}
.p2c-recs-items.p2c-recs-items-refreshing {
    opacity: 0.55;
    transform: translateY(8px);
}
.p2c-rec-item {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.32s ease, transform 0.32s ease;
}
.p2c-rec-item.is-entering {
    opacity: 0;
    transform: translateY(12px);
}
.p2c-recs-loader {
    align-items: center;
    text-align: center;
}
.p2c-recs-loader-text {
    text-align: center;
}

.p2c-recs-loading-line {
    position: relative;
    display: block;
    width: 100%;
    max-width: 12rem;
    margin: 0 auto;
    height: 2px;
    background: #e5e7eb;
    overflow: hidden;
    border-radius: 1px;
}
.p2c-recs-loading-bar {
    position: absolute;
    inset: 0 auto 0 0;
    width: 40%;
    background: var(--p2c-accent, #B7995B);
    animation: p2c-cart-loading-line 1s ease-in-out infinite;
}
@media (max-width: 1023px) {
    #p2c-cart-recs { display: none !important; }
    .p2c-mini-cart__recs-reopen { display: none !important; }
}
.p2c-mobile-recs-scroll {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 8px;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.p2c-mobile-recs-scroll::-webkit-scrollbar { display: none; }
.p2c-mobile-rec-card {
    flex: 0 0 130px;
    scroll-snap-align: start;
}
.p2c-mobile-rec-thumb {
    width: 130px;
    height: 160px;
    background: #f3f4f6;
    overflow: hidden;
    border-radius: 2px;
    margin-bottom: 8px;
}

/* ═══════════════════════════════════════════
   YITH Gift Card form
   ═══════════════════════════════════════════ */
.p2c-single-product form.gift-cards_form.cart,
form.gift-cards_form.cart.p2c-gift-card-form {
    display: block !important;
    width: 100%;
    max-width: 100%;
}
.gift-cards_form {
    --p2c-gift-gap: 1.25rem;
    border: 1px solid #ead8d8;
    padding: 50px;
    border-radius: 15px;
}

/* Grid layout */
.gift-cards_form .p2c-gift-card-form__grid { display: grid; gap: var(--p2c-gift-gap); }
.gift-cards_form .p2c-gift-card-form__main { display: grid; gap: 1.75rem; }
.gift-cards_form .p2c-gift-card-form__panel { padding: 0; background: transparent; border: 0; border-radius: 0; }

/* Amount buttons row */
.gift-cards_form .gift-cards-list,
.gift-cards_form .p2c-gift-card-amounts {
    display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 20px; align-items: stretch;
}

/* Steps */
.gift-cards_form .p2c-gift-card-step { display: grid; gap: 0.875rem; margin: 0; }
.gift-cards_form .p2c-gift-card-step-title {
    margin: 0; color: var(--p2c-dark);
    font-family: var(--p2c-font-display);
    font-size: 1.65rem; font-weight: 400; line-height: 1.15;
}
.gift-cards_form .ywgc_select_amount_title,
.gift-cards_form .ywgc_delivery_info_title {
    width: 100%; margin: 0; color: var(--p2c-dark);
    font-family: var(--p2c-font-sans);
    font-size: 0.8125rem; font-weight: 700; line-height: 1.1;
    text-transform: uppercase; letter-spacing: 0.12em;
}

/* Amount buttons */
.gift-cards_form .ywgc-predefined-amount-button,
.gift-cards_form .p2c-gift-card-amount-button {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 1 1 calc(25% - 0.5rem); min-width: 0; min-height: 3.25rem;
    padding: 0.65rem 0.85rem;
    background: #f9fafb; border: 1px solid #e5e7eb;
    color: var(--p2c-dark); font-weight: 700; font-size: 0.9rem; line-height: 1;
    transition: var(--p2c-transition); border-radius: 0;
}
.gift-cards_form .ywgc-predefined-amount-button:hover,
.gift-cards_form .p2c-gift-card-amount-button:hover,
.gift-cards_form .ywgc-predefined-amount-button.selected_button,
.gift-cards_form .ywgc-predefined-amount-button.selected_button:hover {
    background: var(--p2c-dark); border-color: var(--p2c-dark); color: #fff;
}
.gift-cards_form .ywgc-predefined-amount-button .amount,
.gift-cards_form .ywgc-predefined-amount-button .woocommerce-Price-amount { color: inherit; font-weight: 700; }
.gift-cards_form .p2c-gift-card-amount-button--manual {
    flex: 1 1 calc(25% - 0.5rem); justify-content: flex-start; gap: 0.5rem; padding-inline: 0.9rem;
}
.gift-cards_form .ywgc-manual-amount-container #ywgc-manual-amount-div-wrapper { display: flex; align-items: center; gap: 0.5rem; width: 100%; }
.gift-cards_form .ywgc-manual-currency-symbol { color: #6b7280; font-weight: 700; }
.gift-cards_form input#ywgc-manual-amount.ywgc-manual-amount {
    width: 100%; min-width: 0; border: 0; padding: 0; background: transparent; box-shadow: none; font-weight: 600;
}

/* Content editor & field groups */
.gift-card-content-editor.step-appearance,
.gift-card-content-editor.step-content { margin-bottom: 20px; }
.gift-cards_form .gift-card-content-editor { display: grid; gap: 2.5rem; }
.gift-cards_form .p2c-gift-card-fields,
.gift-cards_form .p2c-gift-card-others-fields,
.gift-cards_form .p2c-gift-card-recipient-modes,
.gift-cards_form .ywgc-single-recipient,
.gift-cards_form .ywgc-send-and-delivery-container { display: grid; gap: var(--p2c-gift-gap); }
.gift-cards_form .p2c-gift-card-fields--two,
.gift-cards_form .ywgc-send-and-delivery-container,
.gift-cards_form .ywgc-single-recipient { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Radio buttons */
.gift-cards_form .p2c-gift-card-recipient-modes {
    display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem;
}
.gift-cards_form .p2c-gift-card-choice {
    display: inline-flex; align-items: center; gap: 0.5rem; margin: 0;
    color: var(--p2c-dark); font-size: 0.875rem; font-weight: 600; cursor: pointer;
}
.gift-cards_form .p2c-gift-card-choice input[type="radio"] {
    -webkit-appearance: none; appearance: none;
    width: 1.125rem; height: 1.125rem; margin: 0;
    border: 1.5px solid #9ca3af; border-radius: 9999px;
    background: #fff; position: relative; flex: 0 0 1.125rem; cursor: pointer;
}
.gift-cards_form .p2c-gift-card-choice input[type="radio"]::after {
    content: ""; position: absolute; inset: 3px; border-radius: 9999px;
    background: var(--p2c-dark); opacity: 0; transform: scale(0.6);
    transition: opacity 0.18s ease, transform 0.18s ease;
}
.gift-cards_form .p2c-gift-card-choice input[type="radio"]:checked { border-color: var(--p2c-dark); }
.gift-cards_form .p2c-gift-card-choice input[type="radio"]:checked::after { opacity: 1; transform: scale(1); }
.gift-cards_form .p2c-gift-card-choice span { line-height: 1.35; }

/* Reset floats & widths */
.gift-cards_form .ywgc-recipient-name,
.gift-cards_form .ywgc-recipient-email,
.gift-cards_form .ywgc-sender-name,
.gift-cards_form .ywgc-message,
.gift-cards_form .ywgc-postdated,
.gift-cards_form .ywgc-single-recipient,
.gift-cards_form .ywgc-send-and-delivery-container > * {
    width: 100% !important; min-width: 0; max-width: 100%;
    float: none !important; margin: 0 !important; clear: none !important;
}

/* Floating label fields */
.gift-cards_form .p2c-floating-field { position: relative; }
.gift-cards_form .yith_wc_gift_card_input_recipient_details,
.gift-cards_form .ywgc-recipient,
.gift-cards_form #ywgc-recipient-name,
.gift-cards_form #ywgc-recipient-email,
.gift-cards_form #ywgc-delivery-date,
.gift-cards_form #ywgc-sender-name,
.gift-cards_form #ywgc-edit-message {
    width: 100%; min-width: 0;
    padding: 1rem;
    border: 1px solid #e5e7eb; background: #f9fafb;
    color: var(--p2c-dark); box-shadow: none; border-radius: 0;
    font-weight: 700; font-size: 0.8125rem; letter-spacing: 0.08em;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.gift-cards_form .p2c-floating-field input:focus,
.gift-cards_form .p2c-floating-field textarea:focus {
    border-color: var(--p2c-dark); background: #fff;
    outline: none; box-shadow: 0 0 0 1px var(--p2c-dark);
}

/* Labels — centered by default, float to border on focus */
.gift-cards_form .p2c-floating-field input::placeholder,
.gift-cards_form .p2c-floating-field textarea::placeholder { color: transparent; }
.gift-cards_form .p2c-floating-field > label {
    position: absolute; top: 42%; left: 0.75rem; z-index: 1;
    display: inline-block; margin: 0; padding: 0 0.35rem;
    background: transparent;
    color: #6b7280; font-size: 0.6875rem; font-weight: 700;
    line-height: 1; text-transform: uppercase; letter-spacing: 0.1em;
    pointer-events: none; transform: translateY(-50%);
    transition: top 0.2s ease, transform 0.2s ease, color 0.2s ease, background 0.2s ease, font-size 0.2s ease;
}
.gift-cards_form .p2c-floating-field textarea + label {
    top: 1.15rem; transform: translateY(0);
}
/* Floated state — sits ON the border, half above half below */
.gift-cards_form .p2c-floating-field input:focus + label,
.gift-cards_form .p2c-floating-field input:not(:placeholder-shown) + label,
.gift-cards_form .p2c-floating-field textarea:focus + label,
.gift-cards_form .p2c-floating-field textarea:not(:placeholder-shown) + label {
    top: 0; transform: translateY(65%);
    background: #f9fafb; color: var(--p2c-dark);
    font-size: 0.625rem;
}
.gift-cards_form .p2c-floating-field input:focus + label,
.gift-cards_form .p2c-floating-field textarea:focus + label {
    background: #fff;
}

/* Helper text & message area */
.gift-cards_form .p2c-gift-card-helper { display: block; margin-top: 0.35rem; color: #9ca3af; font-size: 0.75rem; }
.gift-cards_form #ywgc-edit-message { min-height: 8rem; resize: vertical; }

/* Others toggle */
.gift-cards_form .p2c-gift-card-others-fields,
.gift-cards_form .p2c-gift-card-checkbox { display: none; }
.gift-cards_form.p2c-gift-card-mode-others .p2c-gift-card-others-fields { display: grid; }
.gift-cards_form .p2c-gift-card-checkbox { align-items: flex-start; gap: 0.75rem; margin-top: 0.25rem; }
.gift-cards_form.p2c-gift-card-mode-others .p2c-gift-card-checkbox { display: flex; }

/* Hide quantity on gift card */
.gift-cards_form .quantity { display: none !important; }

/* CTA wrapper — matches bundle product style */
.gift-cards_form .p2c-gift-card-actions,
.gift-cards_form .gift_card_template_button.variations_button {
    display: flex; flex-wrap: wrap; align-items: stretch; gap: 0;
    margin-top: 0.5rem; padding: 1.25rem 1.5rem;
    background: #fff; border-top: 1px solid #e5e7eb;
    box-shadow: 0 -10px 40px -15px rgba(0,0,0,0.08);
}

/* Add to cart button */
.p2c-single-product .gift-cards_form .single_add_to_cart_button.gift_card_add_to_cart_button,
.gift-cards_form .single_add_to_cart_button.gift_card_add_to_cart_button {
    flex: 1 1 100%; width: 100%; min-height: 4rem;
    padding: 0 2rem;
    background: var(--p2c-primary) !important; color: #fff !important;
    font-family: var(--p2c-font-brutalist); font-size: 1.1rem;
    letter-spacing: 0.2em; text-transform: uppercase;
    box-shadow: none; position: relative; overflow: hidden; transform: none !important;
    display: flex; align-items: center; justify-content: center; gap: 1rem;
}
.gift-cards_form .single_add_to_cart_button.gift_card_add_to_cart_button .p2c-gift-card-btn-bg {
    background: var(--p2c-accent); transform: translateY(100%); transition: transform 0.3s ease;
}
.gift-cards_form .single_add_to_cart_button.gift_card_add_to_cart_button:hover .p2c-gift-card-btn-bg { transform: translateY(0); }
.gift-cards_form .single_add_to_cart_button.gift_card_add_to_cart_button:hover,
.gift-cards_form .single_add_to_cart_button.gift_card_add_to_cart_button:focus {
    background: var(--p2c-primary) !important; box-shadow: none;
}

.gift-cards_form .ywgc-product-wrap { width: 100%; }

/* Desktop grid */
@media (min-width: 992px) {
    .gift-cards_form .p2c-gift-card-form__grid {
        grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr); align-items: start;
    }
    .gift-cards_form .p2c-gift-card-form__preview { position: sticky; top: 1.5rem; }
}

/* Mobile */
@media (max-width: 767px) {
    .gift-cards_form {
        border: 0;
        padding: 0;
        border-radius: 0;
    }
    .gift-cards_form .p2c-gift-card-form__panel { padding: 0; }
    .gift-cards_form .p2c-gift-card-step-title { font-size: 1.35rem; }
    .gift-cards_form .p2c-gift-card-fields--two,
    .gift-cards_form .ywgc-single-recipient,
    .gift-cards_form .ywgc-send-and-delivery-container { grid-template-columns: minmax(0, 1fr); }
    .gift-cards_form .ywgc-predefined-amount-button,
    .gift-cards_form .p2c-gift-card-amount-button { flex: 1 1 calc(50% - 0.375rem); min-width: 0; }
    .p2c-single-product .gift-cards_form .single_add_to_cart_button.gift_card_add_to_cart_button,
    .gift-cards_form .single_add_to_cart_button.gift_card_add_to_cart_button { width: 100%; min-width: 100%; }
}