/* Pen Paper Perfect 1.0.3 — targeted fixes, not a reset or redesign. */

/* 1. The original 160px flex-basis became HEIGHT in a column flex container. */
body .subscribe[data-ppp-form] { min-width:0; }
body .subscribe[data-ppp-form] > input[type="email"] { box-sizing:border-box; min-width:0; }
body .subscribe[data-ppp-form] .ppp-consent input[type="checkbox"] {
    flex:0 0 17px; width:17px; height:17px; min-height:17px; max-height:17px; padding:0;
}
@media (max-width:767px) {
    body .subscribe[data-ppp-form] { display:flex; flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:12px; }
    body .subscribe[data-ppp-form] > input[type="email"] {
        flex:0 0 auto!important; width:100%!important; height:54px!important;
        min-height:54px!important; max-height:54px!important; margin:0;
        padding:14px 18px; font-size:16px; line-height:24px;
    }
    body .subscribe[data-ppp-form] > button[type="submit"] {
        flex:0 0 auto; width:100%; min-height:52px; white-space:normal; margin:0;
    }
    body .subscribe[data-ppp-form] > .ppp-consent,
    body .subscribe[data-ppp-form] > .ppp-form-status { flex:0 0 auto; width:100%; }
    body .subscribe[data-ppp-form] .ppp-consent { font-size:12px; gap:9px; }
    body .subscribe[data-ppp-form] .ppp-consent span { flex:1; min-width:0; }
}

/* 2. Full-width mobile navigation; defeat desktop grid justify-self/shrink-to-fit. */
@media (max-width:900px) {
    body .ppp-header-shell .header { overflow:visible; }
    body .ppp-header-shell .nav { position:static; }
    body .ppp-header-shell nav.menu {
        grid-column:auto; position:absolute; inset-inline:0!important; left:0!important; right:0!important;
        width:100%!important; max-width:none!important; min-width:0; margin:0!important;
        transform:none!important; justify-self:stretch!important; box-sizing:border-box;
        top:var(--ppp-nav-height,92px); border-radius:0 0 20px 20px;
        background:var(--ppp-mobile-menu-bg,#fffcf9); padding:14px 20px 20px;
        max-height:calc(100dvh - var(--ppp-menu-offset,145px));
        overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; z-index:100;
        -webkit-backdrop-filter:none; backdrop-filter:none;
    }
    body .ppp-header-shell nav.menu.open { display:flex; flex-direction:column; align-items:stretch; }
    body .ppp-header-shell nav.menu > .ppp-nav-list { display:flex; flex-direction:column; width:100%; gap:3px; }
    body .ppp-header-shell nav.menu .ppp-nav-list > li,
    body .ppp-header-shell nav.menu > a { width:100%; min-width:0; }
    body .ppp-header-shell nav.menu a { display:block; width:100%; text-align:left; padding:13px 16px; border-radius:10px; }
    body .ppp-header-shell .nav-actions { grid-column:3; justify-self:end; }
}
@media (max-width:600px) {
    body .ppp-header-shell nav.menu { top:var(--ppp-mobile-nav-height,76px); padding-inline:14px; }
    body .ppp-header-shell .nav { gap:8px; }
}

/* 3. Keep the selected hero image. Cover the entire mobile hero, not just its bottom 46%. */
@media (max-width:767px) {
    body .hero,
    body .inner-hero,
    body [class*="elementor-widget-ppp-"] .hero,
    body [class*="elementor-widget-ppp-"] .inner-hero,
    body .hero .slide {
        background-size:cover!important; background-repeat:no-repeat!important;
        background-position:center center!important; background-attachment:scroll!important;
    }
    body .inner-hero,
    body [class*="elementor-widget-ppp-about-"] .hero,
    body .hero[style] {
        background-image:linear-gradient(90deg,rgba(251,247,243,.9),rgba(251,247,243,.5)),var(--ppp-background-image,var(--ppp-original-page-hero))!important;
    }
    body .hero-copy, body .inner-hero-copy { min-width:0; max-width:100%; }
    body .hero h1, body .inner-hero h1 { overflow-wrap:break-word; }
}

/* 4/5. Block layouts: widths + added padding must stay INSIDE the container. */
body .wp-block-woocommerce-cart,
body .wp-block-woocommerce-checkout { width:100%; max-width:100%; min-width:0; box-sizing:border-box; }
body .wp-block-woocommerce-cart *,
body .wp-block-woocommerce-checkout * { box-sizing:border-box; }
body .wp-block-woocommerce-cart .wc-block-components-main,
body .wp-block-woocommerce-checkout .wc-block-components-main,
body .wp-block-woocommerce-cart .wc-block-components-sidebar,
body .wp-block-woocommerce-checkout .wc-block-components-sidebar {
    min-width:0; max-width:100%; margin-inline:0;
}
body .wp-block-woocommerce-cart .wc-block-components-sidebar,
body .wp-block-woocommerce-checkout .wc-block-components-sidebar {
    border:1px solid var(--line,rgba(76,60,51,.14)); border-radius:20px; padding:22px;
    background:#eee6dc;
}
body .wp-block-woocommerce-cart .wc-block-cart-items { width:100%; max-width:100%; margin:0; }
body .wp-block-woocommerce-cart .wc-block-cart-item__image img,
body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image img,
body .woocommerce-cart td.product-thumbnail img,
body .ppp-checkout-product img {
    display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:10px;
}
body .wp-block-woocommerce-cart .wc-block-components-product-name { font-size:22px; line-height:1.2; overflow-wrap:anywhere; }
body .wp-block-woocommerce-cart .wc-block-cart-item__product,
body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__description { min-width:0; overflow-wrap:anywhere; }
body .wp-block-woocommerce-cart .wc-block-components-product-metadata { line-height:1.5; }
body .wp-block-woocommerce-cart .wc-block-components-quantity-selector { margin:10px 0 0; max-width:112px; }
body .wp-block-woocommerce-cart .wc-block-components-totals-wrapper,
body .wp-block-woocommerce-checkout .wc-block-components-totals-wrapper { max-width:100%; }
body .wp-block-woocommerce-checkout .wc-block-components-checkout-step { min-width:0; }
body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__image { flex:0 0 56px; width:56px; }
body .ppp-checkout-product { display:inline-flex; align-items:center; gap:10px; max-width:100%; }
body .ppp-checkout-product img { flex:0 0 56px; width:56px; height:56px; }
body .ppp-checkout-product > span { min-width:0; overflow-wrap:anywhere; }

@media (min-width:1000px) {
    body .wp-block-woocommerce-cart.wc-block-components-sidebar-layout,
    body .wp-block-woocommerce-checkout.wc-block-components-sidebar-layout,
    body .wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
    body .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
        display:grid!important; grid-template-columns:minmax(0,1fr) minmax(280px,360px);
        align-items:start; gap:32px; width:100%; margin:0;
    }
    body .wp-block-woocommerce-cart .wc-block-components-sidebar-layout > .wc-block-components-main,
    body .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout > .wc-block-components-main,
    body .wc-block-components-sidebar-layout.wp-block-woocommerce-cart > .wc-block-components-main,
    body .wc-block-components-sidebar-layout.wp-block-woocommerce-checkout > .wc-block-components-main {
        width:auto!important; padding-inline:0; flex:none;
    }
    body .wp-block-woocommerce-cart .wc-block-components-sidebar-layout > .wc-block-components-sidebar,
    body .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout > .wc-block-components-sidebar,
    body .wc-block-components-sidebar-layout.wp-block-woocommerce-cart > .wc-block-components-sidebar,
    body .wc-block-components-sidebar-layout.wp-block-woocommerce-checkout > .wc-block-components-sidebar { width:auto!important; flex:none; }
}
@media (max-width:999px) {
    body .wp-block-woocommerce-cart.wc-block-components-sidebar-layout,
    body .wp-block-woocommerce-checkout.wc-block-components-sidebar-layout,
    body .wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
    body .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
        display:flex!important; flex-direction:column; gap:22px; width:100%; margin:0;
    }
    body .wp-block-woocommerce-cart .wc-block-components-main,
    body .wp-block-woocommerce-checkout .wc-block-components-main,
    body .wp-block-woocommerce-cart .wc-block-components-sidebar,
    body .wp-block-woocommerce-checkout .wc-block-components-sidebar { width:100%!important; flex:0 0 auto; }
    body .wp-block-woocommerce-cart .wc-block-components-main,
    body .wp-block-woocommerce-checkout .wc-block-components-main { padding-inline:0; }
    body .wp-block-woocommerce-checkout .wc-block-components-sidebar { order:-1; }
}
@media (max-width:767px) {
    body.woocommerce-cart .ppp-standard-page,
    body.woocommerce-checkout .ppp-standard-page,
    body.woocommerce-account .ppp-standard-page { width:calc(100% - 28px); margin-inline:auto; min-width:0; padding-top:var(--ppp-standard-top-spacing,96px); }
    body.woocommerce-cart .ppp-standard-page > h1,
    body.woocommerce-checkout .ppp-standard-page > h1,
    body.woocommerce-account .ppp-standard-page > h1 {
        font-size:38px; line-height:1.1; margin:0 0 24px;
    }
    body .wp-block-woocommerce-cart .wc-block-components-sidebar,
    body .wp-block-woocommerce-checkout .wc-block-components-sidebar { padding:18px; border-radius:18px; }
    body .wp-block-woocommerce-cart .wc-block-cart-items { display:block; padding:14px; border-radius:18px; }
    body .wp-block-woocommerce-cart .wc-block-cart-items thead { display:none; }
    body .wp-block-woocommerce-cart .wc-block-cart-items tbody { display:block; width:100%; }
    body .wp-block-woocommerce-cart .wc-block-cart-items__row {
        display:grid!important; grid-template-columns:64px minmax(0,1fr) auto; gap:12px;
        width:100%; padding:12px 0!important; margin:0;
    }
    body .wp-block-woocommerce-cart .wc-block-cart-items__row > td { display:block; width:auto!important; padding:0!important; margin:0; min-width:0; border:0; }
    body .wp-block-woocommerce-cart .wc-block-cart-item__image { grid-column:1; grid-row:1; }
    body .wp-block-woocommerce-cart .wc-block-cart-item__image a,
    body .wp-block-woocommerce-cart .wc-block-cart-item__image img { display:block; width:64px; height:64px; }
    body .wp-block-woocommerce-cart .wc-block-cart-item__product { grid-column:2; grid-row:1; }
    body .wp-block-woocommerce-cart .wc-block-cart-item__total { grid-column:3; grid-row:1; text-align:right; white-space:nowrap; font-size:13px; }
    body .wp-block-woocommerce-cart .wc-block-components-product-name { font-size:20px; }
    body .wp-block-woocommerce-cart .wc-block-components-product-metadata { font-size:12px; }
    body .wp-block-woocommerce-cart .wc-block-cart-item__wrap { padding:0; }
    body .wp-block-woocommerce-cart .wc-block-cart-item__quantity { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:0; }
    body .wp-block-woocommerce-cart .wc-block-cart-item__remove-link { margin:10px 0 0; }
    body .wp-block-woocommerce-cart .wc-block-components-button,
    body .wp-block-woocommerce-checkout .wc-block-components-button { min-height:50px; font-size:14px; white-space:normal; }
    body .wp-block-woocommerce-checkout .wc-block-components-checkout-step { padding:18px 14px; margin-bottom:18px; }
    body .wp-block-woocommerce-checkout .wc-block-components-text-input input,
    body .wp-block-woocommerce-checkout .wc-block-components-combobox-control input,
    body .wp-block-woocommerce-checkout .wc-block-components-textarea { min-height:54px; font-size:16px; width:100%; max-width:100%; border-radius:10px; }
    body .wp-block-woocommerce-checkout .wc-block-components-address-form { min-width:0; }
    body .wp-block-woocommerce-checkout .wc-block-components-address-form__first-name,
    body .wp-block-woocommerce-checkout .wc-block-components-address-form__last-name {
        width:100%!important; flex-basis:100%!important; margin-inline:0!important;
    }
    body .wp-block-woocommerce-checkout .wc-block-components-checkout-step__title { font-family:var(--serif,Georgia,serif); font-size:28px; line-height:1.15; }
    body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item { gap:12px; }
    body .wp-block-woocommerce-checkout .wc-block-components-order-summary-item__total-price { font-size:14px; }
    /* Keep actual classic-cart thumbnails visible; don't remove data to hide overflow. */
    body.woocommerce-cart .woocommerce table.cart td.product-thumbnail { display:block!important; text-align:center!important; }
    body.woocommerce-cart .woocommerce table.cart td.product-thumbnail::before { display:none!important; }
    body.woocommerce-cart .woocommerce table.cart td.product-thumbnail img { width:84px!important; height:84px; margin:auto; }
    body.woocommerce-checkout .woocommerce form.checkout { grid-template-columns:minmax(0,1fr); gap:22px; }
    body.woocommerce-checkout .woocommerce form.checkout #customer_details,
    body.woocommerce-checkout .woocommerce form.checkout #order_review,
    body.woocommerce-checkout .woocommerce form.checkout #order_review_heading { grid-column:1; grid-row:auto; min-width:0; width:100%; }
    body.woocommerce-checkout .woocommerce form.checkout #customer_details { padding:18px; }
    body.woocommerce-checkout .woocommerce form .form-row-first,
    body.woocommerce-checkout .woocommerce form .form-row-last { width:100%; float:none; }
}
@media (max-width:359px) {
    body .wp-block-woocommerce-cart .wc-block-cart-items__row { grid-template-columns:56px minmax(0,1fr); gap:10px; }
    body .wp-block-woocommerce-cart .wc-block-cart-item__image a,
    body .wp-block-woocommerce-cart .wc-block-cart-item__image img { width:56px; height:56px; }
    body .wp-block-woocommerce-cart .wc-block-cart-item__total { grid-column:2; grid-row:2; text-align:left; }
}

/* 7. Woo's clearfix pseudo-elements were becoming extra CSS grid cells. */
body.woocommerce-account .woocommerce::before,
body.woocommerce-account .woocommerce::after { content:none!important; display:none!important; }
body.woocommerce-account .woocommerce {
    display:grid; grid-template-columns:minmax(180px,240px) minmax(0,1fr); gap:24px; align-items:start; min-width:0;
}
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column:1/-1; }
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper:empty { display:none; }
body.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation { grid-column:1; float:none; width:100%; min-width:0; margin:0; }
body.woocommerce-account .woocommerce > .woocommerce-MyAccount-content { grid-column:2; float:none; width:100%; min-width:0; margin:0; overflow-wrap:anywhere; }
body.woocommerce-account .woocommerce > h2,
body.woocommerce-account .woocommerce > form.login,
body.woocommerce-account .woocommerce > #customer_login { grid-column:1/-1; }
body.woocommerce-account .woocommerce-MyAccount-content table { max-width:100%; }
@media (max-width:767px) {
    body.woocommerce-account .woocommerce { grid-template-columns:minmax(0,1fr); gap:18px; }
    body.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation,
    body.woocommerce-account .woocommerce > .woocommerce-MyAccount-content { grid-column:1; grid-row:auto; padding:16px; }
    body.woocommerce-account .woocommerce-MyAccount-navigation ul { display:flex; flex-wrap:wrap; gap:4px; }
    body.woocommerce-account .woocommerce-MyAccount-navigation li { flex:1 1 calc(50% - 4px); min-width:0; }
    body.woocommerce-account .woocommerce-MyAccount-navigation a { padding:10px; font-size:13px; }
    body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Addresses { grid-template-columns:1fr; }
}
