/*
Theme Name: Boston Pool Loft
Theme URI: https://bostonpoolloft.example
Author: Boston Pool Loft
Description: American-style sports bar & pool hall WordPress theme. Video hero, games & drinks packages, peak/off-peak pricing, pool tournament leaderboard, gallery, FAQs, contact, terms and lost property.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: boston-pool-loft
Tags: sports-bar, restaurant, business, custom-colors, full-width-template
*/

:root{
  --bpl-bg:#0c0d10;
  --bpl-bg-2:#14161b;
  --bpl-card:#181b21;
  --bpl-line:#2a2e37;
  --bpl-text:#f3f1ec;
  --bpl-muted:#a8adb8;
  --bpl-red:#d7263d;
  --bpl-blue:#1d6fb8;
  --bpl-gold:#e8b53e;
  --bpl-green:#1f7a4d;
  --bpl-radius:6px;
  --bpl-max:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bpl-bg);color:var(--bpl-text);
  font-family:"Barlow","Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.65;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--bpl-gold);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4,.bpl-display{
  font-family:"Oswald","Arial Narrow",Impact,sans-serif;
  text-transform:uppercase;letter-spacing:.03em;line-height:1.08;margin:0 0 .5em;font-weight:600;
}
h1{font-size:clamp(2.2rem,6vw,4rem)}
h2{font-size:clamp(1.7rem,3.6vw,2.6rem)}
h3{font-size:1.25rem}
.bpl-wrap{max-width:var(--bpl-max);margin:0 auto;padding:0 20px}
.bpl-section{padding:70px 0}
.bpl-section--alt{background:var(--bpl-bg-2)}
.bpl-lede{color:var(--bpl-muted);max-width:70ch}
.bpl-center{text-align:center}
.bpl-center .bpl-lede{margin-left:auto;margin-right:auto}

/* Buttons */
.bpl-btn{
  display:inline-block;padding:13px 24px;border-radius:var(--bpl-radius);
  font-family:"Oswald","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:.08em;
  font-size:.95rem;background:var(--bpl-red);color:#fff;border:2px solid var(--bpl-red);
  transition:.18s ease;cursor:pointer;text-align:center
}
.bpl-btn:hover{background:#b41d31;border-color:#b41d31;text-decoration:none;color:#fff}
.bpl-btn--ghost{background:transparent;color:var(--bpl-text);border-color:var(--bpl-line)}
.bpl-btn--ghost:hover{background:#fff;color:#0c0d10;border-color:#fff}
.bpl-btn--gold{background:var(--bpl-gold);border-color:var(--bpl-gold);color:#1a1408}
.bpl-btn--gold:hover{background:#cf9f2c;border-color:#cf9f2c;color:#1a1408}

/* Header */
.bpl-header{position:sticky;top:0;z-index:50;background:rgba(12,13,16,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--bpl-line)}
.bpl-header__inner{display:flex;align-items:center;gap:20px;min-height:74px}
.bpl-brand{display:flex;align-items:center;gap:12px;color:var(--bpl-text)}
.bpl-brand:hover{text-decoration:none}
.bpl-brand__name{font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:1.15rem;letter-spacing:.06em;line-height:1.05}
.bpl-brand__name span{display:block;color:var(--bpl-red);font-size:.72rem;letter-spacing:.22em}
.bpl-nav{margin-left:auto}
.bpl-nav ul{display:flex;gap:20px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.bpl-nav a{color:var(--bpl-text);font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:.86rem;letter-spacing:.07em}
.bpl-nav a:hover,.bpl-nav .current-menu-item>a{color:var(--bpl-gold);text-decoration:none}
.bpl-header__cta{display:flex;gap:10px;align-items:center}
.bpl-toggle{display:none;background:none;border:1px solid var(--bpl-line);color:#fff;border-radius:4px;padding:8px 12px;font-size:1rem}
@media(max-width:1024px){
  .bpl-toggle{display:block;margin-left:auto}
  .bpl-nav{width:100%;margin:0;display:none;order:3;padding-bottom:16px}
  .bpl-nav.is-open{display:block}
  .bpl-nav ul{flex-direction:column;gap:12px}
  .bpl-header__inner{flex-wrap:wrap}
  .bpl-header__cta .bpl-btn{padding:10px 16px;font-size:.8rem}
}

/* Hero */
.bpl-hero{position:relative;min-height:82vh;display:flex;align-items:center;overflow:hidden;background:#000}
.bpl-hero__media,.bpl-hero__media iframe,.bpl-hero__media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.bpl-hero__media iframe{width:100vw;height:56.25vw;min-height:100%;min-width:177.77vh;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}
.bpl-hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,9,12,.55),rgba(8,9,12,.85))}
.bpl-hero__inner{position:relative;z-index:2;padding:100px 0;max-width:760px}
.bpl-kicker{display:inline-block;font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.28em;font-size:.78rem;color:var(--bpl-gold);border-left:3px solid var(--bpl-red);padding-left:10px;margin-bottom:18px}
.bpl-hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}

/* Page hero */
.bpl-pagehead{padding:70px 0 40px;border-bottom:1px solid var(--bpl-line);background:var(--bpl-bg-2)}

/* Grid & cards */
.bpl-grid{display:grid;gap:22px}
.bpl-grid--2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.bpl-grid--3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.bpl-grid--4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.bpl-card{background:var(--bpl-card);border:1px solid var(--bpl-line);border-radius:var(--bpl-radius);padding:26px;display:flex;flex-direction:column}
.bpl-card--featured{border-color:var(--bpl-gold);box-shadow:0 0 0 1px rgba(232,181,62,.25)}
.bpl-card__price{font-family:"Oswald",sans-serif;font-size:2.1rem;color:var(--bpl-gold);line-height:1;margin:6px 0 4px}
.bpl-card__meta{color:var(--bpl-muted);font-size:.9rem;margin-bottom:14px}
.bpl-card ul{padding-left:18px;margin:0 0 18px}
.bpl-card li{margin-bottom:6px}
.bpl-card .bpl-btn{margin-top:auto;align-self:flex-start}
.bpl-badge{display:inline-block;background:var(--bpl-red);color:#fff;font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;padding:4px 10px;border-radius:3px;margin-bottom:10px}
.bpl-badge--gold{background:var(--bpl-gold);color:#1a1408}

/* Tables */
.bpl-table-wrap{overflow-x:auto;border:1px solid var(--bpl-line);border-radius:var(--bpl-radius)}
table.bpl-table{width:100%;border-collapse:collapse;min-width:560px;background:var(--bpl-card)}
.bpl-table th,.bpl-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--bpl-line)}
.bpl-table th{font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;background:#1f232b;color:var(--bpl-muted)}
.bpl-table tbody tr:last-child td{border-bottom:0}
.bpl-table tbody tr:hover{background:#1e222a}
.bpl-price-peak{color:#fff;font-weight:600}
.bpl-price-off{color:var(--bpl-green);font-weight:600}
.bpl-rank{font-family:"Oswald",sans-serif;font-size:1.1rem;color:var(--bpl-muted);width:60px}
.bpl-rank--1{color:var(--bpl-gold)}
.bpl-rank--2{color:#c9ced8}
.bpl-rank--3{color:#c88a4a}

/* Gallery */
.bpl-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.bpl-gallery figure{margin:0;position:relative;overflow:hidden;border-radius:var(--bpl-radius);border:1px solid var(--bpl-line)}
.bpl-gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .4s ease}
.bpl-gallery figure:hover img{transform:scale(1.06)}
.bpl-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;background:linear-gradient(transparent,rgba(0,0,0,.85));font-size:.85rem}

/* FAQ */
.bpl-faq{border:1px solid var(--bpl-line);border-radius:var(--bpl-radius);background:var(--bpl-card);margin-bottom:12px;overflow:hidden}
.bpl-faq summary{cursor:pointer;padding:18px 20px;font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:1rem;list-style:none;display:flex;justify-content:space-between;gap:14px}
.bpl-faq summary::-webkit-details-marker{display:none}
.bpl-faq summary::after{content:"+";color:var(--bpl-red);font-size:1.4rem;line-height:1}
.bpl-faq[open] summary::after{content:"–"}
.bpl-faq__body{padding:0 20px 20px;color:var(--bpl-muted)}

/* Forms */
.bpl-form{display:grid;gap:16px;max-width:640px}
.bpl-form label{display:block;font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:.8rem;letter-spacing:.08em;margin-bottom:6px;color:var(--bpl-muted)}
.bpl-form input,.bpl-form textarea,.bpl-form select{
  width:100%;padding:12px 14px;background:#101318;border:1px solid var(--bpl-line);
  border-radius:var(--bpl-radius);color:var(--bpl-text);font:inherit
}
.bpl-form input:focus,.bpl-form textarea:focus,.bpl-form select:focus{outline:2px solid var(--bpl-blue);border-color:var(--bpl-blue)}
.bpl-notice{padding:14px 16px;border-radius:var(--bpl-radius);border:1px solid var(--bpl-green);background:rgba(31,122,77,.15);margin-bottom:20px}
.bpl-notice--error{border-color:var(--bpl-red);background:rgba(215,38,61,.15)}
.bpl-hp{position:absolute;left:-9999px}

/* Info strip */
.bpl-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--bpl-line);border-top:1px solid var(--bpl-line);border-bottom:1px solid var(--bpl-line)}
.bpl-strip>div{background:var(--bpl-bg);padding:22px 20px;text-align:center}
.bpl-strip strong{display:block;font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.1em;color:var(--bpl-gold);font-size:.85rem;margin-bottom:4px}

/* Prose / editor content */
.bpl-prose{max-width:78ch}
.bpl-prose h2{margin-top:1.6em}
.bpl-prose ul,.bpl-prose ol{padding-left:22px}
.bpl-prose blockquote{border-left:3px solid var(--bpl-red);margin:1.5em 0;padding-left:18px;color:var(--bpl-muted)}
.bpl-prose table{width:100%;border-collapse:collapse}
.bpl-prose td,.bpl-prose th{border:1px solid var(--bpl-line);padding:10px}

/* Footer */
.bpl-footer{background:#08090c;border-top:1px solid var(--bpl-line);padding:56px 0 26px;color:var(--bpl-muted);font-size:.95rem}
.bpl-footer h3{color:var(--bpl-text);font-size:1rem}
.bpl-footer a{color:var(--bpl-muted)}
.bpl-footer a:hover{color:var(--bpl-gold)}
.bpl-footer ul{list-style:none;margin:0;padding:0}
.bpl-footer li{margin-bottom:8px}
.bpl-footer__bottom{border-top:1px solid var(--bpl-line);margin-top:36px;padding-top:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.85rem}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.bpl-pagination{display:flex;gap:8px;margin-top:30px}
.bpl-pagination .page-numbers{padding:8px 14px;border:1px solid var(--bpl-line);border-radius:4px;color:var(--bpl-text)}
.bpl-pagination .current{background:var(--bpl-red);border-color:var(--bpl-red);color:#fff}
.alignwide{max-width:100%}
.wp-caption-text{color:var(--bpl-muted);font-size:.85rem}

/* Package booking Form */
.bpl-package-booking {
    width: 100%;
    max-width: 900px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.bpl-package-booking > h2 {
    text-align: center;
}

.bpl-package-booking__form {
    width: 100%;
    max-width: 700px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.bpl-package-booking__form form {
    width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
}
/* =========================================
   Contact Form 7 — Boston Pool Loft styling
   ========================================= */

.wpcf7 {
	margin: 0;
}

.wpcf7 form {
	width: 100%;
}

.wpcf7-form p {
	margin: 0 0 18px;
}

.wpcf7-form label {
	display: block;
	margin-bottom: 7px;
	font-size: 14px;
	font-weight: 600;
	color: var(--bpl-text, #222);
}

.wpcf7-form-control-wrap {
	display: block;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form select,
.wpcf7-form textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 13px 14px;
	border: 1px solid var(--bpl-line, #d8d8d8);
	border-radius: 6px;
	background: #fff;
	color: var(--bpl-text, #222);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

.wpcf7-form textarea {
	min-height: 150px;
	resize: vertical;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form input[type="url"]:focus,
.wpcf7-form input[type="number"]:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
	outline: none;
	border-color: var(--bpl-accent, #222);
	box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.06);
}

.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder {
	color: #999;
	opacity: 1;
}

/* Submit button */
.wpcf7-form input[type="submit"] {
	display: inline-block;
	padding: 13px 24px;
	border: 1px solid transparent;
	border-radius: 6px;
	background: var(--bpl-accent, #222);
	color: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
	transition:
		background 0.2s ease,
		transform 0.2s ease,
		opacity 0.2s ease;
}

.wpcf7-form input[type="submit"]:hover {
	opacity: 0.88;
}

.wpcf7-form input[type="submit"]:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.12);
}

.wpcf7-form input[type="submit"]:active {
	transform: translateY(1px);
}

/* Required field marker */
.wpcf7-form .required {
	color: #b42318;
}

/* Validation */
.wpcf7-not-valid {
	border-color: #b42318 !important;
}

.wpcf7-not-valid-tip {
	margin-top: 5px;
	color: #b42318;
	font-size: 13px;
}

.wpcf7-response-output {
	margin: 20px 0 0 !important;
	padding: 12px 14px !important;
	border-radius: 6px;
	font-size: 14px;
	line-height: 1.5;
}

/* Acceptance checkbox */
.wpcf7-form .wpcf7-acceptance {
	display: block;
}

.wpcf7-form .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
}

.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
	width: auto;
	margin-top: 4px;
	flex: 0 0 auto;
}

/* Two-column fields where CF7 markup uses .bpl-form-row */
.wpcf7-form .bpl-form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-bottom: 18px;
}

.wpcf7-form .bpl-form-row p {
	margin: 0;
}

/* Mobile */
@media (max-width: 700px) {
	.wpcf7-form .bpl-form-row {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.wpcf7-form input[type="submit"] {
		width: 100%;
	}
}
/* Contact Form 7 - Form input text */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="date"],
.wpcf7-form textarea,
.wpcf7-form select {
	color: #000 !important;
	background-color: #fff;
}

/* Placeholder text */
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder {
	color: #666 !important;
	opacity: 1;
}

/* Dropdown text */
.wpcf7-form select {
	color: #000 !important;
}

/* Keep validation text visible */
.wpcf7-form .wpcf7-not-valid-tip {
	color: #b42318;
}