/*
Theme Name: Rahat Jewellers
Theme URI: https://rahatjewellers.example.com
Author: Bright Extend
Author URI: https://brightextend.example.com
Description: A premium, bilingual (English/Bangla) jewellery showroom theme for Rahat Jewellers, Sonarpotti, Naogaon. Includes a built-in photo Gallery (custom post type), WhatsApp/Facebook/Instagram quick buttons, and an easy Customizer panel for shop details.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: rahat-jewellers
Tags: jewellery, ecommerce, gallery, bilingual, gold, custom-logo, custom-menu, translation-ready
*/

:root{
  --gold:#b8892f;
  --gold-light:#e7c675;
  --gold-deep:#8f6a1f;
  --ink:#1c1712;
  --ink-soft:#3a322a;
  --cream:#fbf6ec;
  --cream-deep:#f2e8d3;
  --maroon:#7a2331;
  --line:rgba(28,23,18,0.12);
  --shadow:0 18px 40px -20px rgba(28,23,18,0.35);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Jost','Hind Siliguri',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.lang-bn{font-family:'Hind Siliguri','Jost',sans-serif;}
h1,h2,h3,.serif{font-family:'Cormorant Garamond','Tiro Bangla',serif; font-weight:600;}
body.lang-bn h1, body.lang-bn h2, body.lang-bn h3, body.lang-bn .serif{font-family:'Tiro Bangla','Cormorant Garamond',serif;}
h1,h2,h3{text-wrap:balance; margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding-inline:20px;}
.eyebrow{font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold-deep); font-weight:600;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:13px 26px; border-radius:2px; font-size:0.95rem; letter-spacing:0.03em; border:1px solid var(--gold); cursor:pointer; transition:transform .18s ease, box-shadow .18s ease; white-space:nowrap;}
.btn:hover{transform:translateY(-2px); box-shadow:var(--shadow);}
.btn-gold{background:var(--gold); color:#221a0e; border-color:var(--gold);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-ghost:hover{border-color:var(--gold);}

/* header */
header.site-header{position:sticky; top:0; z-index:50; background:rgba(251,246,236,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding-block:12px; gap:14px;}
.brand{display:flex; align-items:center; gap:10px;}
/* Sized by class (not by ".brand img") so this still applies even if a
   custom logo's own <a> tag changes the surrounding markup structure. */
.brand .custom-logo-link{display:block;}
.custom-logo,
.site-logo-img{width:42px; height:42px; border-radius:50%; object-fit:cover; display:block;}
.site-header img{max-height:52px;} /* safety net: nothing in the header grows past this */
.brand-text-link{display:flex; flex-direction:column; color:inherit; text-decoration:none;}
.brand-name{font-family:'Cormorant Garamond','Tiro Bangla',serif; font-size:1.25rem; letter-spacing:0.02em; line-height:1;}
.brand-tag{font-size:0.62rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-soft);}
nav.links{display:flex; gap:26px; font-size:0.9rem;}
nav.links ul{display:flex; gap:26px; list-style:none; margin:0; padding:0;}
nav.links a{color:var(--ink-soft);}
nav.links a:hover{color:var(--ink);}
.nav-right{display:flex; align-items:center; gap:12px;}
.lang-toggle{display:flex; border:1px solid var(--line); border-radius:20px; overflow:hidden; font-size:0.78rem;}
.lang-toggle button{border:none; background:transparent; padding:6px 13px; cursor:pointer; color:var(--ink-soft); font-family:inherit;}
.lang-toggle button.active{background:var(--gold); color:#221a0e; font-weight:600;}
.burger{display:none; background:none; border:none; font-size:1.5rem; color:var(--ink); cursor:pointer;}
@media (max-width:640px){.nav-cta{display:none;}}
@media (max-width:860px){
  nav.links{position:fixed; top:0; right:0; height:100vh; width:78%; max-width:320px; background:var(--cream); flex-direction:column; align-items:flex-start; padding:90px 26px 26px; transform:translateX(100%); transition:transform .25s ease; box-shadow:var(--shadow); z-index:60;}
  nav.links.open{transform:translateX(0);}
  nav.links ul{flex-direction:column; gap:20px;}
  .burger{display:block;}
}

/* hero */
.hero{position:relative; background:radial-gradient(120% 120% at 15% 0%, #2a2117 0%, var(--ink) 55%, #0f0c08 100%); color:#f3ecdd; padding-block:96px 100px; overflow:hidden;}
.hero::before{content:""; position:absolute; inset:0; opacity:0.10; pointer-events:none; background-image:radial-gradient(circle at 20% 20%, var(--gold-light) 0, transparent 45%), radial-gradient(circle at 85% 75%, var(--gold-light) 0, transparent 40%);}
.hero-inner{position:relative; text-align:center; display:flex; flex-direction:column; align-items:center; gap:22px;}
.hero-logo{width:96px; height:96px; border-radius:50%; border:2px solid var(--gold-light); padding:6px; background:#0f0c08;}
.hero h1{font-size:clamp(2.1rem,5.4vw,3.6rem); color:#f8f2e4;}
.hero .rule{width:70px; height:1px; background:var(--gold-light); opacity:0.7;}
.hero p.sub{max-width:560px; font-size:1.05rem; color:#d8cdb8; line-height:1.7;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:8px;}
.hero .btn-ghost{color:#f3ecdd; border-color:rgba(243,236,221,0.35);}
.hero .btn-ghost:hover{border-color:var(--gold-light);}
.hero-stats{display:flex; gap:40px; margin-top:26px; flex-wrap:wrap; justify-content:center;}
.hero-stats div{text-align:center;}
.hero-stats .num{font-family:'Cormorant Garamond',serif; font-size:1.9rem; color:var(--gold-light);}
.hero-stats .lbl{font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:#b9ac91;}

section{padding-block:78px;}
.section-head{text-align:center; max-width:640px; margin:0 auto 46px;}
.section-head h2{font-size:clamp(1.7rem,3.4vw,2.5rem); margin-top:8px;}
.section-head p{color:var(--ink-soft); margin-top:12px; line-height:1.7;}

/* about */
.about{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
@media (max-width:800px){.about{grid-template-columns:1fr;}}
.about-art{aspect-ratio:4/5; border:1px solid var(--line); border-radius:4px; position:relative; background:linear-gradient(160deg, var(--cream-deep), var(--cream)); display:flex; align-items:center; justify-content:center;}
.about-art img{width:58%; opacity:0.95; border-radius:50%;}
.about-art::after{content:""; position:absolute; inset:14px; border:1px solid var(--gold); opacity:0.35; pointer-events:none;}
.about h2{font-size:clamp(1.7rem,3.2vw,2.4rem); margin-top:6px;}
.about p{color:var(--ink-soft); line-height:1.85; margin-top:18px; font-size:1rem;}
.about-list{list-style:none; padding:0; margin:26px 0 0; display:flex; flex-direction:column; gap:12px;}
.about-list li{display:flex; gap:10px; align-items:flex-start; font-size:0.95rem; color:var(--ink-soft);}
.about-list svg{flex:none; margin-top:3px; width:16px; height:16px; color:var(--gold-deep);}

/* grids / cards */
.grid4{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
@media (max-width:980px){.grid4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.grid4{grid-template-columns:1fr;}}
.card{border:1px solid var(--line); border-radius:4px; padding:30px 22px; text-align:center; background:var(--cream-deep); transition:transform .2s ease, border-color .2s ease;}
.card:hover{transform:translateY(-6px); border-color:var(--gold);}
.card .icon{width:58px; height:58px; margin:0 auto 18px; border-radius:50%; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; color:var(--gold-deep);}
.card h3{font-size:1.2rem;}
.card p{color:var(--ink-soft); font-size:0.88rem; margin-top:8px; line-height:1.6;}

/* features strip */
.feat-strip{background:var(--ink); color:#f3ecdd;}
.feat-strip .grid4{gap:0; border:1px solid rgba(243,236,221,0.14); border-radius:4px; overflow:hidden;}
.feat-strip .card{background:transparent; border:none; border-right:1px solid rgba(243,236,221,0.14);}
.feat-strip .card:last-child{border-right:none;}
@media (max-width:520px){.feat-strip .card{border-right:none; border-bottom:1px solid rgba(243,236,221,0.14);}}
.feat-strip .card:hover{transform:none; border-color:rgba(243,236,221,0.14);}
.feat-strip .icon{border-color:var(--gold-light); color:var(--gold-light);}
.feat-strip h3{font-family:'Jost','Hind Siliguri',sans-serif; font-weight:600; font-size:1rem;}
.feat-strip p{color:#b9ac91;}

/* testimonials */
.tgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media (max-width:860px){.tgrid{grid-template-columns:1fr;}}
.tcard{border:1px solid var(--line); border-radius:4px; padding:28px; background:var(--cream-deep);}
.tcard .quote{font-family:'Cormorant Garamond','Tiro Bangla',serif; font-size:1.5rem; color:var(--maroon); line-height:1;}
.tcard p.msg{margin-top:6px; color:var(--ink-soft); font-size:0.95rem; line-height:1.7;}
.tcard .who{margin-top:16px; font-size:0.85rem; font-weight:600; color:var(--gold-deep);}

/* gallery */
.gallery-hero{background:var(--ink); color:#f3ecdd; padding-block:64px; text-align:center;}
.gallery-hero .eyebrow{color:var(--gold-light);}
.gallery-hero h1{color:#f8f2e4; font-size:clamp(2rem,4.6vw,3rem); margin-top:10px;}
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:10px;}
@media (max-width:980px){.gallery-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:680px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}
.gallery-item{position:relative; aspect-ratio:1/1; overflow:hidden; border-radius:4px; border:1px solid var(--line); cursor:pointer;}
.gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .35s ease;}
.gallery-item:hover img{transform:scale(1.07);}
.gallery-item .cap{position:absolute; left:0; right:0; bottom:0; padding:10px 12px; font-size:0.78rem; background:linear-gradient(0deg, rgba(28,23,18,0.75), transparent); color:#f8f2e4; opacity:0; transition:opacity .2s ease;}
.gallery-item:hover .cap{opacity:1;}
.gallery-empty{text-align:center; padding:40px 20px; color:var(--ink-soft); border:1px dashed var(--line); border-radius:4px;}
.lightbox{position:fixed; inset:0; background:rgba(12,10,7,0.92); z-index:200; display:none; align-items:center; justify-content:center; padding:30px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:90vw; max-height:82vh; border-radius:2px; box-shadow:0 30px 80px -20px rgba(0,0,0,0.6);}
.lightbox .cap{color:#f3ecdd; text-align:center; margin-top:14px; font-size:0.92rem;}
.lightbox-close, .lightbox-prev, .lightbox-next{position:absolute; background:rgba(255,255,255,0.08); border:1px solid rgba(243,236,221,0.25); color:#f3ecdd; width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1.3rem;}
.lightbox-close{top:20px; right:20px;}
.lightbox-prev{left:20px; top:50%; transform:translateY(-50%);}
.lightbox-next{right:20px; top:50%; transform:translateY(-50%);}

/* contact */
.contact{display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px;}
@media (max-width:860px){.contact{grid-template-columns:1fr;}}
.contact-card{border:1px solid var(--line); border-radius:4px; padding:34px; background:var(--cream-deep);}
.contact-row{display:flex; gap:14px; align-items:flex-start; margin-bottom:20px;}
.contact-row svg{flex:none; width:20px; height:20px; color:var(--gold-deep); margin-top:2px;}
.contact-row .lbl{font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-soft);}
.contact-row .val{font-size:1rem; margin-top:2px;}
.map-card{border:1px solid var(--line); border-radius:4px; overflow:hidden; position:relative; min-height:260px; background:linear-gradient(160deg, var(--ink) 0%, #241d14 100%); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; color:#f3ecdd; padding:28px; text-align:center;}
.map-card::before{content:""; position:absolute; inset:0; opacity:0.16; background-image:repeating-linear-gradient(0deg, transparent, transparent 22px, rgba(243,236,221,0.4) 23px), repeating-linear-gradient(90deg, transparent, transparent 22px, rgba(243,236,221,0.4) 23px);}
.map-card .pin{position:relative; width:40px; height:40px; color:var(--gold-light);}
.map-card h3{position:relative; font-size:1.1rem;}
.map-card p{position:relative; color:#cfc3a8; font-size:0.88rem; max-width:280px;}

/* page (generic) */
.page-hero{background:var(--ink); color:#f3ecdd; padding-block:60px; text-align:center;}
.page-hero h1{color:#f8f2e4;}
.page-content{padding-block:60px;}
.page-content .wrap{max-width:820px;}
.page-content img{border-radius:4px;}
.page-content p{line-height:1.85; color:var(--ink-soft);}

footer.site-footer{background:var(--ink); color:#d8cdb8; padding-block:50px 26px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:36px;}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr; gap:28px;}}
.foot-brand{display:flex; align-items:center; gap:10px; margin-bottom:10px;}
.foot-brand img{width:38px; height:38px; border-radius:50%;}
.foot-brand span{font-family:'Cormorant Garamond','Tiro Bangla',serif; font-size:1.2rem; color:#f3ecdd;}
footer p{font-size:0.88rem; line-height:1.7; color:#b9ac91;}
footer h4{font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color:#f3ecdd; margin-bottom:14px; font-weight:600;}
footer ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px;}
footer ul a{font-size:0.9rem; color:#b9ac91;}
footer ul a:hover{color:var(--gold-light);}
.foot-social{display:flex; gap:12px; margin-top:6px;}
.foot-social a{width:34px; height:34px; border-radius:50%; border:1px solid rgba(216,205,184,0.3); display:flex; align-items:center; justify-content:center; color:#d8cdb8;}
.foot-social a:hover{border-color:var(--gold-light); color:var(--gold-light);}
.foot-bottom{border-top:1px solid rgba(216,205,184,0.14); margin-top:38px; padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:0.8rem; color:#93876f;}

/* floating action buttons */
.fab-stack{position:fixed; right:18px; bottom:18px; z-index:60; display:flex; flex-direction:column; gap:12px; align-items:flex-end;}
.fab{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:var(--shadow); transition:transform .15s ease;}
.fab:hover{transform:scale(1.08);}
.fab.wa{background:#25D366;}
.fab.fb{background:#1877F2;}
.fab.ig{background:radial-gradient(circle at 30% 110%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285AEB 90%);}
.fab svg{width:24px; height:24px;}

[hidden]{display:none !important;}
