/*
Theme Name: Boston Event Furniture
Theme URI: https://bostoneventfurniture.com
Author: Party Excitement Entertainment / Boston Event Furniture
Description: Custom homepage theme for Boston Event Furniture. Design A (Mosaic Editorial), Sorbet neutrals with a #3D6E8C accent, light/dark mode toggle.
Version: 1.0.0
Requires PHP: 7.4
Text Domain: bef
*/

:root{
  --bg:#FEFEFE;
  --bg-alt:#EDECEC;
  --bg-tint:#E0E7D7;
  --border:#CCCCCC;
  --text:#3A362E;
  --text-soft:#6B665C;
  --photo-1:#E0E7D7;
  --photo-2:#CCCCCC;
  --caption-bg:rgba(255,255,255,0.8);
  --card-shadow:0 24px 48px -24px rgba(58,54,46,0.18);
  --accent:#3D6E8C;
  --on-accent:#FEFEFE;
  --on-accent-invert:#3D6E8C;
}
[data-theme="dark"]{
  --bg:#15171A;
  --bg-alt:#1E2124;
  --bg-tint:#202B33;
  --border:#33393E;
  --text:#EDEDEC;
  --text-soft:#A7ACAF;
  --photo-1:#232A2E;
  --photo-2:#33393E;
  --caption-bg:rgba(20,22,24,0.82);
  --card-shadow:0 24px 48px -24px rgba(0,0,0,0.6);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  transition:background-color .2s, color .2s;
}
img{max-width:100%;display:block;}
h1,h2,h3,.display{
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--text);
}
.label-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-soft);
  font-weight:500;
}
a{color:inherit;text-decoration:none;}
.btn{
  display:inline-block;
  padding:14px 30px;
  border-radius:2px;
  font-size:14px;
  font-weight:500;
  letter-spacing:0.02em;
  transition:opacity .15s;
  cursor:pointer;
  border:none;
  font-family:'Inter',sans-serif;
}
.btn:hover{opacity:0.85;}
.btn-primary{background:var(--text);color:var(--bg);}
.btn-outline{border:1px solid var(--text);color:var(--text);background:transparent;}
.btn-outline:hover{background:var(--bg-alt);}

.photo-block{
  background:linear-gradient(135deg, var(--photo-1), var(--photo-2));
  display:flex;
  align-items:flex-end;
  padding:16px;
  position:relative;
  min-height:120px;
  transition:background .2s;
}
.photo-block::before{
  content:attr(data-caption);
  font-size:11px;
  color:var(--text-soft);
  background:var(--caption-bg);
  padding:4px 8px;
  border-radius:2px;
}
.photo-block img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;}

/* NAV */
.site-header{padding:24px 48px;max-width:1400px;margin:0 auto;}
nav.site-nav{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.logo{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:19px;}
.nav-links{display:flex;gap:32px;font-size:14px;font-weight:500;align-items:center;list-style:none;flex-wrap:wrap;}
.nav-links li{display:flex;align-items:center;}
.nav-links a{color:var(--text-soft);}
.nav-links a:hover{color:var(--text);}

/* SOCIAL */
.social-row{display:flex;gap:8px;margin-left:4px;}
.social-badge{width:30px;height:30px;border-radius:50%;background:var(--bg-alt);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--text-soft);letter-spacing:0.02em;}
.social-badge:hover{background:var(--bg-tint);color:var(--text);}

/* THEME TOGGLE */
#theme-toggle{padding:9px 16px;font-size:13px;}

/* HERO — asymmetric offset */
.hero{position:relative;max-width:1400px;margin:0 auto;padding:0 48px 120px;}
.hero-photo{height:640px;width:88%;margin-left:0;}
.hero-text-card{
  background:var(--bg);
  border:1px solid var(--border);
  max-width:480px;
  padding:44px;
  position:relative;
  margin-top:-140px;
  margin-left:60%;
  box-shadow:var(--card-shadow);
}
.hero-text-card h1{font-size:38px;line-height:1.08;margin:14px 0 18px;}
.hero-text-card p{color:var(--text-soft);font-size:15px;margin-bottom:26px;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}

/* INTRO offset two column */
.intro{
  max-width:1400px;margin:0 auto;padding:20px 48px 140px;
  display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:center;
}
.intro-photo{height:460px;}
.intro-copy .label-tag{margin-bottom:18px;}
.intro-copy h2{font-size:32px;margin-bottom:20px;max-width:420px;}
.intro-copy p{color:var(--text-soft);font-size:15px;max-width:440px;margin-bottom:16px;}

/* PROOF BAND */
.proof-band{background:var(--bg-tint);padding:36px 48px;transition:background .2s;}
.proof-inner{
  max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;
  align-items:center;flex-wrap:wrap;gap:16px;
}
.proof-inner p{font-size:13px;letter-spacing:0.03em;color:var(--text);font-weight:500;}

/* MOSAIC categories */
.categories{max-width:1400px;margin:0 auto;padding:140px 48px 100px;}
.categories-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px;flex-wrap:wrap;gap:20px;}
.categories-head h2{font-size:34px;max-width:520px;}
.mosaic{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:130px;gap:14px;}
.tile{position:relative;overflow:hidden;display:flex;align-items:flex-end;}
.tile-label{
  background:var(--bg);padding:10px 16px;font-size:14px;font-weight:600;
  font-family:'Bricolage Grotesque',sans-serif;width:100%;position:relative;z-index:2;
}
.t1{grid-column:1/4;grid-row:1/4;}
.t2{grid-column:4/7;grid-row:1/3;}
.t3{grid-column:4/6;grid-row:3/6;}
.t4{grid-column:6/7;grid-row:3/6;}
.t5{grid-column:1/3;grid-row:4/6;}
.t6{grid-column:3/4;grid-row:4/6;}
.t7{grid-column:1/3;grid-row:6/8;}
.t8{grid-column:3/5;grid-row:6/8;}
.t9{grid-column:5/7;grid-row:6/8;}

/* ENTERTAINMENT CROSS-SELL */
.crosssell{
  max-width:1400px;margin:0 auto;padding:0 48px 140px;
  display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;
}
.crosssell-photo{height:340px;}
.crosssell-copy h3{font-size:26px;margin-bottom:16px;}
.crosssell-copy p{color:var(--text-soft);font-size:15px;margin-bottom:20px;max-width:420px;}

/* OUR WORK teaser */
.our-work{background:var(--bg-alt);padding:120px 48px;transition:background .2s;}
.our-work-inner{max-width:1400px;margin:0 auto;}
.our-work-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px;flex-wrap:wrap;gap:16px;}
.our-work-head h2{font-size:30px;}
.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.work-grid .photo-block{aspect-ratio:1/1;height:auto;}

/* FOLLOW */
.follow{max-width:1400px;margin:0 auto;padding:120px 48px 140px;}
.follow-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-wrap:wrap;gap:16px;}
.follow-head h2{font-size:28px;}
.follow-pills{display:flex;gap:10px;flex-wrap:wrap;}
.social-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border:1px solid var(--text);border-radius:20px;font-size:13px;font-weight:500;}
.social-pill:hover{background:var(--text);color:var(--bg);}
.follow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.follow-grid .photo-block{aspect-ratio:1/1;height:auto;}

/* FAQ */
.faq{max-width:1400px;margin:0 auto;padding:0 48px 140px;}
.faq-head{margin-bottom:40px;}
.faq-head h2{font-size:30px;margin-top:10px;}
.faq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.faq-item{background:var(--bg-alt);padding:24px;border:1px solid var(--border);transition:background .2s;}
.faq-item h4{font-size:15px;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;margin-bottom:8px;}
.faq-item p{font-size:13px;color:var(--text-soft);}

/* QUOTE CTA BAND — fixed accent color, same in both themes */
.quote-band{background:var(--accent);padding:100px 48px;text-align:center;}
.quote-band h2{color:var(--on-accent);font-size:32px;max-width:560px;margin:0 auto 18px;}
.quote-band p{color:var(--on-accent);font-size:15px;margin-bottom:28px;}
.quote-band .btn-primary{background:var(--on-accent);color:var(--on-accent-invert);}

/* FOOTER */
.site-footer{padding:56px 48px 40px;max-width:1400px;margin:0 auto;}
.footer-grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;
  padding-bottom:32px;border-bottom:1px solid var(--border);
}
.footer-grid h4{font-size:13px;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-soft);margin-bottom:14px;font-weight:600;}
.footer-grid p, .footer-grid a{font-size:14px;color:var(--text-soft);display:block;margin-bottom:8px;}
.footer-grid ul{list-style:none;}
.footer-bottom{padding-top:24px;font-size:12px;color:var(--text-soft);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}

/* Empty-state note for unpopulated content, visible only to logged-in editors */
.bef-editor-note{
  display:none;
}
.logged-in .bef-editor-note{
  display:block;
  font-size:11px;
  color:var(--text-soft);
  background:var(--bg-tint);
  padding:6px 10px;
  margin-top:8px;
}
.bef-empty-state{
  color:var(--text-soft);
  font-size:14px;
  padding:24px;
  border:1px dashed var(--border);
  max-width:1400px;
  margin:0 auto;
}

/* RENTALS HUB */
.rentals-hero{max-width:900px;margin:0 auto;padding:100px 48px 60px;text-align:center;}
.rentals-hero h1{font-size:40px;margin:14px 0 18px;}
.rentals-hero p{color:var(--text-soft);font-size:16px;}
.rentals-grid-wrap{max-width:1400px;margin:0 auto;padding:0 48px 140px;}
.rentals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.rental-card{display:block;border:1px solid var(--border);transition:border-color .2s;}
.rental-card-photo{height:220px;}
.rental-card-body{padding:20px 22px;}
.rental-card-body h3{font-size:18px;margin-bottom:8px;}
.rental-card-body p{font-size:13px;color:var(--text-soft);margin-bottom:12px;}
.rental-card-body .view{font-size:13px;font-weight:500;border-bottom:1px solid var(--text);}

/* CATEGORY DETAIL */
.category-hero{position:relative;max-width:1400px;margin:0 auto;padding:0 48px 60px;}
.category-hero-photo{height:480px;}
.category-hero-text{
  background:var(--bg);border:1px solid var(--border);max-width:480px;padding:36px;
  position:relative;margin-top:-100px;margin-left:6%;box-shadow:var(--card-shadow);
}
.category-hero-text h1{font-size:32px;margin-top:12px;}
.category-body{max-width:760px;margin:0 auto;padding:0 48px 100px;}
.category-content p{color:var(--text-soft);font-size:15px;margin-bottom:16px;}
.category-content h2,.category-content h3{margin:32px 0 12px;}
.category-content .wp-block-gallery{margin:24px 0;}
.related-categories{max-width:1400px;margin:0 auto;padding:0 48px 140px;}
.related-categories h2{font-size:26px;margin-bottom:28px;}
.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.related-card{display:block;}
.related-card-photo{height:150px;margin-bottom:10px;}
.related-card span{font-size:14px;font-weight:500;}

@media (max-width: 900px){
  .rentals-grid{grid-template-columns:1fr;}
  .related-grid{grid-template-columns:repeat(2,1fr);}
  .category-hero-text{margin-left:5%;margin-top:-60px;max-width:90%;}
}

/* SIMPLE PAGES (Entertainment, About, Our Work, FAQ, Request a Quote, Contact) */
.entertainment-list{max-width:900px;margin:0 auto;padding:0 48px 100px;}
.entertainment-list ul{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.entertainment-list li{padding:16px 20px;background:var(--bg-alt);border:1px solid var(--border);font-size:15px;}

.our-work-full{max-width:1400px;margin:0 auto;padding:0 48px 60px;}
.our-work-full .work-grid{grid-template-columns:repeat(4,1fr);}
.pagination{display:flex;justify-content:center;gap:10px;padding:0 48px 140px;flex-wrap:wrap;}
.pagination a,.pagination span{
  display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;
  border:1px solid var(--border);font-size:13px;color:var(--text-soft);
}
.pagination .current{background:var(--text);color:var(--bg);border-color:var(--text);}

.faq-accordion{max-width:800px;margin:0 auto;padding:0 48px 140px;}
.faq-accordion-item{border:1px solid var(--border);margin-bottom:12px;background:var(--bg);}
.faq-accordion-item summary{
  padding:18px 22px;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:15px;
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;
}
.faq-accordion-item summary::-webkit-details-marker{display:none;}
.faq-accordion-item summary::after{content:"+";font-size:18px;color:var(--text-soft);}
.faq-accordion-item[open] summary::after{content:"\2212";}
.faq-accordion-item .faq-answer{padding:0 22px 20px;color:var(--text-soft);font-size:14px;}

.bef-form-fallback{
  max-width:600px;margin:0 auto;padding:32px;background:var(--bg-alt);border:1px solid var(--border);text-align:center;
}
.bef-form-fallback a{font-weight:600;color:var(--text);}

.contact-wrap{max-width:1200px;margin:0 auto;padding:0 48px 140px;display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.contact-info p{font-size:15px;color:var(--text-soft);margin-bottom:14px;}
.contact-info h3{margin-bottom:16px;}
.map-embed{border:1px solid var(--border);height:320px;overflow:hidden;}
.map-embed iframe{width:100%;height:100%;border:0;display:block;}

@media (max-width: 900px){
  .entertainment-list ul{grid-template-columns:1fr;}
  .our-work-full .work-grid{grid-template-columns:repeat(2,1fr);}
  .contact-wrap{grid-template-columns:1fr;}
}

@media (max-width: 900px){
  .hero-text-card{margin-left:5%;margin-top:-80px;max-width:90%;}
  .hero-photo{width:100%;}
  .intro{grid-template-columns:1fr;}
  .mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px;}
  .t1,.t2,.t3,.t4,.t5,.t6,.t7,.t8,.t9{grid-column:auto;grid-row:auto;}
  .crosssell{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .work-grid{grid-template-columns:repeat(2,1fr);}
  .follow-grid{grid-template-columns:repeat(2,1fr);}
  .faq-grid{grid-template-columns:1fr;}
  .site-header,.hero,.intro,.categories,.crosssell,.follow,.faq,.site-footer{padding-left:24px;padding-right:24px;}
}
