	/* ============================= */
	/* AIP Global Design System      */
	/* ============================= */

	*{ box-sizing: border-box; }

	:root{
	  --aip-navy: #2F3E5F;
	  --aip-bg: #f6f7fb;
	  --aip-card: #ffffff;
	  --aip-text: #1b1f2a;
	  --aip-muted: #5e677a;
	  --aip-border: rgba(47,62,95,.14);

	  --radius: 14px;
	  --shadow: 0 10px 28px rgba(20, 24, 36, .10);
	  --shadow-soft: 0 6px 18px rgba(20, 24, 36, .08);

	  --pad-section: 40px;
	  --pad-card: 22px;

	  --btn-radius: 12px;
	}

	/* ============================= */
	/* Page Layout (sticky footer)   */
	/* ============================= */

	html, body{ height: 100%; }

	body{
	  margin: 0;
	  font-family: "Open Sans", "Lato", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
	  color: var(--aip-text);
	  background: var(--aip-bg);
	  min-height: 100vh;
	}

	.site-wrap{
	  position: relative;
	  z-index: 1;
	  min-height: 100vh;
	  display: flex;
	  flex-direction: column;
	}

	.main-content{ flex: 1 0 auto; }
	.site-main{ flex: 1 0 auto; }

	.site-footer{
	  margin-top: auto;
	  flex: 0 0 auto;
	}

	/* ============================= */
	/* Header / Main                 */
	/* ============================= */

	.header-img{
	  width: 100%;
	  height: auto;
	  display: block;
	}

	.site-main{
	  flex: 1;
	  max-width: 980px;
	  margin: 0 auto;
	  padding: 18px;
	  overflow-x: hidden;
	}

	.site-header,
	.site-footer{
	  padding-left: 0;
	  padding-right: 0;
	}

	/* ============================= */
	/* Typography                    */
	/* ============================= */

	h1,h2,h3{
	  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
	  margin: 0 0 10px;
	  letter-spacing: -0.2px;
	}

	p{
	  margin: 0 0 12px;
	  color: var(--aip-muted);
	  line-height: 1.55;
	}

	.small{ font-size: 13px; }
	.muted{ color: var(--aip-muted); }

	/* ============================= */
	/* Containers / Cards            */
	/* ============================= */

	.container{
	  width: min(1120px, calc(100% - 32px));
	  margin: 0 auto;
	}

	.section{ padding: var(--pad-section) 0; }

	.card{
	  background: var(--aip-card);
	  border: 1px solid var(--aip-border);
	  border-radius: var(--radius);
	  box-shadow: var(--shadow-soft);
	  padding: var(--pad-card);
	  margin: 14px 0;
	}

	.card.section{
	  margin-top: 8px;
	}

	/* ============================= */
	/* Forms                         */
	/* ============================= */

	.row{
	  display:flex;
	  gap:14px;
	  flex-wrap:wrap;
	  align-items:center;
	}

	.col{
	  flex: 1 1 280px;
	  min-width: 0;
	}

	input, textarea, select{
	  width: 100%;
	  box-sizing: border-box;
	  display: block;
	}

	label{
	  display:block;
	  font-weight:700;
	  margin:10px 0 6px;
	}

	input[type="text"],
	input[type="email"],
	input[type="password"],
	input[type="tel"]{
	  width:100%;
	  padding:10px;
	  border:1px solid #ccd;
	  border-radius:8px;
	  font-size:15px;
	  margin-bottom:12px;
	}

	form button,
	form .btn{
	  margin-top:12px;
	}

	.form-actions{
	  display:flex;
	  gap:12px;
	  flex-wrap:wrap;
	  align-items:center;
	  margin-top:16px;
	}

	.form-actions .btn,
	.form-actions button{
	  margin-top:0;
	}

	.form-wrap{
	  max-width:420px;
	}

	.form-wrap label{
	  display:block;
	  margin-bottom:4px;
	}

	.form-wrap input{
	  display:block;
	  width:100%;
	  margin-bottom:12px;
	}

	.form-wrap .btn{
	  margin-top:6px;
	  width:100%;
	}

	/* Password eye toggle */

	.pw-wrap{
	  position:relative;
	  display:flex;
	  align-items:center;
	}

	.pw-wrap input{
	  padding-right:40px;
	}

	.eye{
	  position:absolute;
	  right:12px;
	  cursor:pointer;
	  font-size:18px;
	  user-select:none;
	  opacity:0.7;
	  transition:opacity 0.2s ease;
	}

	.eye:hover{
	  opacity:1;
	}

	/* ============================= */
	/* Buttons (anchor + button)     */
	/* ============================= */

	.btn,
	button.btn{
	  display:inline-flex;
	  align-items:center;
	  justify-content:center;
	  gap:10px;
	  padding:12px 18px;
	  border-radius:10px;
	  border:1px solid transparent;
	  text-decoration:none;
	  cursor:pointer;
	  font-weight:600;
	  transition:background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
	}

	.btn-primary{
	  background:#2F3E5F;
	  color:#fff;
	  border-color:#2F3E5F;
	}

	.btn-primary:hover{
	  background:#24324d;
	  color:#fff;
	  transform:translateY(-1px);
	}

	.btn-secondary{
	  background:#dfe8f5;
	  color:#2F3E5F;
	  border-color:#c9d9ee;
	}

	.btn-secondary:hover{
	  background:#c9d9ee;
	  color:#2F3E5F;
	  transform:translateY(-1px);
	}

	button:disabled{
	  opacity:0.6;
	  cursor:not-allowed;
	  transform:none;
	}

	/* ============================= */
	/* Promo CTA + Page Nav          */
	/* ============================= */

	.promo-cta-wrap{
	  margin:18px 0 14px;
	  width:100%;
	}

	.promo-cta-wrap .promo-cta,
	a.btn.promo-cta{
	  display:block;
	  width:100%;
	  box-sizing:border-box;
	  text-align:center;
	  white-space:normal;
	}

	.promo-cta{
	  display:flex;
	  width:100%;
	  justify-content:center;
	  align-items:center;
	  text-align:center;
	  white-space:normal;
	}

	.btn-row{
	  display:grid;
	  grid-template-columns:1fr 1.3fr .8fr 1.4fr 1.25fr 1.05fr;
	  gap:8px;
	  align-items:stretch;
	}

	.btn-row .btn{
	  display:flex;
	  align-items:center;
	  justify-content:center;
	  min-height:44px;
	  padding:12px 10px;
	  font-size:0.92rem;
	  line-height:1.15;
	  text-align:center;
	  white-space:nowrap;
	}

	/* ============================= */
	/* Messages                      */
	/* ============================= */

	.notice{
	  padding:10px 12px;
	  border-radius:12px;
	  background:rgba(34, 197, 94, .10);
	  border:1px solid rgba(34, 197, 94, .30);
	  color:#14532d;
	  font-weight:600;
	}

	.error{
	  padding:10px 12px;
	  border-radius:12px;
	  background:rgba(239, 68, 68, .10);
	  border:1px solid rgba(239, 68, 68, .30);
	  color:#7f1d1d;
	  font-weight:600;
	}

	.hidden{ display:none; }

	/* ============================= */
	/* Footer                        */
	/* ============================= */

	.site-footer{
	  background: var(--aip-navy);
	  color: rgba(255,255,255,.86);
	  padding: 22px 0;
	  margin-top: 40px;
	  text-align:center;
	}

	.footer-inner{
	  font-weight: 600;
	  letter-spacing: .1px;
	}

	.site-footer a{
	  color: rgba(255,255,255,.92);
	  text-decoration:none;
	}

	.site-footer a:hover{
	  text-decoration:underline;
	}

	.footer-links{
	  display:flex;
	  gap:10px;
	  justify-content:center;
	  flex-wrap:wrap;
	}

	.footer-meta{
	  margin-top:10px;
	  font-size:13px;
	  opacity:.85;
	}

	.dot{ opacity:.7; }

	/* ============================= */
	/* DLBook Page                   */
	/* ============================= */

	.dlbook-header-row{
	  display:flex;
	  align-items:flex-start;
	  justify-content:space-between;
	  gap:16px;
	  flex-wrap:wrap;
	}

	.dlbook-giveaway{
	  margin-top:14px;
	  box-shadow:var(--shadow-soft);
	}

	.books-grid{
	  display:grid;
	  grid-template-columns:1fr 1fr;
	  gap:28px;
	  max-width:980px;
	  margin:18px auto 0;
	}

	.dlbook-header-top{
	  display:flex;
	  justify-content:space-between;
	  align-items:center;
	  gap:1rem;
	}

	.dlbook-header-top h2{
	  margin:0;
	}

	.book-card{
	  border-radius:var(--radius);
	  padding:16px;
	  background:var(--aip-card);
	  border:1px solid var(--aip-border);
	  transition:all 0.25s ease;
	  box-shadow:var(--shadow-soft);
	  text-align:center;
	}

	.book-card:hover{
	  transform:translateY(-6px);
	  box-shadow:var(--shadow);
	  border-color:var(--aip-navy);
	}

	.thumb-wrap{
	  position:relative;
	  display:inline-block;
	  border-radius:12px;
	  overflow:hidden;
	}

	.book-thumb{
	  display:block;
	  width:100%;
	  max-width:240px;
	  border-radius:12px;
	  transition:transform 0.25s ease;
	}

	.book-card:hover .book-thumb{
	  transform:scale(1.03);
	}

	.thumb-overlay{
	  position:absolute;
	  inset:0;
	  display:flex;
	  align-items:center;
	  justify-content:center;
	  font-size:34px;
	  background:rgba(47,62,95,0.55);
	  color:#fff;
	  opacity:0;
	  transition:opacity 0.25s ease;
	  text-decoration:none;
	}

	.book-card:hover .thumb-overlay{
	  opacity:1;
	}

	.book-actions{
	  display:flex;
	  gap:10px;
	  justify-content:center;
	  margin-top:14px;
	    margin-bottom:10px;
	  flex-wrap:wrap;
	}

	.book-title{
	  margin-top:14px;
	  font-weight:700;
	  color:var(--aip-navy);
	}

	.rating-row{
	  display:flex;
	  align-items:center;
	  justify-content:space-between;
	  gap:12px;
	  margin-bottom:10px;
	}

	.review-layout{
	  display:flex;
	  gap:40px;
	  align-items:flex-start;
	}

	.review-book{
	  width:220px;
	  text-align:center;
	}

	.review-book img{
	  width:100%;
	  border:1px solid #ddd;
	}

	.review-form{
	  flex:1;
	}

	.review-form select,
	.review-form textarea{
	  width:100%;
	  padding:10px;
	  margin-bottom:15px;
	  font-size:14px;
	}

	#wordCount{
	  font-size:13px;
	  color:#666;
	  margin-bottom:15px;
	}

	.review-link{
	  font-weight:700;
	  text-decoration:underline;
	  color:var(--aip-navy);
	  text-underline-offset:3px;
	}

	.review-link:hover{
	  text-decoration:underline;
	}

	/* Fractional Stars */

	.rating{
	  display:flex;
	  align-items:center;
	  gap:10px;
	}

	.stars{
	  --rating: 0;
	  --star-size: 18px;
	  --star-color: #d6d7dd;
	  --star-fill: #d4af37;

	  position:relative;
	  display:inline-block;
	  font-size:var(--star-size);
	  line-height:1;
	}

	.stars::before{
	  content:"★★★★★";
	  letter-spacing:2px;
	  color:var(--star-color);
	}

	.stars::after{
	  content:"★★★★★";
	  letter-spacing:2px;
	  color:var(--star-fill);
	  position:absolute;
	  left:0;
	  top:0;
	  width:calc((var(--rating) / 5) * 100%);
	  overflow:hidden;
	  white-space:nowrap;
	}

	.rating-meta{
	  color:var(--aip-muted);
	  font-weight:700;
	}

	/* ============================= */
	/* Consent Row                   */
	/* ============================= */

	.consent-row{
	  display:flex !important;
	  align-items:flex-start !important;
	  gap:10px !important;
	  margin-top:10px !important;
	}

	.consent-row > input[type="checkbox"]{
	  appearance:auto !important;
	  -webkit-appearance:checkbox !important;
	  display:inline-block !important;
	  width:18px !important;
	  height:18px !important;
	  margin:3px 0 0 0 !important;
	  float:none !important;
	  position:static !important;
	  flex:0 0 auto !important;
	  visibility:visible !important;
	  opacity:1 !important;
	}

	.consent-row > label.consent{
	  display:block !important;
	  font-weight:400 !important;
	  line-height:1.35 !important;
	  margin:0 !important;
	  cursor:pointer !important;
	  color:#c64747;
	}

	/* ============================= */
	/* Store Pages                   */
	/* ============================= */

	.store-hero{
	  max-width:900px;
	  margin:0 auto 28px;
	  text-align:center;
	}

	.store-hero h1{
	  margin-bottom:12px;
	  font-size:2rem;
	  line-height:1.2;
	}

	.store-hero p{
	  margin:0 auto;
	  max-width:760px;
	  font-size:1.05rem;
	  line-height:1.7;
	  color:#44516b;
	}

	.store-grid{
	  display:grid;
	  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
	  gap:24px;
	  margin-top:26px;
	}

	.store-card{
	  background:#fff;
	  border:1px solid #d9e1ec;
	  border-radius:18px;
	  box-shadow:0 10px 28px rgba(25, 42, 70, 0.08);
	  padding:28px;
	  display:flex;
	  flex-direction:column;
	  min-height:100%;
	}

	.store-card h2{
	  margin:0 0 14px;
	  font-size:1.35rem;
	  color:#2F3E5F;
	}

	.store-card p{
	  margin:0 0 14px;
	  line-height:1.7;
	  color:#44516b;
	}

	.store-card .spacer{
	  flex:1 1 auto;
	}

	.store-btn{
	  display:inline-block;
	  align-self:flex-start;
	  margin-top:10px;
	  padding:12px 18px;
	  border-radius:10px;
	  background:#2F3E5F;
	  color:#fff;
	  text-decoration:none;
	  font-weight:600;
	  transition:background .2s ease, transform .2s ease;
	}

	.store-btn:hover{
	  background:#24324d;
	  transform:translateY(-1px);
	}

	/* ============================= */
	/* Reusable Hero Card (legacy)   */
	/* ============================= */

	.hero-card-wrap{
	  max-width:980px;
	  margin:0 auto 28px;
	}

	.hero-card{
	  background:#fff;
	  border:1px solid #d9e1ec;
	  border-radius:18px;
	  box-shadow:0 10px 28px rgba(25, 42, 70, 0.08);
	  padding:30px 32px;
	}

	.hero-card-title{
	  margin:0 0 14px;
	  text-align:center;
	  color:#2F3E5F;
	  font-size:2rem;
	  line-height:1.2;
	}

	.hero-card-text{
	  text-align:left;
	}

	.hero-card-text p{
	  margin:0 0 14px;
	  color:#44516b;
	  line-height:1.75;
	}

	.hero-card-text p:last-child{
	  margin-bottom:0;
	}

	.hero-promo-button{
	  margin-top:22px;
	  text-align:center;
	}

	.hero-promo-button .btn{
	  width:100%;
	}

	/* ============================= */
	/* Cart                          */
	/* ============================= */

	.cart-list{
	  display:flex;
	  flex-direction:column;
	  gap:18px;
	  margin-top:18px;
	}

	.cart-item{
	  display:grid;
	  grid-template-columns:120px 1fr;
	  gap:18px;
	  align-items:start;
	  padding:18px;
	  border:1px solid var(--aip-border);
	  border-radius:14px;
	  background:#fff;
	}

	.cart-item-media{
	  text-align:center;
	}

	.cart-thumb{
	  width:100%;
	  max-width:140px;
	  height:auto;
	  border-radius:10px;
	  box-shadow:0 2px 8px rgba(0,0,0,0.08);
	}

	.cart-thumb-placeholder{
	  width:100px;
	  height:130px;
	  background:#f3f4f6;
	  border:1px solid var(--aip-border);
	}

	.cart-item-title{
	  margin:0 0 8px;
	}

	.cart-item-desc{
	  margin:0 0 10px;
	}

	.cart-item-price,
	.cart-item-line-total{
	  margin:0 0 8px;
	}

	.cart-actions{
	  display:flex;
	  flex-wrap:wrap;
	  gap:12px;
	  margin-top:12px;
	}

	.cart-qty-form,
	.cart-remove-form{
	  display:flex;
	  flex-wrap:wrap;
	  align-items:center;
	  gap:10px;
	}

	.cart-qty-label{
	  font-weight:600;
	}

	.cart-qty-input{
	  width:84px;
	  padding:10px 12px;
	}

	.cart-summary{
	  margin-top:22px;
	}

	.cart-total{
	  font-size:1.1rem;
	  margin-top:8px;
	}

	.cart-summary-actions{
	  display:flex;
	  flex-wrap:wrap;
	  gap:12px;
	  margin-top:16px;
	}

	/* ============================= */
	/* Responsive                    */
	/* ============================= */

	@media (max-width:1100px){
	  .btn-row{
		grid-template-columns:repeat(3, minmax(0, 1fr));
	  }
	}

	@media (max-width:860px){
	  .review-layout{
		flex-direction:column;
	  }

	  .review-book{
		width:100%;
		max-width:260px;
		margin:0 auto;
	  }
	}

	@media (max-width:700px){
	  .books-grid{
		grid-template-columns:1fr;
	  }

	  .rating-row{
		flex-direction:column;
		align-items:center;
	  }

	  .btn-row{
		grid-template-columns:1fr;
	  }

	  .btn-row .btn{
		white-space:normal;
	  }

	  .cart-item{
		grid-template-columns:1fr;
	  }

	  .cart-item-media{
		text-align:left;
	  }

	  .cart-thumb{
		margin:0;
	  }
	}

	@media (max-width:640px){
	  .store-hero h1{
		font-size:1.7rem;
	  }

	  .store-card{
		padding:22px;
	  }

	  .hero-card{
		padding:22px;
	  }

	  .hero-card-title{
		font-size:1.7rem;
	  }
	}

	@media (max-width:520px){
	  .form-actions{
		flex-direction:column;
		align-items:stretch;
	  }

	  .form-actions .btn,
	  .form-actions button{
		width:100%;
	  }
	}
	/* =========================
	   STOREFRONT
	========================= */

	.hero-actions{
	  display:flex;
	  flex-wrap:wrap;
	  gap:10px;
	  margin-top:16px;
	  align-items:center;
	}

	.hero-actions .btn{
	  white-space:nowrap;
	  flex:0 0 auto;
	}

	@media (min-width: 901px){
	  .hero-actions{
		flex-wrap:nowrap;
	  }
	}

	@media (max-width: 900px){
	  .hero-actions{
		flex-wrap:wrap;
	  }
	}

	.section-intro{
	  margin:8px 0 18px;
	}

	.storefront-grid{
	  display:grid;
	  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
	  gap:18px;
	}

	.storefront-card{
	  display:flex;
	  flex-direction:column;
	  height:100%;
	  padding:22px 20px 20px;
	  border:1px solid #d9e1ec;
	  border-radius:18px;
	  background:#fff;
	  box-shadow:0 8px 22px rgba(25, 42, 70, 0.08);
	  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	}

	.storefront-card:hover{
	  transform:translateY(-3px);
	  box-shadow:0 14px 30px rgba(25, 42, 70, 0.12);
	  border-color:#c9d6e8;
	}

	.storefront-card .rating-row{
	  display:flex;
	  flex-direction:column;
	  gap:8px;
	  align-items:center;
	  margin-bottom:10px;
	}

	.storefront-card .rating{
	  display:flex;
	  align-items:center;
	  justify-content:center;
	  gap:8px;
	}

	.storefront-card .rating-meta{
	  white-space:nowrap;
	}

	.storefront-card .review-links{
	  display:flex;
	  flex-wrap:wrap;
	  justify-content:center;
	  gap:10px;
	}

	.storefront-card .review-prompt{
	  text-align:center;
	  margin:0 0 12px;
	  font-size:.95rem;
	}

	.storefront-card .thumb-wrap{
	  position:relative;
	  width:100%;
	  display:flex;
	  justify-content:center;
	  align-items:center;
	  margin:8px 0 14px;
	  min-height:380px;
	}

	.storefront-card .book-thumb{
	  display:block;
	  width:auto;
	  height:auto;
	  max-width:100%;
	  max-height:380px;
	  object-fit:contain;
	  margin:0 auto;
	}

	.storefront-card .thumb-overlay{
	  position:absolute;
	  top:8px;
	  right:8px;
	  width:38px;
	  height:38px;
	  border-radius:999px;
	  display:flex;
	  align-items:center;
	  justify-content:center;
	  font-size:20px;
	  text-decoration:none;
	  background:rgba(255,255,255,.92);
	  border:1px solid rgba(0,0,0,.08);
	  box-shadow:0 2px 10px rgba(0,0,0,.10);
	}

	.storefront-card .book-title{
	  text-align:center;
	  font-weight:700;
	  font-size:1.18rem;
	  line-height:1.3;
	  min-height:2.8em;
	  display:flex;
	  align-items:center;
	  justify-content:center;
	  margin-bottom:10px;
	  color:#1f2a44;
	}

	.storefront-card .amazon-wrap{
	  text-align:center;
	  margin:4px 0 14px;
	  font-size:.96rem;
	}

	.storefront-card .amazon-wrap a{
	  color:#2F3E5F;
	  font-weight:600;
	  text-decoration:underline;
	  text-underline-offset:3px;
	}

	.storefront-card .book-actions{
	  display:flex;
	  flex-wrap:wrap;
	  justify-content:center;
	  gap:10px;
	  margin:0 0 14px;
	  padding-bottom:12px;
	  border-bottom:1px solid #edf1f6;
	}

.storefront-card .book-actions .btn{
  min-height:44px;
  padding:10px 18px;
  line-height:1.2;
}

.storefront-card .stars{
  --rating:0;
  position:relative;
  display:inline-block;
  line-height:1;
  font-size:1.1rem;
  letter-spacing:2px;
}

.storefront-card .stars::before{
  content:"★★★★★";
  color:#d1d5db;
}

.storefront-card .stars::after{
  content:"★★★★★";
  color:#f5b301;
  position:absolute;
  inset:0 auto 0 0;
  width:calc(var(--rating) / 5 * 100%);
  overflow:hidden;
  white-space:nowrap;
}

	.format-list{
	  margin-top:auto;
	  display:flex;
	    margin-top:10px;
	  flex-direction:column;
	  gap:10px;
	}
	
	/* ============================= */
	/* Format Image Normalization    */
	/* ============================= */

	.format-thumb{
	  display:block;
	  width:auto;
	  height:96px;
	  max-width:110px;
	  object-fit:contain;
	  margin:0 auto 10px;
	}

	.format-left{
	  display:flex;
	  flex-direction:column;
	  align-items:center;
	  text-align:center;
	  gap:0;
	  flex:1 1 auto;
	}

	.format-meta{
	  display:flex;
	  flex-direction:column;
	  align-items:center;
	  text-align:center;
	}

	.format-row{
	  display:flex;
	  flex-direction:column;
	  align-items:center;
	  text-align:center;
	  gap:12px;
	}

	.format-right{
	  display:flex;
	  justify-content:center;
	  width:100%;
	}


	.format-row{
	  display:flex;
	  flex-direction:column;
	  align-items:center;
	  gap:8px;
	  padding:10px 12px;
	  border:1px solid var(--aip-border);
	  border-radius:12px;
	  background:#fff;
	  text-align:center;
	}

	.format-top{
	  text-align:center;
	  margin-bottom:10px;
	}

	.format-name{
	  font-weight:700;
	  line-height:1.2;
	  white-space:normal;
	  overflow-wrap:break-word;
	  margin-bottom:6px;
	}

	.format-price{
	  line-height:1.2;
	  margin-top:2px;
	  font-size:.95rem;
	  white-space:normal;
	  overflow-wrap:break-word;
	}

	.format-bottom{
	  display:flex;
	  align-items:center;
	  justify-content:space-between;
	  gap:12px;
	  width:100%;
	}

	.format-right .btn,
	.format-right .btn-sm,
	.format-right .btn-disabled{
	  white-space:nowrap;
	}

	.btn-disabled{
	  display:inline-flex;
	  align-items:center;
	  justify-content:center;
	  min-height:44px;
	  padding:.58rem .85rem;
	  opacity:.75;
	  cursor:default;
	  pointer-events:none;
	  background:#e5e7eb;
	  color:#374151;
	  border:1px solid #d1d5db;
	  border-radius:12px;
	  font-weight:600;
	}

	@media (max-width: 700px){
	  .storefront-card .book-actions{
		flex-direction:column;
		align-items:stretch;
	  }

	  .storefront-card .book-actions .btn{
		width:100%;
		text-align:center;
	  }

	  .format-right{
		justify-content:stretch;
	  }

	  .format-right .btn,
	  .format-right .btn-sm,
	  .format-right .btn-disabled{
		width:100%;
		text-align:center;
		justify-content:center;
	  }
	}

	/* =========================
	   CHECKOUT PAGE
	========================= */

	.checkout-wrap{
	  padding-top:28px;
	  padding-bottom:56px;
	  max-width:1140px;
	}
	.checkout-title{
	  margin:0 0 8px;
	}
	.checkout-hero{
	  display:flex;
	  justify-content:space-between;
	  align-items:flex-start;
	  gap:18px;
	  flex-wrap:wrap;
	}

	.checkout-intro{
	  color:#5b6574;
	  max-width:760px;
	  margin:0;
	}
	.checkout-error-title{
	  margin-top:0;
	}
	.checkout-grid{
	  display:grid;
	  grid-template-columns:minmax(0, 2fr) minmax(320px, 1fr);
	  gap:24px;
	  align-items:start;
	}
	.checkout-summary-note{
	  margin-top:16px;
	}
	.checkout-main{
	  display:grid;
	  gap:24px;
	}

	.checkout-section-title{
	  margin-top:0;
	  margin-bottom:16px;
	}

	.checkout-form-grid{
	  display:grid;
	  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
	  gap:14px;
	}

	.checkout-col-full{
	  grid-column:1 / -1;
	}

	.checkout-label{
	  display:block;
	  font-weight:600;
	  margin-bottom:6px;
	  color:#2f3e5f;
	}

	.checkout-input{
	  display:block;
	  width:100%;
	  min-height:44px;
	  padding:10px 12px;
	  border:1px solid #cfd6e0;
	  border-radius:10px;
	  background:#fff;
	  color:#223046;
	  font:inherit;
	  box-sizing:border-box;
	}

	.checkout-input:focus{
	  outline:none;
	  border-color:#2f3e5f;
	  box-shadow:0 0 0 3px rgba(47, 62, 95, 0.12);
	}

	.checkout-textarea{
	  min-height:110px;
	  resize:vertical;
	}

	.checkout-checkbox-label{
	  display:inline-flex;
	  align-items:center;
	  gap:10px;
	  font-weight:600;
	  color:#2f3e5f;
	}

	.checkout-summary-card{
	  position:sticky;
	  top:24px;
	}

	.checkout-summary-items{
	  display:grid;
	  gap:14px;
	}

	.checkout-summary-item{
	  display:flex;
	  gap:12px;
	  padding:12px 0;
	  border-bottom:1px solid #e8edf3;
	}

	.checkout-summary-thumb{
	  width:68px;
	  height:68px;
	  border:1px solid #dbe2ea;
	  border-radius:10px;
	  overflow:hidden;
	  background:#fff;
	}

	.checkout-summary-thumb img{
	  width:100%;
	  height:100%;
	  object-fit:contain;
	}

	.checkout-summary-name{
	  font-weight:700;
	}

	.checkout-summary-meta{
	  color:#5b6574;
	  font-size:.96rem;
	}

	.checkout-totals{
	  padding-top:14px;
	}

	.checkout-total-row{
	  display:flex;
	  justify-content:space-between;
	  margin:8px 0;
	}

	.checkout-total-final{
	  margin-top:14px;
	  padding-top:14px;
	  border-top:1px solid #dbe2ea;
	  font-size:1.08rem;
	}

	.checkout-submit-btn{
	  width:100%;
	  justify-content:center;
	  margin-top:12px;
	}

	.checkout-payment-note{
	  margin-top:14px;
	  font-size:.95rem;
	  color:#5b6574;
	}

	.checkout-card-logos{
	  margin-top:16px;
	  text-align:center;
	}

	.checkout-card-logos img{
	  max-width:220px;
	  width:100%;
	}

	.checkout-error-card{
	  background:#fff7f7;
	  border-color:#d8a0a0;
	}

	.checkout-error-list{
	  margin:10px 0 0 18px;
	}

	/* Responsive */

	@media (max-width: 940px){
	  .checkout-grid{
		grid-template-columns:1fr;
	  }

	  .checkout-summary-card{
		position:static;
	  }
	}

	@media (max-width: 640px){
	  .checkout-form-grid{
		grid-template-columns:1fr;
	  }
	}
	
	.payment-overlay[hidden]{
	  display:none !important;
	}
	.payment-overlay{
	  position:fixed;
	  inset:0;
	  z-index:9999;
	}
	.payment-backdrop{
	  position:absolute;
	  inset:0;
	  background:rgba(15,23,42,.60);
	}
	.payment-modal{
	  position:relative;
	  z-index:2;
	  width:min(920px, calc(100vw - 32px));
	  max-height:calc(100vh - 24px);
	  margin:40px auto;
	  background:#fff;
	  border-radius:16px;
	  box-shadow:0 20px 60px rgba(0,0,0,.25);
	  padding:20px 20px 16px;
	  overflow:auto;
	}	
	.payment-close{
	  position:absolute;
	  top:10px;
	  right:12px;
	  border:0;
	  background:transparent;
	  font-size:28px;
	  line-height:1;
	  cursor:pointer;
	}
	.authnet-frame{
	  width:100%;
	  height:80vh;
	  min-height:640px;
	  border:0;
	  background:#fff;
	  display:block;
	}
	@media (max-width:700px){
	  .payment-modal{
		width:calc(100vw - 16px);
		margin:8px auto;
		padding:14px 14px 12px;
	  }
	  #authnetHostedFrame{
		min-height:560px;
	  }
	}
	/* ================================== */
	/* --------- Store Product Grid ----- */
	/*=================================== */
	
	.store-product-grid{
	  display:grid;
	  grid-template-columns:minmax(220px, 320px) 1fr;
	  gap:28px;
	  align-items:start;
	}
	.store-product-image{
	  text-align:center;
	}
	.store-product-image img{
	  max-width:100%;
	  height:auto;
	  border-radius:10px;
	}
	.store-price{
	  font-size:1.25rem;
	  font-weight:700;
	  margin:14px 0 18px;
	}
	.store-qty-label{
	  display:block;
	  font-weight:600;
	  margin-bottom:8px;
	}
	.store-qty-select{
	  padding:10px 12px;
	  min-width:90px;
	  margin-bottom:14px;
	}
	.store-actions{
	  display:flex;
	  gap:12px;
	  flex-wrap:wrap;
	}
	.store-payment-note{
	  margin:18px 0 8px;
	}
	.store-payment-logos img{
	  max-width:260px;
	  height:auto;
	}
	.store-notice{
	  margin:0 0 18px;
	  padding:12px 14px;
	  border-radius:10px;
	  border:1px solid var(--line);
	  background:#f8fafc;
	}
	.store-notice.success{
	  border-color:#b6d7c8;
	  background:#f2fbf5;
	}
	.store-notice.error{
	  border-color:#e4b4b4;
	  background:#fff5f5;
	}
	@media (max-width: 860px){
	  .store-product-grid{
		grid-template-columns:1fr;
	  }
	}
	/* ============================= */
	/* --------- Cart Notice ------- */
	/*============================== */
	.cart-notice{
	  margin:0 0 18px;
	  padding:12px 14px;
	  border-radius:10px;
	  border:1px solid var(--line);
	  background:#f8fafc;
	}
	.cart-notice.success{
	  border-color:#b6d7c8;
	  background:#f2fbf5;
	}
	.cart-notice.error{
	  border-color:#e4b4b4;
	  background:#fff5f5;
	}
	.cart-empty-actions{
	  margin-top:16px;
	}
	.cart-card-logo{
	  max-width:220px;
	  height:auto;
	}
	.cart-card-logo-wrap{
	  margin:8px 0 14px;
	}
	/* ================================== */
	/* ====== Checkout success card ==== */
	/*================================== */
	.checkout-success-wrap{
	  max-width:900px;
	  margin:0 auto;
	  padding:32px 18px 56px;
	  min-height:60vh;
	}
	.checkout-success-card{
	  background:#fff;
	  border:1px solid #ddd;
	  border-radius:12px;
	  padding:24px;
	}
	.checkout-success-title{
	  margin-top:0;
	}
	.checkout-success-actions{
	  margin-top:20px;
	}
	/* ============================ */
	/* ========== Payment Cancel == */
	/*============================= */
	.payment-cancel-wrap{
	  max-width:900px;
	}
	.payment-cancel-title{
	  margin-top:0;
	}
	.payment-cancel-lead{
	  font-size:1.05rem;
	  color:#556070;
	}
	.payment-cancel-actions{
	  margin-top:20px;
	}