/* Claudestrap theme styles. Colors, fonts and sizes come from CSS variables printed in the head. */

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
a { text-underline-offset: .2em; }

/* ---------- Header ---------- */
.cst-site-header { z-index: 1030; transition: box-shadow .2s; }
.admin-bar .cst-site-header.sticky-top { top: 32px; }
@media (max-width: 782px) { .admin-bar .cst-site-header.sticky-top { top: 46px; } }
@media (max-width: 600px) { .admin-bar .cst-site-header.sticky-top { top: 0; } }
.cst-header-light { background: var(--bs-body-bg); border-bottom: 1px solid var(--bs-border-color); }
.cst-header-glass { background: rgba(var(--bs-body-bg-rgb), .78); -webkit-backdrop-filter: saturate(180%) blur(14px); backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid var(--bs-border-color); }
.cst-header-light .navbar, .cst-header-glass .navbar {
	--bs-navbar-color: var(--bs-body-color);
	--bs-navbar-hover-color: var(--bs-primary);
	--bs-navbar-active-color: var(--bs-primary);
	--bs-navbar-brand-color: var(--bs-heading-color);
	--bs-navbar-brand-hover-color: var(--bs-heading-color);
}
.cst-header-primary .navbar {
	--bs-navbar-color: var(--cst-on-primary);
	--bs-navbar-hover-color: var(--cst-on-primary);
	--bs-navbar-active-color: var(--cst-on-primary);
	--bs-navbar-brand-color: var(--cst-on-primary);
	--bs-navbar-brand-hover-color: var(--cst-on-primary);
}
.cst-header-primary .nav-link { opacity: .85; }
.cst-header-primary .nav-link:hover, .cst-header-primary .nav-link.active { opacity: 1; }
.cst-site-header .nav-link { font-weight: 500; }
.cst-site-header .navbar-brand { font-family: var(--cst-heading-font); }
.cst-logo { height: var(--cst-logo-height); width: auto; }
.cst-site-header .dropdown-menu { border-radius: var(--bs-border-radius); box-shadow: 0 .75rem 2rem rgba(0,0,0,.08); }

/* ---------- Footer ---------- */
.cst-site-footer a { color: var(--bs-body-color); text-decoration: none; }
.cst-site-footer a:hover { color: var(--bs-heading-color); }
.cst-site-footer .nav-link { color: var(--bs-body-color); }
.cst-social .list-inline-item:not(:last-child) { margin-right: .9rem; }

/* ---------- Sections ---------- */
.cst-section { position: relative; }
.cst-pad-none { padding: 0; }
.cst-pad-sm { padding: calc(var(--cst-section-y) * .5) 0; }
.cst-pad-md { padding: calc(var(--cst-section-y) * .7) 0; }
.cst-pad-lg { padding: calc(var(--cst-section-y) * 1) 0; }
@media (min-width: 992px) {
	.cst-pad-md { padding: var(--cst-section-y) 0; }
	.cst-pad-lg { padding: calc(var(--cst-section-y) * 1.5) 0; }
}
.cst-bg-image { background: var(--cst-bg-image) center / cover no-repeat; isolation: isolate; }
.cst-bg-image::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, var(--cst-overlay, .55)); z-index: -1; }

.cst-eyebrow { font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--bs-primary); margin-bottom: .75rem; }
.cst-bg-dark .cst-eyebrow, .cst-bg-primary .cst-eyebrow, .cst-bg-image .cst-eyebrow, .cst-bg-accent .cst-eyebrow { color: inherit; opacity: .85; }
.cst-heading { max-width: 760px; }
.text-center .cst-heading { margin-left: auto; margin-right: auto; }
.cst-rich > :last-child { margin-bottom: 0; }
.cst-intro { color: var(--bs-secondary-color); }
.cst-bg-dark .cst-intro, .cst-bg-primary .cst-intro, .cst-bg-image .cst-intro { color: inherit; }

/* Hero */
.cst-hero-tall { min-height: 70vh; display: flex; align-items: center; }
.cst-hero-screen { min-height: calc(100vh - 80px); display: flex; align-items: center; }
.cst-hero-tall > .container, .cst-hero-screen > .container { width: 100%; }
.cst-hero-text { max-width: 720px; }
.text-center .cst-hero-text { margin-left: auto; margin-right: auto; }
.cst-hero-media img, .cst-hero-media .cst-img-placeholder { border-radius: var(--bs-border-radius-xl); box-shadow: 0 1.5rem 3rem rgba(0,0,0,.12); }

/* Features */
.cst-feature-icon { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; border-radius: var(--bs-border-radius-lg); background: rgba(var(--bs-primary-rgb), .1); color: var(--bs-primary); font-size: 1.5rem; margin-bottom: 1rem; }
.cst-bg-dark .cst-feature-icon, .cst-bg-primary .cst-feature-icon, .cst-bg-image .cst-feature-icon { background: rgba(255,255,255,.12); color: inherit; }
.cst-feature-card { height: 100%; padding: 2rem; border-radius: var(--bs-border-radius-lg); background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); transition: transform .2s, box-shadow .2s; }
.cst-bg-light .cst-feature-card { border-color: transparent; }
.cst-bg-dark .cst-feature-card, .cst-bg-primary .cst-feature-card, .cst-bg-image .cst-feature-card { background: rgba(255,255,255,.06); }
.cst-feature-card:hover { transform: translateY(-3px); box-shadow: 0 1rem 2rem rgba(0,0,0,.07); }

/* Cards */
.cst-card { height: 100%; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); overflow: hidden; background: var(--bs-body-bg); }
.cst-card .card-img-top { aspect-ratio: 16 / 10; object-fit: cover; }

/* Testimonials */
.cst-quote { height: 100%; padding: 2rem; border-radius: var(--bs-border-radius-lg); background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); text-align: left; }
.cst-quote .bi-quote { font-size: 2rem; color: var(--bs-primary); line-height: 1; }
.cst-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }

/* Pricing */
.cst-plan { height: 100%; padding: 2rem; border-radius: var(--bs-border-radius-lg); background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); text-align: left; display: flex; flex-direction: column; }
.cst-plan.is-featured { border: 2px solid var(--bs-primary); box-shadow: 0 1.5rem 3rem rgba(var(--bs-primary-rgb), .15); }
.cst-plan-price { font-family: var(--cst-heading-font); font-size: 2.75rem; font-weight: 700; color: var(--bs-heading-color); line-height: 1; }
.cst-plan ul li { padding: .35rem 0; }
.cst-plan ul .bi { color: var(--bs-primary); margin-right: .5rem; }

/* FAQ */
.cst-section-faq .accordion { max-width: 820px; margin: 0 auto; text-align: left; }
.cst-section-faq .accordion-button { font-weight: 600; font-family: var(--cst-heading-font); }

/* Stats */
.cst-stat-number { font-family: var(--cst-heading-font); font-size: clamp(2.25rem, 1.5rem + 2vw, 3.5rem); font-weight: 800; line-height: 1; color: var(--bs-heading-color); }

/* Gallery, logos, team */
.cst-gallery-item img, .cst-gallery-item .cst-img-placeholder { border-radius: var(--bs-border-radius); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.cst-logo-item img { max-height: 48px; width: auto; filter: grayscale(1); opacity: .7; transition: .2s; }
.cst-logo-item img:hover { filter: none; opacity: 1; }
.cst-team-photo { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--bs-border-radius-lg); }

/* Contact */
.cst-contact-list li { display: flex; gap: .75rem; margin-bottom: 1rem; }
.cst-contact-list .bi { color: var(--bs-primary); font-size: 1.25rem; }
.cst-contact-form { padding: 2rem; border-radius: var(--bs-border-radius-lg); background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); text-align: left; }
.cst-hp { position: absolute !important; left: -9999px !important; }

/* Text width */
.cst-width-narrow { max-width: 760px; }
.cst-width-normal { max-width: 960px; }
.cst-width-narrow, .cst-width-normal { margin-left: auto; margin-right: auto; }

/* Images inside sections */
.cst-media img { border-radius: var(--bs-border-radius-lg); }

/* ---------- Blog content ---------- */
.cst-prose { font-size: calc(var(--bs-body-font-size) * 1.05); }
.cst-prose img, .cst-prose figure { border-radius: var(--bs-border-radius); }
.cst-prose figure { margin: 2rem 0; }
.cst-prose figcaption { font-size: .875rem; color: var(--bs-secondary-color); margin-top: .5rem; text-align: center; }
.cst-prose blockquote { border-left: 4px solid var(--bs-primary); padding: .5rem 0 .5rem 1.25rem; margin: 2rem 0; font-size: 1.15em; font-style: italic; }
.cst-prose h2, .cst-prose h3, .cst-prose h4 { margin-top: 2.25rem; margin-bottom: 1rem; }
.cst-prose table { width: 100%; margin-bottom: 1.5rem; border-collapse: collapse; }
.cst-prose th, .cst-prose td { border: 1px solid var(--bs-border-color); padding: .5rem .75rem; }
.cst-prose pre { background: var(--cst-light-bg); padding: 1rem; border-radius: var(--bs-border-radius); }
.cst-prose .wp-block-button__link { background: var(--bs-primary); color: var(--cst-on-primary); border-radius: var(--bs-border-radius); padding: .6rem 1.35rem; text-decoration: none; }
.alignwide { margin-left: -6vw; margin-right: -6vw; max-width: calc(100% + 12vw); }
.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: 100vw; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin: .3rem 1.5rem 1rem 0; }
.alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
.wp-caption-text, .gallery-caption { font-size: .875rem; color: var(--bs-secondary-color); }
.sticky, .bypostauthor { display: block; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
.cst-comment-list .children { list-style: none; padding-left: 1.5rem; }
.cst-comment-list .comment-body { padding: 1rem 0; border-bottom: 1px solid var(--bs-border-color); }
.cst-comment-list .avatar { border-radius: 50%; margin-right: .5rem; }
.cst-post-card .card-img-top { aspect-ratio: 16 / 10; object-fit: cover; }
