/*
Theme Name: Black Cap
Theme URI: http://localhost/black-cap-wp
Author: Black Cap
Description: Premium private transportation theme for Black Cap, built with ACF Blocks. Converted from the original static HTML/CSS mockups.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: black-cap
*/

/* Base reset shared by every page. Per-page look lives in assets/css/<page>.css,
   enqueued by the block/template that needs it. */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
img { max-width: 100%; }
a { text-decoration: none; color: inherit; }
.wp-block-image { overflow: hidden; }
.wpcf7 form .wpcf7-response-output:empty { display: none}

/* Keep the WP admin bar from covering the fixed header while logged in. */
body.admin-bar header#header { top: 32px; }
@media (max-width: 782px) { body.admin-bar header#header { top: 46px; } }

/* ─── Contact Form 7 — fit into the dark theme / existing field styles ─── */
.wpcf7 .wpcf7-form-control-wrap { display: block; width: 100%; }
.wpcf7 form.wpcf7-form { display: block; }
.wpcf7 .wpcf7-not-valid-tip { color: #ff6b6b; font-size: 12px; margin-top: 6px; }
.wpcf7 .wpcf7-response-output {
	margin: 20px 0 0; padding: 14px 18px; border: 1px solid rgba(200,169,107,0.35);
	color: #e2e2e2; font-size: 13px; line-height: 1.6; border-radius: 2px; background: rgba(200,169,107,0.06);
}
.wpcf7 .wpcf7-not-valid { border-color: #ff6b6b !important; }
.wpcf7 .wpcf7-spinner { margin: 0 0 0 12px; }

/* ─── Menu (wp_nav_menu) — strip list chrome; page CSS styles the anchors ─── */
.mobile-menu-links,
.mobile-menu ul { list-style: none; margin: 0; padding: 0; }

/* ─── Footer widget areas ─── */
.footer-widget { margin: 0; }
.footer-widget-title {
	font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
	color: #c4c7c7; margin-bottom: 14px;
}
.vehicle-loader {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 40px 0;
}

.vehicle-loader img {
    width: 60px;
    height: 60px;
    object-fit: contain;
}

.page-template-template-services .services-section {
	margin-top: 64px;
}

.single-service .hero-content {
	top: -100px;
}

/*#booking {
    scroll-margin-top: 40px;
}*/

.booking-section {
    padding-top: 140px !important;
}

.cf7mls_next.is-disabled,
.cf7mls_next:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

table.trip-summary th {
    text-align: left !important;
    font-weight: bold !important;
    color: var(--gold) !important;
}

table.trip-summary {
	margin-bottom: 20px;
}

table.trip-summary tr th,table.trip-summary tr td{
	padding: 5px 8px;
}

table.trip-summary .summary_img {
	margin-top: 20px;
}

.booking-summary h3 {
    margin-bottom: 20px;
}

.trip-summary tr {
	margin-bottom: 20px;
}

span.wpcf7-form-control.wpcf7-acceptance span {
	margin-left: 0px;
}

.booking-disclaimer {
	margin-top: 10px;
	margin-bottom: 20px;
}

.booking-disclaimer p {
    margin-bottom: 10px;
}

.booking-disclaimer a {
	color: var(--gold);
	text-decoration: underline;
}

.btn-primary.is-disabled, button.btn-primary.is-disabled {
	opacity: 0.5;
	cursor: not-allowed !important;
}
.fleet-grid .card-actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 8px;
}

.fleet-grid .booking-coming-soon {
	margin: 0;
	text-align: center;
}

/* Links list (Navigation / Custom Menu widget) laid out like the original footer links. */
.footer-links .menu,
.footer-links .wp-block-navigation__container,
.footer-links ul {
	display: flex; flex-wrap: wrap; gap: 12px 32px; list-style: none; margin: 0; padding: 0;
}
.footer-links .footer-widget { width: 100%; margin-top: 15px; }
/* Match the brand block styling when supplied via a widget. */
.footer-brand .footer-widget .logo img { height: 50px; width: auto; display: block; }
.footer-bottom .footer-widget { display: inline; }
.footer-bottom p { margin: 0; }

.page-template-template-contact main { padding-top: 0px; padding-bottom: 0px; }
.vehicle-sub { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; }

/* Form panel */
.form-panel { background: var(--surface); border: 1px solid var(--outline-variant); padding: 44px; position: relative; overflow: hidden; }

ul.wp-block-list { margin-left: 20px; margin-top: 10px; }
.single-service  main { padding-top:80px; padding-bottom:40px; }
.page-template-default .services-section .section-inner a { text-decoration: underline; }
.page-template-default .services-section .section-inner a:hover { color: var(--gold); }
.page-template-default .services-section .section-inner p { margin-bottom:15px; }
.page-template-default .services-section .section-inner p, .page-template-default .services-section .section-inner img { margin-top:10px; margin-bottom:10px; }
.hero-tag::before { margin-bottom: 1px !important; } 


/* Service Embeded Form */
.service-form-html iframe {
    background: #fff;
}

@media (max-width: 1024px) {
	.nav-inner {
		padding: 0 20px !important;
	}
	.single-service .hero-content {
		top: -50px;
	}

	.footer-inner {
		padding: 20px !important;
	}
	.footer-top {
		margin-top: 40px;
	}

	.footer-links .menu, .footer-links .wp-block-navigation__container, .footer-links ul {
		gap: 12px 31px !important;
	}

}

@media (max-width: 961px) {

    .booking-grid {
        gap: 10px !important;
    }

}

@media (max-width: 600px) {
	.form-panel {
		padding: 28px 20px;
	}
}

.bk-split .form-panel::before { content: "";position: absolute;top: 0;left: 0;width: 3px;height: 100%;background: var(--gold); }
.bk-split .form-group { margin-bottom: 28px; }
.bk-split .form-row { display: grid; grid-template-columns: 1fr; gap: 20px; }

@media (min-width: 500px) {
	.bk-split .form-row.cols-2 {
		grid-template-columns: 1fr 1fr;
	}

	.bk-split .form-row.cols-4 {
		grid-template-columns: 1fr 1fr;
	}
}

@media (min-width: 768px) and (max-width: 991px) {
    .bk-imgwrap {
        padding: 0px !important;
    }
}

@media (min-width: 900px) {
	.bk-split .form-row.cols-4 {
		grid-template-columns: repeat(4, 1fr);
	}
}

.bk-split .field {display: flex;flex-direction: column;min-width: 0; }
.bk-split .field label { font-size: 10px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #fff; margin-bottom: 8px; }
.bk-split .field input,
.bk-split .field select {
	background: #1e1e1e;
	border: none;
	border-bottom: 1px solid #444;
	color: var(--text-primary);
	font-family: var(--font-body);
	font-size: 14px;
	padding: 10px 10px;
	width: 100%;
	box-sizing: border-box;
	transition: border-color 0.25s;
	appearance: none;
	-webkit-appearance: none;
	border-radius: 0;
}

.wpcf7-form input:-webkit-autofill,
.wpcf7-form textarea:-webkit-autofill,
.wpcf7-form select:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #1e1e1e inset !important;
    -webkit-text-fill-color: #fff !important;
}

button.vehicle-filter {
    background: var(--gold);
    color: #111;
    border-color: var(--gold);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: transparent;
    color: var(--text-secondary);
    border: 1px solid var(--border);
    padding: 8px 18px;
    margin-top: 10px;
    cursor: pointer;
    transition: all 0.2s;
}

button.vehicle-filter.active {
	background: var(--gold);
	color: #111;
}

.bk-split.fullwidth-bookingform { width:100%;grid-template-columns: 1fr; }

.bk-split .field input::placeholder { color: rgba(196, 199, 199, 0.35); }
.bk-split .field input:focus,
.bk-split .field select:focus { outline: none; border-bottom-color: var(--gold); }
.bk-split .field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat;
	background-position: right 4px center; padding-right: 24px; }
.bk-split .field select option { background: #222; }

/* Vehicle selector */
.vehicle-section-label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: 16px;
	display: block;
}

.vehicle-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

  /* ─── BOOKING SECTION ─── */
.booking-section { padding: 64px 0; background: var(--surface-low); }
.booking-grid { display: grid; grid-template-columns: 1fr; gap: 60px; align-items: start; }
.booking-info h2 { font-family: var(--font-display); font-size: clamp(28px, 4vw, 36px); font-weight: 700; text-transform: uppercase; letter-spacing: -0.01em; color: var(--text-primary); margin-bottom: 18px; }
.wide { grid-column: span 2; }
.booking-info p { font-size: 15px; line-height: 1.8; color: var(--text-secondary);}
.contact-items { display: flex; flex-direction: column; }



@media (min-width: 960px) {
    .booking-grid {
        grid-template-columns: 5fr 7fr;
    }
    .mobile-none { display: none !important; }
}

@media (max-width: 960px) {
	.desktop-none { display: none !important; }
	.booking-grid {
        display: flex !important;
        flex-direction: column-reverse !important;
    }
    .width-full { width:100% !important; }
}
@media (max-width: 767px) {
    .wide {
        grid-column: span 1;
    }

    /*.booking-grid {
    	gap: 30px !important;
    }*/
}


.contact-item {display: flex; align-items: center; gap: 16px;padding: 15px 0;}
.contact-icon { width: 44px; height: 44px; border: 1px solid var(--gold-border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background 0.25s; }
.contact-item:hover .contact-icon { background: var(--gold-dim); }
.contact-icon .material-symbols-outlined{font-size:18px;color:var(--gold);font-variation-settings:"FILL" 0,"wght" 300,"GRAD" 0,"opsz" 22}
.contact-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:3px}
.contact-value{font-size:14px;font-weight:500;color:var(--text-primary)}
.form-panel{background:var(--surface);border:1px solid var(--outline-variant);padding:44px;position:relative;overflow:hidden}
a.form_phone_link { color: var(--gold); text-decoration: underline; }
table.trip-summary img { height: 100px; display: block; margin-bottom: 20px; }
table.trip-summary tbody { vertical-align: top; }


@media (max-width: 600px) {
    .form-panel {
       padding: 28px 20px;
    }
}

.form-panel:not(.content-grid .form-panel)::before { content: ""; position: absolute; top: 0; left: 0; width: 3px; height: 100%; background: var(--gold); }
.form-group { margin-bottom: 28px; }
.form-row { display: grid; grid-template-columns: 1fr; gap: 20px; }

@media (min-width: 500px) {
    .form-row.cols-2 {
       	grid-template-columns: 1fr 1fr;
    }
    .form-row.cols-4 {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 900px) {
    .form-row.cols-4 {
        grid-template-columns: repeat(4, 1fr);
    }
}

.field{display:flex;flex-direction:column;min-width:0}
.field label{display:block;margin-bottom:8px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.field input,.field select{background:#1e1e1e;border:0;border-bottom:1px solid #444;color:var(--text-primary);font:14px var(--font-body);padding:10px;width:100%;box-sizing:border-box;transition:border-color .25s;appearance:none;-webkit-appearance:none;border-radius:0}
.field input::placeholder { color: rgba(196, 199, 199, 0.35); }
.field input:focus, .field select:focus { outline: none; border-bottom-color: var(--gold); }
.field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 4px center; padding-right: 24px; }
.field select option { background: #222; }
.vehicle-section-label{display:block;margin-bottom:16px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.vehicle-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }

@media (min-width: 400px) {
    .vehicle-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.vehicle-option { cursor: pointer; }
.vehicle-option input[type="radio"] { display: none; }
.vehicle-box{background:var(--card-bg);border:1px solid var(--border);padding:14px 12px;transition:border-color .25s,filter .25s;filter:grayscale(.85)}
.vehicle-option input:checked+.vehicle-box{border-color:var(--gold);filter:grayscale(0)}
.vehicle-box:hover{filter:grayscale(0);border-color:var(--outline-variant)}
.vehicle-box img{width:100%;height:70px;object-fit:cover;display:block;margin-bottom:10px}
.vehicle-name{font-size:12px;font-weight:600;color:var(--text-primary);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vehicle-sub{font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}
.form-divider{border:0;border-top:1px solid var(--outline-variant);margin:8px 0 28px}
.btn-submit{width:100%;background:var(--gold);color:#111;border:0;padding:16px;font:700 12px var(--font-body);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:filter .2s,transform .15s,box-shadow .3s;margin-top:8px}
.btn-submit:hover { filter: brightness(1.1); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(200, 169, 107, 0.22); }

@media (min-width: 400px) {
	.vehicle-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 360px) {

	.hero-title {
		font-size: clamp(34px, 6vw, 56px) !important;
	}

	.booking-grid .btn-submit {
		font-size: 11px;
	}

}

.vehicle-option {
	cursor: pointer;
}

.vehicle-option input[type="radio"] {
	display: none;
}

.vehicle-box {
	background: var(--card-bg);
	border: 1px solid var(--border);
	padding: 14px 12px;
	transition:
		border-color 0.25s,
		filter 0.25s;
	filter: grayscale(0.85);
}

.vehicle-option input:checked+.vehicle-box {
	border-color: var(--gold);
	filter: grayscale(0);
}

.vehicle-box:hover {
	filter: grayscale(0);
	border-color: var(--outline-variant);
}

.vehicle-box img {
	width: 100%;
	height: 70px;
	object-fit: cover;
	display: block;
	margin-bottom: 10px;
}

.vehicle-name {
	font-size: 12px;
	font-weight: 600;
	color: var(--text-primary);
	margin-bottom: 3px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.vehicle-sub {
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text-muted);
}

/* Divider */
.form-divider {
	border: none;
	border-top: 1px solid var(--outline-variant);
	margin: 8px 0 28px;
}

/* Submit */
.btn-submit {
	width: 100%;
	background: var(--gold);
	color: #111;
	border: none;
	padding: 16px;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	cursor: pointer;
	transition:
		filter 0.2s,
		transform 0.15s,
		box-shadow 0.3s;
	margin-top: 8px;
}

.btn-submit:hover { filter: brightness(1.1); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(200, 169, 107, 0.22); }