/*
Theme Name: RLPL
Description: Raghuvir Lifestyle B2B catalogue theme (Shahi-style).
Version: 0.4.5
Requires PHP: 8.0
Text Domain: rlpl
*/
html, body, #root { margin: 0; min-height: 100%; }
.C, body.rlpl { font-family: 'Helvetica Neue', Arial, sans-serif; color: #111; background: #fff; border: 1px solid #e5e5e5; }
.top { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; gap: 12px; }
.logo { font-size: 16px; letter-spacing: .08em; }
.nav { display: flex; gap: 20px; padding: 0 20px; overflow-x: auto; white-space: nowrap; border-bottom: 1px solid #e5e5e5; border-top: 1px solid #f0f0f0; }
.nav a { color: #444; text-decoration: none; font-size: 14px; display: inline-flex; align-items: center; min-height: 44px; }
.nav a[aria-current="page"] { color: #111; box-shadow: inset 0 -2px 0 #b42318; font-weight: 600; }
.btn { background: #b42318; color: #fff; padding: 11px 16px; font-size: 14px; font-weight: 600; border-radius: 4px; display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }
.btn.ghost { background: #fff; color: #111; border: 1px solid #111; margin-top: 8px; }
.hero { display: grid; gap: 18px; padding: 32px 20px; background: #f6f6f4; }
.eb { color: #b42318; font-weight: 600; font-size: 13px; margin: 0 0 10px; }
h1 { font-size: 30px; line-height: 1.2; margin: 0 0 14px; font-weight: 600; }
.lede { font-size: 17px !important; line-height: 1.55 !important; color: #222 !important; }
.row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.stats { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid #e5e5e5; }
.stats div { padding: 20px; border-right: 1px solid #e5e5e5; border-top: 1px solid #e5e5e5; }
.stats b { display: block; font-size: 26px; color: #b42318; }
.stats b.sm { font-size: 20px; }
.stats span { font-size: 13px; color: #555; }
.blk { padding: 36px 20px; }
.blk.grey { background: #f6f6f4; }
.blk.dark { background: #111; color: #fff; }
h2 { font-size: 24px; margin: 0 0 18px; font-weight: 600; }
h3 { font-size: 16px; margin: 0 0 6px; }
.cards { display: grid; gap: 16px; }
.card { border: 1px solid #e5e5e5; border-radius: 6px; padding: 12px; background: #fff; }
.card h3 { margin-top: 12px; }
.card p { font-size: 14px; line-height: 1.5; color: #444; margin: 0 0 6px; }
.lnk { color: #b42318; font-weight: 600; font-size: 14px; display: inline-block; margin-top: 8px; }
.lnk.light { color: #ff8a80; }
.caps { display: grid; gap: 14px; }
.caps div { border-top: 2px solid #b42318; padding-top: 10px; }
.caps p { margin: 0; font-size: 13px; line-height: 1.5; color: #bbb; }
.split, .three { display: grid; gap: 18px; }
.t { margin-bottom: 14px; }
.t p { margin: 0; font-size: 15px; line-height: 1.6; color: #333; }
.dark .t p, .vals p { color: #ccc; }
.t ol { margin: 8px 0 0; padding-left: 20px; font-size: 15px; line-height: 1.6; color: #333; }
.t ol li { margin: 4px 0; }
.band { background: #b42318; color: #fff; padding: 30px 20px; }
.band .t p { color: #fff; }
.phead { padding: 30px 20px 6px; background: #f6f6f4; border-bottom: 1px solid #e5e5e5; }
.tl .yr { display: grid; grid-template-columns: 90px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid #e5e5e5; }
.tl .yr b { font-size: 20px; color: #b42318; }
.tl .yr p { margin: 0; font-size: 15px; line-height: 1.55; color: #333; }
.tl .yr.new { background: #fffaf0; }
.cap-row { display: grid; gap: 12px; padding: 16px 0; border-top: 1px solid #e5e5e5; }
.vals { display: grid; gap: 16px; }
.vals div { border-top: 2px solid #b42318; padding-top: 10px; }
.vals p { margin: 0; font-size: 14px; line-height: 1.55; }
.form { display: grid; gap: 12px; }
.form label span { display: block; font-size: 13px; color: #444; margin-bottom: 4px; }
.form i { display: block; height: 42px; border: 1px solid #cfcfcf; border-radius: 4px; }
.form i.big { height: 90px; }
.foot { display: grid; gap: 12px; padding: 22px 20px; background: #111; color: #bbb; font-size: 13px; }
.foot b { color: #fff; }
.foot p { margin: 4px 0; }
@media (min-width: 768px) {
  .top, .nav, .blk, .phead, .band, .foot { padding-left: 40px; padding-right: 40px; }
  .hero { grid-template-columns: 1fr 1fr; padding: 48px 40px; align-items: center; }
  h1 { font-size: 38px; }
  .stats { grid-template-columns: repeat(4, 1fr); }
  .cards, .split { grid-template-columns: 1fr 1fr; gap: 28px; }
  .three { grid-template-columns: repeat(3, 1fr); gap: 28px; }
  .caps { grid-template-columns: repeat(5, 1fr); }
  .vals { grid-template-columns: repeat(4, 1fr); }
  .cap-row { grid-template-columns: 280px 1fr; gap: 28px; align-items: start; }
  .tl .yr { grid-template-columns: 130px 1fr; }
  .foot { grid-template-columns: 2fr 1fr 1fr; }
}
.top .btn { white-space: nowrap; padding: 0 12px; font-size: 13px; }
@media (max-width: 480px) { .logo { font-size: 13px; letter-spacing: .06em; } }
.range { display: grid; gap: 14px; margin-top: 18px; }
.range .card p { margin-bottom: 4px; }
@media (min-width: 768px) { .range { grid-template-columns: repeat(3, 1fr); } }
body.rlpl { margin: 0; border: 0; }
.wrap-c { max-width: 1240px; margin: 0 auto; }
.img { width: 100%; height: auto; display: block; border-radius: 4px; object-fit: cover; }
.hero.noimg, .split.noimg, .cap-row.noimg { grid-template-columns: 1fr; }
.btn { text-decoration: none; }
.lnk { text-decoration: none; }
.form input, .form textarea, .form select { width: 100%; box-sizing: border-box; border: 1px solid #cfcfcf; border-radius: 4px; min-height: 42px; padding: 8px; font: inherit; }
.form textarea { min-height: 110px; }
.card a { color: inherit; text-decoration: none; }
.woocommerce .price, .woocommerce .add_to_cart_button, .woocommerce .cart { display: none !important; }
.faq dt { font-weight: 600; margin-top: 14px; }
.faq dd { margin: 4px 0 0; color: #333; line-height: 1.55; }

.catalogue { display:grid; gap:22px; }
.catalogue-menu { align-self:start; border:1px solid #e5e5e5; border-radius:6px; padding:16px; }
.catalogue-menu h2 { font-size:17px; margin-bottom:10px; }
.catalogue-menu a { display:block; padding:10px 8px; color:#333; text-decoration:none; border-top:1px solid #eee; font-size:14px; }
.catalogue-menu a[aria-current="page"] { font-weight:700; color:#b42318; }
.catalogue-count { margin:0; font-size:14px; color:#555; }
.catalogue-results .range { grid-template-columns: repeat(2,minmax(0,1fr)); }
.catalogue-results .card img { aspect-ratio:1; object-fit:contain; }
.catalogue-pages { display:flex; gap:8px; margin-top:24px; }
.catalogue-pages a { padding:8px 12px; border:1px solid #ddd; text-decoration:none; color:#333; }
.catalogue-pages a[aria-current="page"] { border-color:#b42318; color:#b42318; font-weight:700; }
@media(min-width:768px) { .catalogue { grid-template-columns: 230px minmax(0,1fr); } .catalogue-results .range { grid-template-columns:repeat(3,minmax(0,1fr)); } }

.infra-places { display:grid; gap:16px; margin-top:20px; }
.infra-places > div { padding:18px; border:1px solid #ddd; border-left:3px solid #b42318; }
.infra-places h2 { font-size:18px; margin-bottom:8px; }
.infra-places p, .infra-note { margin:0; color:#555; line-height:1.55; font-size:14px; }
.infra-figure { max-width:760px; margin:0; }
.infra-figure img { width:100%; height:auto; display:block; }
.infra-figure figcaption { color:#555; font-size:12px; margin-top:8px; }
@media(min-width:768px) { .infra-places { grid-template-columns:1fr 1fr; } }
.catalogue-menu a.depth-1 { padding-left:20px; }
.catalogue-menu a.depth-2 { padding-left:32px; }

/* Browse-by-category shopping layout, with actual WooCommerce product photography. */
.category-intro { margin:26px 0 20px; }
.category-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:6px; }
.category-heading h2 { font-size:23px; margin-bottom:14px; }
.category-heading p { color:#777; font-size:14px; margin:0; }
.category-tiles { display:flex; gap:13px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 0 17px; scrollbar-color:#b42318 #f0f0f0; }
.category-tile { flex:0 0 150px; min-width:0; scroll-snap-align:start; text-decoration:none; color:#222; border:1px solid #e9e9e9; border-radius:12px; overflow:hidden; background:#fff; transition:transform .2s, box-shadow .2s; }
.category-tile:hover { transform:translateY(-3px); box-shadow:0 8px 22px rgba(0,0,0,.10); }
.category-tile[aria-current="page"] { border-color:#b42318; }
.category-tile img { width:100%; aspect-ratio:1; display:block; object-fit:cover; background:#f7f7f7; transition:transform .3s; }
.category-tile:hover img { transform:scale(1.045); }
.category-tile span { display:block; padding:10px; font-size:13px; font-weight:600; line-height:1.25; }
.category-chips { display:none; }
.catalogue-menu { position:sticky; top:24px; max-height:calc(100vh - 40px); overflow:auto; border:0; border-right:1px solid #eee; padding:4px 14px 4px 0; border-radius:0; }
.catalogue-menu a { border:0; padding:9px 12px; border-radius:6px; }
.catalogue-menu a:hover,.catalogue-menu a[aria-current="page"] { background:#f6efed; }
.results-head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; border-bottom:1px solid #eee; padding-bottom:8px; }
.results-head h2 { font-size:22px; margin:0; }
.results-head p { color:#777; font-size:14px; margin:0; }
.catalogue-results .card { border-radius:10px; padding:10px; overflow:hidden; transition:box-shadow .2s; }
.catalogue-results .card:hover { box-shadow:0 9px 22px rgba(0,0,0,.09); }
.catalogue-results .card img { transition:transform .3s; }
.catalogue-results .card:hover img { transform:scale(1.04); }
@media(max-width:767px) {
 .category-tile { flex-basis:125px; }
 .category-chips { display:flex; gap:8px; overflow-x:auto; padding:0 0 15px; white-space:nowrap; }
 .category-chips a { border:1px solid #ddd; padding:8px 13px; border-radius:40px; color:#333; text-decoration:none; font-size:13px; }
 .category-chips a[aria-current="page"] { background:#b42318; border-color:#b42318; color:#fff; }
 .catalogue-menu { display:none; }
 .catalogue-results .range { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 .catalogue-results .card h3 { font-size:13px; }
 .catalogue-results .card p { font-size:12px; }
}

@media(max-width:767px) { .catalogue { min-width:0; grid-template-columns:minmax(0,1fr); } .catalogue-results { min-width:0; } .catalogue-results .range { min-width:0; grid-template-columns:repeat(2,minmax(0,1fr)); } .catalogue-results .card { min-width:0; } .catalogue-pages { flex-wrap:wrap; } }
.category-tile.text-tile { display:flex; align-items:end; min-height:188px; background:#f7f1eb; border-color:#eaded2; }
.category-tile.text-tile span { font-size:17px; padding:18px; }
.image-disclaimer { font-size:11px; color:#6d6965; line-height:1.45; margin:1px 0 12px; }
.empty-catalogue { padding:28px 0 50px; color:#5d5752; }
@media(max-width:767px) { .category-tile.text-tile { min-height:164px; } .category-tile.text-tile span { font-size:15px; padding:12px; } }

.category-tile.icon-tile { background:#fbf6f3; border-color:#efded8; display:flex; flex-direction:column; align-items:center; justify-content:space-between; min-height:176px; }
.category-tile.icon-tile img { width:72px; height:72px; object-fit:contain; aspect-ratio:auto; background:transparent; margin:24px auto 10px; transform:none; }
.category-tile.icon-tile span { width:100%; min-height:44px; text-align:center; padding:7px 9px 12px; display:flex; align-items:center; justify-content:center; color:#342a27; font-size:13px; }
.category-tile.icon-tile:hover { background:#fff0e9; }
@media(max-width:767px) { .category-tile.icon-tile { min-height:157px; } .category-tile.icon-tile img { width:58px; height:58px; margin:20px auto 7px; } .category-tile.icon-tile span { font-size:12px; padding:5px 7px 10px; } }

/* Garment category artwork: soft circular badges and filled, matching red icons. */
.category-tile.icon-tile { background:linear-gradient(160deg,#fffaf8 0%,#f9eee9 100%); border:1px solid #ead6cf; box-shadow:0 3px 9px rgba(128,41,29,.045); }
.category-tile.icon-tile img { width:82px; height:82px; margin:17px auto 3px; padding:15px; border-radius:50%; background:#fbe3db; box-shadow:inset 0 0 0 1px #efd1c8,0 2px 6px rgba(124,47,30,.08); }
.category-tile.icon-tile span { font-size:13px; line-height:1.2; font-weight:650; min-height:48px; }
.category-tile.icon-tile:hover { background:#fff4ef; border-color:#d9998b; }
@media(max-width:767px) { .category-tile.icon-tile img { width:76px; height:76px; margin:15px auto 2px; padding:15px; } .category-tile.icon-tile span { min-height:46px; font-size:12px; } }

.product-photo-pending { aspect-ratio:1; border-radius:8px; display:flex; align-items:center; justify-content:center; background:#fbf4ef; border:1px solid #f0e4dc; color:#8b5d4f; text-align:center; font-size:13px; font-weight:600; letter-spacing:.01em; line-height:1.35; }
body.single-product:not(.rlpl-photo-ready) .woocommerce-product-gallery,body.single-product:not(.rlpl-photo-ready) .woocommerce-product-gallery__wrapper { display:none!important; }
body.post-type-archive-product .products img,body.tax-product_cat .products img { visibility:hidden!important; }

/* Staging-only AI catalog previews: full portrait layout, no crop. */
.ai-preview-section { margin:20px 0 30px; }
.ai-preview-section h3 { font-size:19px; margin:0 0 4px; }
.ai-preview-section > p { color:#69635f; font-size:13px; margin:0 0 14px; }
.ai-preview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.ai-preview-card { min-width:0; border:1px solid #e8ded9; border-radius:10px; overflow:hidden; background:#fff; }
.ai-preview-card img { width:100%; height:auto; aspect-ratio:1131/1600; object-fit:contain; display:block; background:#fff; }
.ai-preview-title { padding:9px 11px 10px; display:flex; gap:8px; align-items:baseline; justify-content:space-between; font-size:13px; }
.ai-preview-title span { font-size:11px; color:#85675e; white-space:nowrap; }
.legacy-range-heading { margin:0 0 8px; font-size:18px; }
@media(max-width:767px) { .ai-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; } .ai-preview-title { padding:7px; font-size:12px; } .ai-preview-title span { font-size:10px; } }

/* B2B product titles and secondary style identifiers on staging preview cards. */
.ai-preview-title { display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:11px 12px 12px; line-height:1.35; }
.ai-preview-title strong { font-size:14px; font-weight:650; color:#23201f; }
.ai-preview-title small { color:#73675f; font-size:11px; }
@media(max-width:767px) { .ai-preview-title { padding:8px 9px 10px; gap:3px; } .ai-preview-title strong { font-size:12px; } .ai-preview-title small { font-size:10px; } }

.aeo-intro { background:#fcf7f4; border-left:3px solid #b42318; padding:13px 16px; margin:16px 0 20px; color:#40332f; line-height:1.55; font-size:14px; }
.aeo-intro p { margin:0; }
.aeo-faq { border-top:1px solid #eadbd5; margin:28px 0 35px; padding-top:22px; }
.aeo-faq h3 { margin:0 0 4px; font-size:20px; }
.aeo-faq > p { color:#73665f; font-size:13px; margin:0 0 12px; }
.aeo-faq-item { padding:12px 0; border-top:1px solid #eee8e4; }
.aeo-faq-item h4, .aeo-faq-item h3 { margin:0 0 5px; font-size:15px; }
.aeo-faq-item p { color:#5a504b; margin:0; font-size:14px; line-height:1.5; }
.facility-grid { display:grid; gap:22px; margin:28px 0 32px; }
.facility { margin:0; background:#fff; border:1px solid #e5e5e5; border-radius:5px; overflow:hidden; }
.facility img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.facility figcaption { padding:14px 16px 16px; display:flex; justify-content:space-between; gap:12px; align-items:baseline; }
.facility figcaption strong { font-size:17px; }
.facility figcaption span { color:#666; font-size:13px; }
@media (min-width:768px) { .facility-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; } }
/* Equal image frames; source-specific focus keeps each division sign in view. */
.facility img { height:auto; aspect-ratio:4/3; object-fit:cover; }

/* A contained product enquiry, not an unstyled WooCommerce shop page. */
.rlpl-product { box-sizing:border-box; padding:24px 20px 54px; }
.rlpl-product a:not(.btn) { color:#a6241b; text-decoration:underline; text-underline-offset:3px; }
.rlpl-product-breadcrumb { display:flex; flex-wrap:wrap; gap:9px; align-items:baseline; font-size:13px; line-height:1.5; color:#666; margin:0 0 27px; }
.rlpl-product-breadcrumb span[aria-current] { color:#333; }
.rlpl-product-layout { display:grid; gap:24px; align-items:start; }
.rlpl-product-photo { margin:0; background:#faf9f7; border:1px solid #eee9e5; border-radius:8px; overflow:hidden; }
.rlpl-product-photo img { display:block; width:100%; height:auto; max-height:680px; object-fit:contain; }
.rlpl-product-info { max-width:590px; }
.rlpl-product-info h1 { font-size:clamp(28px,3vw,38px); line-height:1.16; margin-bottom:20px; }
.rlpl-product-copy { font-size:16px; line-height:1.65; color:#333; margin:0 0 20px; }
.rlpl-product-copy p { margin:0; }
.rlpl-product-note { background:#f9f4f1; border-left:3px solid #b42318; padding:16px 18px; color:#38312e; font-size:14px; line-height:1.6; margin:0 0 22px; }
.rlpl-product-back { display:block; width:max-content; margin-top:19px; font-size:14px; font-weight:600; }
.rlpl-product-faq { border-top:1px solid #e7dfdb; margin-top:45px; padding-top:27px; display:grid; gap:12px 30px; }
.rlpl-product-faq h2 { grid-column:1/-1; margin:0; font-size:22px; }
.rlpl-product-faq h3 { margin:0 0 7px; font-size:16px; }
.rlpl-product-faq p { margin:0; color:#4b4643; line-height:1.55; font-size:14px; }
@media(min-width:768px) { .rlpl-product { padding:35px 40px 75px; } .rlpl-product-layout { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,5vw,75px); } .rlpl-product-faq { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.rlpl-catalogue-enquiry { border:1px solid #e9dcd7; border-left:3px solid #b42318; background:#fffaf8; padding:20px; margin:25px 0 15px; }
.rlpl-catalogue-enquiry p { margin:0 0 13px; font-size:15px; line-height:1.6; color:#333; }

/* Home textile categories have no approved product photography yet. Text-first cards avoid empty image frames. */
.category-tile.text-tile { min-height:140px; align-items:center; justify-content:center; text-align:center; background:#fcf5f0; border-color:#ead6cf; }
.category-tile.text-tile span { font-size:15px; padding:16px; }
@media(max-width:767px) { .category-tile.text-tile { min-height:134px; } .category-tile.text-tile span { font-size:13px; padding:12px; } }

.founder-photo { margin: 0 0 1.4rem; } .founder-photo figcaption { font-weight: 700; padding: .55rem 0; color: #222; } .founder-photo img { width: 100%; max-height: 500px; object-fit: contain; object-position: center top; background: #f5f5f5; }
.leadership-portraits { min-width: 0; } .leadership-portraits .founder-photo { margin: 0 0 1.4rem; } .leadership-portraits img { display: block; }
