/* Bosavista - supplemental styles for interior pages (built on the site's own
   Bootstrap + style.css; homepage/header/footer use the original styles only). */

/* Interior pages: keep the navbar in normal flow (the template positions it
   absolutely to overlay the homepage carousel, which has no counterpart here),
   and give it a solid background so the white links/logo stay visible.
   Excludes the scrolled `.sticky-top` state so sticky-on-scroll still works. */
body.bosa-interior .navbar-dark:not(.sticky-top) { background: #091E3E; }
@media (min-width: 992px) {
	body.bosa-interior .navbar-dark:not(.sticky-top) { position: relative; }
}

/* Interior page banner */
.page-banner { background: #091E3E; color: #fff; padding: 60px 0; }
.page-banner h1 { color: #fff; margin: 0; }
.page-banner .breadcrumb-line { color: rgba(255,255,255,.6); margin-bottom: .5rem; }
.page-banner .breadcrumb-line a { color: #06A3DA; text-decoration: none; }
.page-banner p { color: rgba(255,255,255,.82); margin: .6rem 0 0; max-width: 720px; }

/* Contact info blocks */
.contact-info-item { display: flex; gap: 1rem; align-items: flex-start; background: #EEF9FF; padding: 1.1rem 1.2rem; border-radius: 8px; margin-bottom: 1rem; }
.contact-info-item i { color: #06A3DA; font-size: 1.2rem; margin-top: .2rem; }
.contact-info-item strong { display: block; color: #091E3E; }
.contact-map iframe { width: 100%; height: 320px; border: 0; border-radius: 8px; }

/* Service single */
.service-aside { position: sticky; top: 90px; }
.aside-card { background: #EEF9FF; border-radius: 8px; padding: 1.5rem; margin-bottom: 1.5rem; }
.aside-card .btn { width: 100%; }
.aside-list { list-style: none; padding: 0; margin: 0; }
.aside-list li { border-bottom: 1px solid #dbeaf4; }
.aside-list li:last-child { border-bottom: 0; }
.aside-list a { display: flex; justify-content: space-between; align-items: center; padding: .6rem 0; color: #091E3E; text-decoration: none; font-weight: 600; }
.aside-list a:hover { color: #06A3DA; }

/* Long-form service content spacing */
.service-content h2 { margin-top: 1.6rem; }
.service-content ul { margin-bottom: 1.2rem; }

/* Entry content */
.entry-content img { border-radius: 8px; height: auto; }

/* Book Us popup (magnific) - centered white card, not full-width */
.white-popup {
	position: relative;
	background: #fff;
	padding: 40px 50px;
	max-width: 700px;
	width: 100%;
	margin: 25px auto;
	border-radius: 10px;
	box-shadow: 0 30px 70px -30px rgba(9,30,62,.5);
}
@media (max-width: 576px) { .white-popup { padding: 26px 20px; } }
.mfp-bg { background: #091E3E; opacity: .7; }

/* Service area cards */
.area-card { transition: transform .25s ease, box-shadow .25s ease; box-shadow: 0 10px 30px -22px rgba(9,30,62,.4); }
.area-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -22px rgba(9,30,62,.5); }
.area-card .h5 { transition: color .2s ease; }
.area-card:hover .h5, .area-card:hover h4 { color: #06A3DA !important; }

/* Smooth-scroll offset so sticky navbar doesn't cover section headings */
html { scroll-behavior: smooth; }
#about, #service, #service-areas, #help-guide, #testimonial { scroll-margin-top: 90px; }

/* ---------- Comments ---------- */
.comments-area { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #e6edf3; }
.comments-title, .comment-reply-title { font-family: "Nunito", sans-serif; font-weight: 800; color: #091E3E; font-size: 1.5rem; margin-bottom: 1.5rem; }

.comment-list { list-style: none; margin: 0 0 2.5rem; padding: 0; }
.comment-list ol.children { list-style: none; margin: 1rem 0 0 1.5rem; padding-left: 1.5rem; border-left: 2px solid #e6edf3; }
.comment-body { background: #f7fbfe; border: 1px solid #e6edf3; border-radius: 12px; padding: 1.25rem 1.5rem; margin-bottom: 1.25rem; position: relative; }
.comment-author { display: flex; align-items: center; gap: .75rem; margin-bottom: .5rem; }
.comment-author .avatar { border-radius: 50%; width: 48px; height: 48px; }
.comment-author .fn { font-family: "Nunito", sans-serif; font-weight: 700; color: #091E3E; font-style: normal; }
.comment-metadata { font-size: .82rem; margin-bottom: .5rem; }
.comment-metadata a { color: #6b7280; text-decoration: none; }
.comment-content { color: #4b5563; }
.comment-content p:last-child { margin-bottom: 0; }
.reply a, .comment-reply-link { display: inline-block; margin-top: .5rem; font-family: "Nunito", sans-serif; font-weight: 700; font-size: .82rem; color: #06A3DA; text-decoration: none; }
.reply a:hover { color: #058fbf; }

/* Comment form */
.comment-form { background: #ffffff; border: 1px solid #e6edf3; border-radius: 14px; padding: clamp(1.5rem, 3vw, 2.25rem); box-shadow: 0 20px 45px -30px rgba(9,30,62,.35); }
.comment-form { display: grid; gap: 1rem; }
.comment-notes, .logged-in-as { grid-column: 1 / -1; color: #6b7280; font-size: .92rem; margin: 0; }
.comment-form-author, .comment-form-email { display: inline-block; }
@media (min-width: 620px) {
	.comment-form { grid-template-columns: 1fr 1fr; }
	.comment-form-comment, .comment-form-url, .comment-notes, .logged-in-as, .form-submit, .comment-form-cookies-consent { grid-column: 1 / -1; }
}
.comment-form label { display: block; font-family: "Nunito", sans-serif; font-weight: 700; font-size: .85rem; color: #091E3E; margin-bottom: .4rem; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	padding: .85rem 1rem;
	border: 1px solid #dbe6ef;
	border-radius: 10px;
	background: #f7fbfe;
	font-family: "Rubik", sans-serif;
	font-size: .95rem;
	color: #374151;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.comment-form textarea { min-height: 150px; resize: vertical; }
.comment-form input:focus,
.comment-form textarea:focus {
	outline: none;
	border-color: #06A3DA;
	background: #fff;
	box-shadow: 0 0 0 3px rgba(6,163,218,.15);
}
.comment-form input::placeholder, .comment-form textarea::placeholder { color: #9aa6b2; }
.comment-form-cookies-consent { display: flex; align-items: center; gap: .5rem; font-size: .9rem; color: #6b7280; }
.comment-form-cookies-consent input { width: auto; margin: 0; }
.comment-form .form-submit { margin: 0; }
.comment-form .submit {
	background: #06A3DA;
	color: #fff;
	border: 0;
	border-radius: 50px;
	padding: .85rem 2.2rem;
	font-family: "Nunito", sans-serif;
	font-weight: 700;
	font-size: .95rem;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}
.comment-form .submit:hover { background: #058fbf; transform: translateY(-2px); }
.comment-respond { margin-top: 1rem; }
