/*
Theme Name: PassSERUTest Pro
Theme URI: https://passserutest.co.uk
Author: Prime Minds AI
Description: Professional SERU assessment preparation theme for London PHV/PCO drivers. TfL blue and gold, WooCommerce ready. 500 official-style practice questions.
Version: 1.0.0
Requires at least: 6.3
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: passserutest
*/

:root {
  --seru-blue:      #003A9B;
  --seru-blue-dark: #002970;
  --seru-blue-pale: #E8EEFB;
  --seru-red:       #DC241F;
  --seru-gold:      #F5C842;
  --seru-gold-dark: #D9AC1F;
  --white:          #FFFFFF;
  --off-white:      #F8F9FC;
  --steel:          #E2E8F0;
  --text-dark:      #0D1829;
  --text-mid:       #2D3A50;
  --text-muted:     #566070;
  --text-light:     #8A94A8;
  --green-ok:       #1A7A1A;
  --nav-h:          72px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--off-white);color:var(--text-dark);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
#page,#content,#primary,#secondary,main,.site,.site-content,.site-main,.content-area,.hentry,article,.entry-content,.wp-site-blocks,[class*="wp-container-"],[class*="is-layout-"]{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;float:none!important;background:transparent!important}
img{max-width:100%;height:auto;display:block}
a{color:var(--seru-blue);text-decoration:none;transition:color .2s}
a:hover{color:var(--seru-blue-dark)}
p{margin-bottom:1rem}
p:last-child{margin-bottom:0}
ul,ol{list-style:none}

/* ══════════════════════════════════════════════════════════════
   WOOCOMMERCE CHECKOUT — CSS-ONLY STYLING
   No custom checkout PHP template is used. WooCommerce's own
   default checkout template renders untouched, so all WooPayments
   features (Apple Pay, Google Pay, Amazon Pay express checkout
   buttons) work exactly as the plugin intends, with zero risk of
   a custom template breaking hook timing. Everything below is
   pure CSS layered on top of WooCommerce's default markup.
══════════════════════════════════════════════════════════════ */

/* Hide the default page title/hero on cart & checkout pages */
.woocommerce-cart .page-hero,
.woocommerce-checkout .page-hero,
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-cart h1.page-title,
.woocommerce-checkout h1.page-title{display:none!important}

/* Full-width layout, no theme sidebar constraints */
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-cart #primary,
.woocommerce-checkout #primary,
.woocommerce-cart .content-area,
.woocommerce-checkout .content-area,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce{
  width:100%!important;max-width:100%!important;float:none!important;
  padding:0!important;margin:0!important
}
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main{padding-top:calc(var(--nav-h) + 2.5rem)!important;padding-bottom:4rem!important}

/* Centre the actual checkout/cart content within a readable max-width */
.woocommerce-checkout .woocommerce > form.checkout,
.woocommerce-checkout .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-cart .cart-collaterals,
.woocommerce-cart table.shop_table{
  max-width:1200px;margin:0 auto 1.5rem;padding:0 5%;box-sizing:border-box
}
.woocommerce-checkout .woocommerce > form.checkout{
  display:grid!important;grid-template-columns:1fr 420px!important;gap:3rem!important;
  align-items:start!important
}
@media(max-width:900px){
  .woocommerce-checkout .woocommerce > form.checkout{grid-template-columns:1fr!important}
}

/* Notices */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info{
  border-radius:8px!important;padding:1rem 1.2rem!important;margin-bottom:1.5rem!important;
  font-family:'Inter',sans-serif!important;font-size:.88rem!important
}
.woocommerce-message{background:#E8F5E8!important;border-left:4px solid var(--green-ok)!important;color:var(--green-ok)!important}
.woocommerce-error,.woocommerce-info{background:var(--seru-blue-pale)!important;border-left:4px solid var(--seru-blue)!important;color:var(--seru-blue-dark)!important}

/* Billing/shipping field panel */
.woocommerce-checkout #customer_details{
  background:#fff!important;border:1px solid var(--steel)!important;border-radius:12px!important;
  padding:2rem!important;margin-bottom:1.5rem!important
}
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3{
  font-family:'Playfair Display',serif!important;font-size:1.15rem!important;font-weight:700!important;
  color:var(--text-dark)!important;margin-bottom:1.2rem!important;padding-bottom:.75rem!important;
  border-bottom:2px solid var(--seru-blue)!important
}
.woocommerce form .form-row label{
  display:block!important;font-size:.8rem!important;font-weight:700!important;color:var(--text-dark)!important;
  margin-bottom:.4rem!important;letter-spacing:.03em!important;font-family:'Inter',sans-serif!important
}
.woocommerce form .form-row input,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea{
  width:100%!important;padding:.82rem 1rem!important;border:1.5px solid var(--steel)!important;
  border-radius:6px!important;font-family:'Inter',sans-serif!important;font-size:.9rem!important;
  color:var(--text-dark)!important;background:#fff!important;box-sizing:border-box!important;
  transition:border-color .2s!important
}
.woocommerce form .form-row input:focus,
.woocommerce form .form-row select:focus{
  border-color:var(--seru-blue)!important;outline:none!important;
  box-shadow:0 0 0 3px rgba(0,58,155,.08)!important
}
.woocommerce-invalid input,.woocommerce-invalid select{border-color:var(--seru-red)!important}

/* Order review table (classic shortcode checkout, kept for safety) */
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout-review-order{
  background:#fff!important;border:2px solid var(--text-dark)!important;border-radius:12px!important;
  overflow:hidden!important;position:sticky!important;top:calc(var(--nav-h) + 1rem)!important;
  box-shadow:0 8px 40px rgba(0,0,0,.1)!important
}
.woocommerce-checkout #order_review_heading{
  background:linear-gradient(135deg,var(--text-dark),var(--text-dark))!important;
  padding:1.1rem 1.5rem!important;font-family:'Oswald',sans-serif!important;font-size:1rem!important;
  font-weight:700!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:#fff!important;
  margin:0!important
}
table.shop_table.woocommerce-checkout-review-order-table{
  width:100%!important;border:none!important;padding:1.5rem!important;box-sizing:border-box!important
}
table.shop_table.woocommerce-checkout-review-order-table th,
table.shop_table.woocommerce-checkout-review-order-table td{
  font-family:'Inter',sans-serif!important;font-size:.88rem!important;color:var(--text-muted)!important;
  border:none!important;border-bottom:1px solid var(--steel)!important;padding:.7rem 0!important
}
table.shop_table.woocommerce-checkout-review-order-table tr.order-total td,
table.shop_table.woocommerce-checkout-review-order-table tr.order-total th{
  font-family:'Oswald',sans-serif!important;font-size:1.3rem!important;font-weight:700!important;
  color:var(--seru-blue)!important;border-top:2px solid var(--text-dark)!important;border-bottom:none!important
}

/* ── ORDER SUMMARY — MODERN CHECKOUT BLOCK SIDEBAR ───────────────
   Class names below confirmed directly from live DOM inspection
   (browser dev tools), not assumed from documentation alone. */

/* Top-level "Checkout Totals" block — the whole sidebar area including
   order summary, coupon form, and totals. This is the actual card. */
.wp-block-woocommerce-checkout-totals-block{
  background:#fff!important;border:2px solid var(--text-dark)!important;border-radius:12px!important;
  overflow:hidden!important;box-shadow:0 8px 40px rgba(0,0,0,.1)!important;padding:0!important
}
@media(min-width:901px){
  .wp-block-woocommerce-checkout-totals-block{position:sticky!important;top:calc(var(--nav-h) + 1rem)!important}
}

/* Dark navy "Order Summary" heading bar */
.wp-block-woocommerce-checkout-order-summary-block > h2,
.wc-block-components-checkout-order-summary__title{
  background:var(--text-dark)!important;color:#fff!important;font-family:'Oswald',sans-serif!important;
  font-size:1rem!important;font-weight:700!important;text-transform:uppercase!important;
  letter-spacing:.06em!important;padding:1.1rem 1.5rem!important;margin:0!important
}

/* Add consistent side padding to every section inside the card,
   since the dark header bar above needs full-bleed but everything
   else should sit inside readable margins */
.wp-block-woocommerce-checkout-order-summary-cart-items-block,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block,
.wp-block-woocommerce-checkout-order-summary-totals-block{
  padding-left:1.5rem!important;padding-right:1.5rem!important
}
.wp-block-woocommerce-checkout-order-summary-cart-items-block{padding-top:1.5rem!important}
.wp-block-woocommerce-checkout-order-summary-totals-block{padding-bottom:1.5rem!important}

/* Cart line items inside the sidebar */
.wc-block-components-order-summary-item{
  display:flex!important;align-items:flex-start!important;gap:.75rem!important;
  padding:.75rem 0!important;border-bottom:1px solid var(--steel)!important
}
.wc-block-components-order-summary-item__image{flex:0 0 auto!important;width:48px!important}
.wc-block-components-order-summary-item__description{
  font-family:'Inter',sans-serif!important;flex:1 1 auto!important;min-width:0!important
}
.wc-block-components-order-summary-item__total-price{flex:0 0 auto!important;white-space:nowrap!important;text-align:right!important}
.wc-block-components-product-name{
  font-family:'Inter',sans-serif!important;font-weight:700!important;color:var(--text-dark)!important;
  font-size:.85rem!important
}
.wc-block-components-order-summary-item__quantity{
  background:var(--seru-blue)!important;border-color:var(--seru-blue)!important;color:#fff!important
}
.wc-block-components-order-summary-item__total-price,
.wc-block-components-product-price .wc-block-components-formatted-money-amount{
  font-family:'Oswald',sans-serif!important;font-weight:700!important;color:var(--seru-blue)!important
}

/* Totals rows (Subtotal, Total, etc.) */
.wc-block-components-totals-item{
  font-family:'Inter',sans-serif!important;font-size:.88rem!important;color:var(--text-muted)!important;
  padding:.7rem 0!important;border-bottom:1px solid var(--steel)!important
}
.wc-block-components-totals-item__label{font-weight:600!important;color:var(--text-dark)!important}
.wc-block-components-totals-footer-item,
.wc-block-components-totals-footer-item *{
  font-family:'Oswald',sans-serif!important;font-size:1.3rem!important;font-weight:700!important;
  color:var(--seru-blue)!important
}
.wc-block-components-totals-footer-item{
  border-top:2px solid var(--text-dark)!important;border-bottom:none!important;padding-top:1rem!important
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label{
  font-family:'Oswald',sans-serif!important;text-transform:uppercase!important;color:var(--text-dark)!important
}

/* Coupon link/form inside sidebar */
.wc-block-components-totals-coupon-link{
  color:var(--seru-blue)!important;font-family:'Inter',sans-serif!important;font-weight:600!important
}
.wp-block-woocommerce-checkout-order-summary-coupon-form-block input{
  border:1.5px solid var(--steel)!important;border-radius:6px!important;padding:.75rem 1rem!important;
  font-family:'Inter',sans-serif!important
}
.wp-block-woocommerce-checkout-order-summary-coupon-form-block button{
  background:var(--seru-blue)!important;color:#fff!important;border-radius:6px!important;
  font-family:'Inter',sans-serif!important;font-weight:700!important
}

/* Payment methods panel */
#payment{
  background:#fff!important;border:1px solid var(--steel)!important;border-radius:10px!important;
  padding:1.5rem!important;margin-top:0!important
}
#payment ul.payment_methods{list-style:none!important;margin:0 0 1rem!important;padding:0!important}
#payment ul.payment_methods li{
  padding:.75rem!important;border:1.5px solid var(--steel)!important;border-radius:8px!important;
  margin-bottom:.5rem!important;cursor:pointer!important
}
#payment ul.payment_methods li label{
  font-family:'Inter',sans-serif!important;font-size:.9rem!important;font-weight:600!important;
  color:var(--text-dark)!important;cursor:pointer!important;display:flex!important;align-items:center!important;gap:.6rem!important
}
#payment .payment_box{
  background:var(--off-white)!important;border-radius:6px!important;padding:1rem!important;
  margin-top:.5rem!important;font-size:.85rem!important;color:var(--text-muted)!important;
  font-family:'Inter',sans-serif!important
}
#payment #place_order{
  display:block!important;width:100%!important;background:var(--seru-blue)!important;color:#fff!important;
  border:none!important;padding:1.1rem!important;border-radius:8px!important;font-family:'Inter',sans-serif!important;
  font-size:1rem!important;font-weight:700!important;cursor:pointer!important;letter-spacing:.02em!important;
  transition:background .2s!important;margin-top:1rem!important
}
#payment #place_order:hover{background:var(--seru-blue-dark)!important}

/* Modern WooCommerce Checkout Block "Place order" button — different
   markup entirely from the classic #place_order selector above.
   Both are kept so this works regardless of which checkout renders. */
.wc-block-checkout__actions .wc-block-components-button,
.wc-block-components-checkout-place-order-button{
  display:flex!important;width:100%!important;background:var(--seru-blue)!important;color:#fff!important;
  border:none!important;padding:1.25rem 1.5rem!important;border-radius:8px!important;
  font-family:'Inter',sans-serif!important;font-size:1.05rem!important;font-weight:700!important;
  cursor:pointer!important;letter-spacing:.02em!important;transition:background .2s!important;
  margin-top:1rem!important;min-height:56px!important;align-items:center!important;justify-content:center!important
}
.wc-block-checkout__actions .wc-block-components-button:hover,
.wc-block-components-checkout-place-order-button:hover{background:var(--seru-blue-dark)!important;color:#fff!important}
.wc-block-checkout__actions .wc-block-components-button .wc-block-components-button__text{
  color:#fff!important;font-size:1.05rem!important;font-weight:700!important
}

/* Express checkout (Apple Pay / Google Pay / Amazon Pay) —
   real WooPayments block classes, styled but never restructured */
.wc-block-components-express-payment,
.wc-express-payment{
  margin-bottom:1.5rem!important;background:#fff!important;border:1px solid var(--steel)!important;
  border-radius:12px!important;padding:1.5rem!important
}
.wc-block-components-express-payment__title,
.wc-express-payment-form-control--title{
  font-family:'Inter',sans-serif!important;font-size:.8rem!important;font-weight:700!important;
  color:var(--text-muted)!important;text-transform:uppercase!important;letter-spacing:.05em!important;
  margin-bottom:1rem!important;text-align:center!important
}
.wc-block-components-express-payment__event-buttons{
  display:flex!important;gap:.75rem!important;flex-wrap:wrap!important
}
.wc-block-components-express-payment button,
.wc-express-payment button{border-radius:8px!important;margin-bottom:.5rem!important}

/* Coupon form */
.woocommerce-form-coupon-toggle,.showcoupon{font-family:'Inter',sans-serif!important;font-size:.85rem!important;color:var(--text-muted)!important}
.woocommerce-form-coupon{
  background:#fff!important;border:1px solid var(--steel)!important;border-radius:8px!important;
  padding:1rem!important;margin-bottom:1.5rem!important
}
.woocommerce-form-coupon .form-row{margin-bottom:0!important}
.woocommerce-form-coupon .button{
  background:var(--text-dark)!important;color:#fff!important;border:none!important;padding:.75rem 1.2rem!important;
  border-radius:6px!important;font-family:'Inter',sans-serif!important;font-size:.82rem!important;
  font-weight:700!important;cursor:pointer!important
}

/* Cart page table */
.woocommerce-cart table.shop_table{width:100%!important;border:none!important}
.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td{
  font-family:'Inter',sans-serif!important;border:none!important;border-bottom:1px solid var(--steel)!important;
  padding:1rem 0!important
}
.woocommerce-cart .cart_totals{
  background:#fff!important;border:2px solid var(--text-dark)!important;border-radius:12px!important;
  padding:1.5rem!important;max-width:420px!important;margin-left:auto!important
}
.wc-proceed-to-checkout a.checkout-button{
  background:var(--seru-blue)!important;color:#fff!important;border-radius:8px!important;
  font-family:'Inter',sans-serif!important;font-weight:700!important;font-size:.95rem!important;
  padding:1rem!important;width:100%!important;display:block!important;text-align:center!important;
  border:none!important;transition:background .2s!important
}
.wc-proceed-to-checkout a.checkout-button:hover{background:var(--seru-blue-dark)!important}

@media(max-width:760px){
  .woocommerce-checkout .woocommerce > form.checkout,
  .woocommerce-checkout .woocommerce-notices-wrapper,
  .woocommerce-cart .woocommerce-notices-wrapper,
  .woocommerce-cart .cart-collaterals,
  .woocommerce-cart table.shop_table{padding:0 4%!important}
  .woocommerce-checkout #customer_details{padding:1.5rem!important}
}
