/*
Theme Name: Purnam Store
Theme URI: https://store.purnamcommunity.in/
Description: The Purnam Store's own theme: plain WordPress and WooCommerce templates, no page builder. Colours, type and components come from store-design.css (WordPress/Store Design); this file holds layout only.
Author: Purnam
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: purnam-store
*/

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 100px; }
body { margin: 0; background: var(--psd-ivory, #FFFAF3); color: var(--psd-ink, #2A3D50); font-size: 16px; line-height: 1.7; overflow-x: clip; }
img, picture, video, svg { max-width: 100%; height: auto; }
a { color: var(--psd-blue, #005495); text-decoration: none; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { font-family: var(--psd-serif); font-weight: 400; color: var(--psd-navy); line-height: 1.2; margin: 0 0 .6em; }
:focus-visible { outline: 2px solid var(--psd-blue, #005495); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

.pst-main { display: block; min-height: 50vh; }
.pst-band-top > .pst-page { padding-top: 0; padding-bottom: 0; }
.psf-contact { list-style: none; margin: 0; padding: 0; }
.pst-wrap { width: min(1180px, 100% - 48px); margin: 0 auto; }
.pst-band-top {
  padding: 40px 0 88px;
  background: radial-gradient(45% 55% at 22% 38%, rgba(255, 210, 122, .32), transparent 70%), radial-gradient(40% 50% at 90% 10%, rgba(80, 149, 179, .12), transparent 70%), linear-gradient(180deg, #FFFDF8, var(--psd-ivory));
}
@media (max-width: 720px) { .pst-wrap { width: calc(100% - 32px); } .pst-band-top { padding: 24px 0 64px; } }

/* ---------- Page titles and page text ---------- */
.psd-page-head { text-align: center; margin: 0 auto 32px; max-width: 820px; }
.psd-page-head h1 { font-size: clamp(36px, 4.4vw, 56px); line-height: 1.1; letter-spacing: -.01em; margin: 0; }
.psd-page-head h1 em { color: var(--psd-gold-text); }
.psd-page-head .psd-eyebrow { justify-content: center; }
.pst-page { padding: 56px 0 88px; }
.pst-content { max-width: 760px; margin: 0 auto; font-size: 17px; line-height: 1.8; }
.pst-content h2 { font-size: clamp(26px, 3vw, 34px); margin: 1.6em 0 .5em; }
.pst-content h3 { font-size: 22px; margin: 1.4em 0 .4em; }
.pst-content a { border-bottom: 1px solid rgba(194, 120, 12, .45); }
.pst-content ul, .pst-content ol { padding-left: 1.3em; margin: 0 0 1em; }
.pst-content img { border-radius: 14px; }
.pst-content :where(.alignwide, .alignfull) { max-width: none; }

/* Cart, checkout and account sit on the warm band like the product page. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .pst-page { padding-top: 40px; }
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .pst-content { max-width: none; font-size: 16px; line-height: 1.7; }
body:is(.woocommerce-cart, .woocommerce-checkout) .psd-page-head { margin-bottom: 12px; }

/* ---------- Breadcrumb ---------- */
.woocommerce-breadcrumb { margin: 0 0 32px !important; }

/* ---------- Shop and category pages ---------- */
.pst-shop__head { margin-bottom: 40px; }
.pst-shop__intro { margin-top: 18px; color: var(--psd-muted); }
.pst-shop__intro p { margin: 0 0 .6em; }
.woocommerce .woocommerce-result-count { margin: 0 0 24px; font-size: 14px; color: var(--psd-muted); }
.woocommerce .woocommerce-ordering { margin: 0 0 24px; }
.woocommerce ul.products { margin: 0 0 24px; padding: 0; list-style: none; clear: both; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 36px); }
.woocommerce ul.products li.product a img { aspect-ratio: 1; object-fit: cover; width: 100%; }
@media (max-width: 980px) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 370px) { .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Product page: gallery and the summary card ---------- */
.pst-shop div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 clamp(28px, 4vw, 56px); align-items: start; }
.pst-shop div.product > * { grid-column: 1 / -1; }
.woocommerce .pst-shop div.product div.images.woocommerce-product-gallery,
.woocommerce .pst-shop div.product div.summary { float: none; width: auto; margin: 0; }
.pst-shop div.product > .woocommerce-product-gallery { grid-column: 1; grid-row: 1; }
.woocommerce .pst-shop div.product > div.images.woocommerce-product-gallery { position: sticky; top: 110px; }
.pst-shop div.product > .summary { grid-column: 2; grid-row: 1; }
.pst-shop table.variations td.value { position: relative; }
.pst-shop div.product > .onsale { display: none; }
.pst-shop .summary .product_title { margin: 0; }
.pst-shop .summary > .price { margin: 22px 0 6px; }
.pst-shop .woocommerce-product-details__short-description { margin-top: 24px; }
.pst-shop .summary form.cart { margin-bottom: 0; }
@media (max-width: 980px) {
  .pst-shop div.product { grid-template-columns: minmax(0, 1fr); }
  .woocommerce .pst-shop div.product > div.images.woocommerce-product-gallery { position: relative; top: auto; }
  .pst-shop div.product > .summary { grid-column: 1; grid-row: 2; margin-top: 24px; }
}

/* Details as accordions: native <details>, one open at a time (name=). */
.psd-acc { margin: 30px 0 0; }
.psd-acc__item { border-top: 1px solid var(--psd-line); }
.psd-acc__item:last-child { border-bottom: 1px solid var(--psd-line); }
.psd-acc__title { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 18px 4px; cursor: pointer; font: 400 20px/1.3 var(--psd-serif); color: var(--psd-navy); }
.psd-acc__title::-webkit-details-marker { display: none; }
.psd-acc__title::after { content: ""; flex: none; width: 22px; height: 22px; border-radius: 50%; background: #FFF3DA url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C2780C' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M7 12h10M12 7v10'/%3E%3C/svg%3E") center / 14px no-repeat; box-shadow: inset 0 0 0 1px rgba(194, 120, 12, .3); transition: transform .6s var(--psd-ease); }
.psd-acc__item[open] > .psd-acc__title::after { transform: rotate(45deg); }
.psd-acc__body { padding: 0 4px 22px; font-size: 15.5px; line-height: 1.75; color: var(--psd-muted); }
.psd-acc__body strong { color: var(--psd-ink); }
.psd-acc__item[open] > .psd-acc__body { animation: pst-fade .5s var(--psd-ease); }
@keyframes pst-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .psd-acc__item[open] > .psd-acc__body { animation: none; } }

/* Related paintings */
.pst-related { margin-top: 88px; }
.pst-related section.related { margin: 0; }

/* ---------- Cart ---------- */
@media (min-width: 981px) {
  body.woocommerce-cart .pst-content > .woocommerce:has(.woocommerce-cart-form) { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 48px; align-items: start; }
  body.woocommerce-cart .pst-content > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  body.woocommerce-cart .pst-content .cart-collaterals { position: sticky; top: 120px; }
}
body.woocommerce-cart .cart-collaterals .cart_totals, body.woocommerce-cart .cart-collaterals .cross-sells { float: none !important; width: auto !important; }
body.woocommerce-cart .cart-collaterals .cross-sells { margin-top: 32px; }
body.woocommerce-cart .cart-collaterals .cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.psd-cart-empty .pst-content > .woocommerce { display: block; max-width: 720px; margin: 0 auto; }

/* ---------- Checkout: details and payment on the left, the order summary on the right ---------- */
body.woocommerce-checkout .pst-wrap { width: min(1180px, 100% - 48px); }
@media (min-width: 981px) {
  body.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 0 40px; align-items: start; }
  body.woocommerce-checkout form.checkout > * { grid-column: 1; }
  body.woocommerce-checkout form.checkout > .psd-summary { grid-column: 2; grid-row: 1 / span 3; position: sticky; top: 104px; }
  body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
}
@media (max-width: 720px) { body.woocommerce-checkout .pst-wrap { width: calc(100% - 32px); } }
body.woocommerce-checkout #customer_details.col2-set .col-1, body.woocommerce-checkout #customer_details.col2-set .col-2 { float: none; width: auto; }
body.woocommerce-checkout #customer_details::before, body.woocommerce-checkout #customer_details::after { display: none; }
body.woocommerce-checkout .psd-summary h3#order_review_heading { display: none; }
body.woocommerce-checkout .psd-pay { margin-bottom: 22px; }
body.woocommerce-checkout .psd-pay #payment { background: transparent; border-radius: 0; }
body.woocommerce-order-pay .pst-content > .woocommerce { max-width: 560px; margin: 0 auto; }

/* ---------- Account ---------- */
body.woocommerce-account .pst-content > .woocommerce { max-width: 980px; margin: 0 auto; }
@media (min-width: 769px) {
  body.woocommerce-account.logged-in .pst-content > .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; align-items: start; }
  body.woocommerce-account .woocommerce-MyAccount-navigation, body.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
}
body.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--psd-line); border-radius: 18px; overflow: hidden; }
body.woocommerce-account .woocommerce-MyAccount-navigation li:first-child a { border-top: 0 !important; }

/* ---------- Get in touch (shop page) and the contact form ---------- */
.pst-band { padding: 88px 0; background: #FFFDF8; border-top: 1px solid var(--psd-line); }
.pst-touch__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.pst-touch h2 { font-size: clamp(30px, 3.4vw, 44px); }
.pst-touch p { color: var(--psd-muted); }
.pst-touch__list { margin-top: 24px; }
.pst-touch .psf-i { color: var(--psd-ink); }
.pst-touch .psf-i a { color: var(--psd-navy); }
@media (max-width: 860px) { .pst-touch__grid { grid-template-columns: minmax(0, 1fr); } .pst-band { padding: 64px 0; } }

.pst-contact { display: grid; gap: 16px; margin: 0; }
.pst-contact p { margin: 0; }
.pst-contact__hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.pst-contact__row label { display: block; margin: 0 0 7px; font: 700 12.5px/1.4 var(--psd-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--psd-muted); }
.pst-contact input, .pst-contact textarea {
  display: block; width: 100%; min-height: 52px; padding: 14px 16px; border: 1px solid rgba(9, 48, 77, .18); border-radius: 14px; background: #fff;
  font: 400 16px/1.5 var(--psd-sans); color: var(--psd-ink); transition: border-color .8s var(--psd-ease), box-shadow .8s var(--psd-ease);
}
.pst-contact textarea { min-height: 150px; resize: vertical; }
.pst-contact input:focus, .pst-contact textarea:focus { outline: none; border-color: var(--psd-gold); box-shadow: 0 0 0 4px rgba(255, 190, 61, .2); }
.pst-contact__status:empty { display: none; }
.pst-contact__status { font-size: 15px; line-height: 1.5; color: var(--psd-navy); padding: 12px 16px; border-radius: 12px; background: #FFF8EA; border: 1px solid rgba(194, 120, 12, .25); }
.pst-contact__status.is-error { background: #FDF0EE; border-color: rgba(192, 57, 43, .35); color: #8E2B20; }
.pst-contact__send {
  justify-self: start; display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 14px 32px; border: 0; border-radius: 999px; cursor: pointer;
  font: 700 15px/1.2 var(--psd-sans); letter-spacing: .06em; color: #0A2E4A; background: var(--psd-gold-fill); box-shadow: 0 14px 30px -18px rgba(247, 162, 27, .75), inset 0 1px 0 rgba(255, 255, 255, .55);
  transition: transform 1.4s var(--psd-ease), box-shadow 1.4s var(--psd-ease);
}
.pst-contact__send:hover { transform: translateY(-1px); }
.pst-contact__send:disabled { cursor: progress; opacity: .85; transform: none; }
@media (max-width: 720px) { .pst-contact__send { justify-self: stretch; justify-content: center; } }

/* ---------- 404 ---------- */
.pst-404 { text-align: center; max-width: 760px; }
.pst-404 > p { color: var(--psd-muted); font-size: 17px; }
.pst-404__actions { display: flex; flex-wrap: wrap; gap: 18px 28px; justify-content: center; align-items: center; margin-top: 32px; }
.pst-404 .pst-gold { display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 14px 30px; border-radius: 999px; font: 700 15px/1.2 var(--psd-sans); letter-spacing: .06em; color: #0A2E4A; background: var(--psd-gold-fill); }
.pst-404__home { font-weight: 700; color: var(--psd-navy); border-bottom: 1px solid rgba(194, 120, 12, .45); }

/* ---------- Footer ---------- */
.psf {
  position: relative; overflow: hidden; padding: 0 0 34px; color: rgba(255, 250, 243, .82); background-color: #072640;
  background-image: radial-gradient(50% 70% at 85% 0%, rgba(255, 190, 61, .16), transparent 70%), radial-gradient(40% 60% at 0% 100%, rgba(80, 149, 179, .22), transparent 70%), linear-gradient(170deg, #0B3557 0%, #072640 100%);
}
.psf::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 190, 61, .7), transparent); }
.psf-band { text-align: center; padding: 72px 24px 64px; margin: 0 auto 56px; max-width: 1200px; border-bottom: 1px solid rgba(255, 250, 243, .1); }
.psf-band__eyebrow { margin: 0; font: 700 12px/1.4 var(--psd-sans); letter-spacing: .26em; text-transform: uppercase; color: var(--psd-gold); }
.psf-band__line { font: 400 clamp(28px, 3.4vw, 44px)/1.2 var(--psd-serif); color: #FFFAF3; margin: 14px auto 30px; max-width: 760px; }
.psf-band__line em { color: #FFD27A; }
.psf-band__btn {
  display: inline-flex; align-items: center; min-height: 50px; padding: 14px 30px; border-radius: 999px; font: 700 15px/1.2 var(--psd-sans); letter-spacing: .06em;
  color: #0A2E4A; background: var(--psd-gold-fill); box-shadow: 0 14px 30px -16px rgba(247, 162, 27, .8); transition: transform 1.4s var(--psd-ease), box-shadow 1.4s var(--psd-ease);
}
.psf-band__btn:hover { transform: translateY(-1px); box-shadow: 0 20px 38px -18px rgba(247, 162, 27, .85); }
.psf-cols { width: min(1200px, 100% - 48px); margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.psf-logo { align-self: start; max-width: 260px; background: #FFFAF3; border-radius: 18px; padding: 18px 22px; box-shadow: 0 24px 50px -30px rgba(0, 0, 0, .6); }
.psf-logo img { display: block; width: 100%; height: auto; }
.psf-h { margin: 0 0 16px; font: 700 11.5px/1.4 var(--psd-sans); letter-spacing: .26em; text-transform: uppercase; color: var(--psd-gold); }
.psf ul { list-style: none; margin: 0; padding: 0; }
.psf li, .psf-col a { font: 400 15.5px/2.1 var(--psd-sans); color: rgba(255, 250, 243, .82); }
.psf-col a { background: linear-gradient(var(--psd-gold), var(--psd-gold)) left bottom / 0 1px no-repeat; transition: background-size 1.2s var(--psd-ease), color 1s var(--psd-ease); }
.psf-col a:hover { color: #FFFAF3; background-size: 100% 1px; }
.psf-col a.psf-join { color: #FFD27A; }
.psf-i::before {
  content: ""; display: inline-block; width: 15px; height: 15px; margin-right: 12px; vertical-align: -2px; background: var(--psd-gold);
  -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat;
}
.psf-i--place { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.psf-i--mail { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.psf-i--phone { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2Z'/%3E%3C/svg%3E"); }
.psf-policies { display: flex; flex-direction: column; align-items: flex-start; margin: 10px 0 0; }
.psf-policies a { font-size: 14.5px; line-height: 2; color: rgba(255, 250, 243, .7); background: none; border-bottom: 1px solid rgba(255, 190, 61, .5); }
.psf-policies a + a { margin-top: 2px; }
.psf-copy { width: min(1200px, 100% - 48px); margin: 48px auto 0; padding-top: 16px; border-top: 1px solid rgba(255, 250, 243, .12); text-align: center; font-size: 12.5px; line-height: 1.6; letter-spacing: .06em; color: rgba(255, 250, 243, .5); }
@media (max-width: 980px) {
  .psf-band { padding: 56px 20px 48px; margin-bottom: 44px; }
  .psf-cols { grid-template-columns: minmax(0, 1fr); text-align: center; gap: 28px; }
  .psf-logo { justify-self: center; max-width: 230px; margin-bottom: 4px; }
  .psf-policies { align-items: center; }
}
@media (max-width: 720px) { .psf-cols, .psf-copy { width: calc(100% - 32px); } }

/* ---------- Policy page ---------- */
.pst-policy::after { content: ""; display: block; clear: both; }
.pst-policy__art { float: right; width: min(320px, 42%); margin: 0 0 16px 32px; }
.pst-policy__art img { display: block; width: 100%; height: auto; border-radius: 0; }
@media (max-width: 600px) { .pst-policy__art { float: none; width: 220px; margin: 0 auto 16px; } }
body.woocommerce-cart table.cart td.actions .coupon .input-text { width: 180px; min-width: 0; }
