/*
Theme Name: Búzios Foto & Vídeo
Description: Tema clássico recriando o site "Búzios Foto & Vídeo", originalmente feito no Hostinger Horizons.
Version: 1.0
Author: Você
*/

:root {
	--background: 40 33% 96%;
	--foreground: 24 16% 12%;
	--card: 40 33% 98%;
	--primary: 16 68% 41%;
	--primary-foreground: 40 40% 97%;
	--secondary: 36 28% 90%;
	--muted-foreground: 28 9% 40%;
	--border: 30 16% 82%;
}

* { box-sizing: border-box; }

body {
	margin: 0;
	font-family: "DM Sans", sans-serif;
	background-color: hsl(var(--background));
	color: hsl(var(--foreground));
	overflow-x: clip;
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }

.bfv-container {
	max-width: 1152px;
	margin: 0 auto;
	padding: 0 24px;
}

.font-display,
h1, h2, h3 { font-family: "Fraunces", serif; }

.bfv-accent { font-style: italic; color: hsl(var(--primary)); }

/* Buttons */
.bfv-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-radius: 3px;
	padding: 16px 28px;
	font-size: 14px;
	font-weight: 500;
	transition: all .2s ease;
	border: none;
	cursor: pointer;
}
.bfv-btn:active { transform: scale(0.98); }
.bfv-btn-primary { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.bfv-btn-primary:hover { filter: brightness(1.1); }
.bfv-btn-sm { padding: 10px 20px; }
.bfv-btn-dark { background: hsl(var(--foreground)); color: hsl(var(--background)); }
.bfv-btn-dark:hover { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.bfv-btn-outline { border: 1px solid hsla(var(--foreground) / .25); background: transparent; }
.bfv-btn-outline:hover { border-color: hsl(var(--foreground)); background: hsl(var(--secondary)); }
.bfv-btn-outline-light { border: 1px solid hsla(var(--background) / .25); color: hsl(var(--background)); background: transparent; }
.bfv-btn-outline-light:hover { border-color: hsl(var(--primary)); color: hsl(var(--primary)); }
.bfv-btn-submit { width: 100%; justify-content: center; }
@media (min-width: 640px) { .bfv-btn-submit { width: auto; } }

/* Header */
.bfv-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 50;
	border-bottom: 1px solid hsla(var(--border) / .6);
	background: hsla(var(--background) / .85);
	backdrop-filter: blur(8px);
}
.bfv-header-inner {
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.bfv-logo { font-family: "Fraunces", serif; font-style: italic; font-weight: 600; font-size: 20px; }
.bfv-logo-sm { font-size: 18px; }
.bfv-nav-desktop { display: none; align-items: center; gap: 32px; }
.bfv-nav-desktop a:not(.bfv-btn) { font-size: 14px; color: hsl(var(--muted-foreground)); }
.bfv-nav-desktop a:not(.bfv-btn):hover { color: hsl(var(--foreground)); }
.bfv-menu-toggle { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; color: hsl(var(--foreground)); }
.bfv-nav-mobile { display: none; flex-direction: column; gap: 4px; padding: 16px 24px; border-top: 1px solid hsla(var(--border) / .6); background: hsl(var(--background)); }
.bfv-nav-mobile.is-open { display: flex; }
.bfv-nav-mobile a { padding: 12px 8px; border-radius: 3px; }
.bfv-nav-mobile a:hover { background: hsl(var(--secondary)); }
.bfv-nav-mobile .bfv-btn { margin-top: 8px; justify-content: center; }

@media (min-width: 768px) {
	.bfv-nav-desktop { display: flex; }
	.bfv-menu-toggle { display: none; }
	.bfv-nav-mobile { display: none !important; }
}

/* Hero */
.bfv-hero { position: relative; min-height: 78dvh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: 100px 0 48px; }
.bfv-badge { margin-bottom: 32px; display: inline-flex; align-items: center; gap: 10px; border: 1px solid hsl(var(--border)); background: hsl(var(--card)); border-radius: 999px; padding: 8px 16px; width: fit-content; }
.bfv-dot { position: relative; width: 8px; height: 8px; border-radius: 50%; background: hsl(var(--primary)); display: inline-block; }
.bfv-dot::after { content: ''; position: absolute; inset: 0; border-radius: 50%; background: hsl(var(--primary)); opacity: .6; animation: bfv-ping 1.6s cubic-bezier(0,0,.2,1) infinite; }
.bfv-badge span:last-child { font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .18em; color: hsl(var(--muted-foreground)); }

.bfv-hero-title { font-size: 15vw; font-weight: 500; line-height: 0.98; letter-spacing: -0.02em; margin: 0 0 8px; }
@media (min-width: 640px) { .bfv-hero-title { font-size: 60px; } }
@media (min-width: 1024px) { .bfv-hero-title { font-size: 96px; } }

.bfv-hero-row { margin-top: 32px; display: flex; flex-direction: column; gap: 32px; }
.bfv-hero-text { max-width: 480px; font-size: 18px; line-height: 1.6; color: hsl(var(--muted-foreground)); margin: 0; }
.bfv-hero-actions { display: flex; flex-wrap: wrap; gap: 16px; }
@media (min-width: 768px) { .bfv-hero-row { flex-direction: row; align-items: flex-end; justify-content: space-between; } }

.bfv-hero-meta { margin-top: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid hsl(var(--border)); padding-top: 24px; font-size: 11px; text-transform: uppercase; letter-spacing: .2em; color: hsl(var(--muted-foreground)); flex-wrap: wrap; }
.bfv-hide-sm { display: none; }
@media (min-width: 640px) { .bfv-hide-sm { display: inline; } }

/* Marquee */
.bfv-marquee { overflow: hidden; border-top: 1px solid hsla(var(--foreground) / .1); border-bottom: 1px solid hsla(var(--foreground) / .1); background: hsl(var(--primary)); padding: 20px 0; color: hsl(var(--primary-foreground)); }
.bfv-marquee-track { display: flex; width: max-content; animation: bfv-marquee 30s linear infinite; }
.bfv-marquee-row { display: flex; align-items: center; flex-shrink: 0; }
.bfv-marquee-row span { white-space: nowrap; padding: 0 24px; font-family: "Fraunces", serif; font-style: italic; font-weight: 500; font-size: 24px; }
@media (min-width: 768px) { .bfv-marquee-row span { font-size: 30px; } }

/* Sections */
.bfv-section { padding: 96px 0; }
@media (min-width: 768px) { .bfv-section { padding: 128px 0; } }

.bfv-section-head { margin-bottom: 24px; display: flex; flex-direction: column; gap: 16px; }
@media (min-width: 768px) { .bfv-section-head { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.bfv-h2 { font-size: 40px; font-weight: 500; letter-spacing: -0.02em; margin: 0; }
@media (min-width: 768px) { .bfv-h2 { font-size: 56px; } }
.bfv-h3 { font-size: 28px; font-weight: 500; letter-spacing: -0.02em; margin: 8px 0 0; }
@media (min-width: 768px) { .bfv-h3 { font-size: 34px; } }
.bfv-eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .2em; color: hsl(var(--muted-foreground)); margin: 0; }
.bfv-eyebrow-light { color: hsla(var(--background) / .5); }
.bfv-lead { max-width: 640px; font-size: 18px; line-height: 1.6; color: hsl(var(--muted-foreground)); margin-bottom: 48px; }

.bfv-gallery-head { margin-bottom: 40px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.bfv-gallery-nav { display: flex; gap: 8px; }
.bfv-circle-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid hsl(var(--border)); background: transparent; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: all .2s ease; color: hsl(var(--foreground)); }
.bfv-circle-btn:hover { border-color: hsl(var(--primary)); background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }

/* Carousel */
.bfv-carousel { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: none; }
.bfv-carousel::-webkit-scrollbar { display: none; }
.bfv-card {
	flex: 0 0 100%; scroll-snap-align: start; display: block;
	background: none; border: none; padding: 0; margin: 0; text-align: left;
	font-family: inherit; color: inherit; width: 100%; cursor: pointer;
}
@media (min-width: 640px) { .bfv-card { flex-basis: calc(50% - 10px); } }
@media (min-width: 1024px) { .bfv-card { flex-basis: calc(33.333% - 14px); } }
.bfv-card-img { overflow: hidden; border-radius: 3px; border: 1px solid hsla(var(--border) / .7); background: hsl(var(--secondary)); aspect-ratio: 4/5; }
.bfv-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.bfv-card:hover .bfv-card-img img { transform: scale(1.05); }
.bfv-card-info { margin-top: 20px; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.bfv-card-title { font-size: 20px; font-weight: 500; letter-spacing: -0.01em; margin: 8px 0 0; transition: color .2s; }
.bfv-card:hover .bfv-card-title { color: hsl(var(--primary)); }
.bfv-card-creator { margin-top: 12px; display: flex; align-items: center; gap: 8px; font-size: 12px; color: hsl(var(--muted-foreground)); }
.bfv-card-avatar { width: 24px; height: 24px; border-radius: 50%; border: 1px solid hsl(var(--border)); background: hsl(var(--background)); flex-shrink: 0; }
.bfv-card-creator strong { color: hsl(var(--foreground)); font-weight: 500; }
.bfv-card-arrow { margin-top: 4px; flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; border: 1px solid hsl(var(--border)); display: inline-flex; align-items: center; justify-content: center; transition: all .2s; }
.bfv-card:hover .bfv-card-arrow { border-color: hsl(var(--primary)); background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }

.bfv-dots { margin-top: 32px; display: flex; align-items: center; justify-content: center; gap: 8px; }
.bfv-dots button { height: 6px; width: 10px; border-radius: 999px; border: none; background: hsl(var(--border)); cursor: pointer; transition: all .2s; }
.bfv-dots button.is-active { width: 32px; background: hsl(var(--primary)); }

/* Showreel */
.bfv-showreel-wrap { margin-top: 80px; }
.bfv-showreel-head { margin-bottom: 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.bfv-showreel-sub { display: none; max-width: 280px; text-align: right; font-size: 14px; color: hsl(var(--muted-foreground)); }
@media (min-width: 640px) { .bfv-showreel-sub { display: block; } }
.bfv-showreel { position: relative; aspect-ratio: 16/9; width: 100%; overflow: hidden; border-radius: 3px; border: 1px solid hsla(var(--border) / .7); background: hsl(var(--foreground)); }
.bfv-showreel img { width: 100%; height: 100%; object-fit: cover; opacity: .7; transition: all .7s ease; }
.bfv-showreel:hover img { transform: scale(1.05); opacity: .6; }
.bfv-showreel-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; text-align: center; }
.bfv-play-btn { width: 80px; height: 80px; border-radius: 50%; background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 10px 25px rgba(0,0,0,.3); transition: transform .3s; }
.bfv-showreel:hover .bfv-play-btn { transform: scale(1.1); }
.bfv-showreel-title { font-family: "Fraunces", serif; font-size: 24px; font-weight: 500; color: hsl(var(--background)); margin: 0; }
.bfv-showreel-note { margin-top: 4px; font-size: 13px; text-transform: uppercase; letter-spacing: .2em; color: hsla(var(--background) / .7); }

/* About */
.bfv-about { border-top: 1px solid hsla(var(--border) / .7); border-bottom: 1px solid hsla(var(--border) / .7); background: hsla(var(--secondary) / .5); }
.bfv-about .bfv-container { display: flex; flex-direction: column; gap: 56px; }
.bfv-team { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (min-width: 768px) { .bfv-team { gap: 32px; } }
.bfv-member-img { overflow: hidden; border-radius: 3px; aspect-ratio: 3/4; }
.bfv-member-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.bfv-member:hover .bfv-member-img img { transform: scale(1.03); }
.bfv-member figcaption { margin-top: 16px; text-align: center; }
.bfv-member-name { font-family: "Fraunces", serif; font-size: 15px; font-weight: 500; margin: 0; }
@media (min-width: 768px) { .bfv-member-name { font-size: 17px; } }
.bfv-member-role { margin: 4px 0 0; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; color: hsl(var(--muted-foreground)); }
.bfv-member-spec { margin: 8px 0 0; font-size: 12px; line-height: 1.4; color: hsl(var(--muted-foreground)); }

.bfv-about-text { max-width: 720px; margin: 0 auto; text-align: center; width: 100%; }
.bfv-center { text-align: center; }
.bfv-about-body { margin-top: 32px; }
.bfv-about-body p { font-size: 18px; line-height: 1.6; color: hsl(var(--muted-foreground)); margin: 0 0 20px; }
.bfv-stats { margin-top: 48px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; border-top: 1px solid hsl(var(--border)); padding-top: 32px; }
.bfv-stat-num { font-family: "Fraunces", serif; font-size: 36px; font-weight: 500; color: hsl(var(--primary)); margin: 0; }
@media (min-width: 768px) { .bfv-stat-num { font-size: 48px; } }
.bfv-stat-label { margin-top: 8px; font-size: 11px; text-transform: uppercase; letter-spacing: .15em; color: hsl(var(--muted-foreground)); }
.bfv-about-notes { margin-top: 40px; text-align: left; }
.bfv-about-notes p { font-size: 14px; color: hsl(var(--muted-foreground)); margin: 0 0 16px; }
.bfv-about-notes strong { color: hsl(var(--foreground)); font-weight: 500; }

/* Contact */
.bfv-contact { background: hsl(var(--foreground)); color: hsl(var(--background)); padding: 96px 0; }
@media (min-width: 768px) { .bfv-contact { padding: 128px 0; } }
.bfv-contact-grid { display: grid; grid-template-columns: 1fr; gap: 56px; }
@media (min-width: 768px) { .bfv-contact-grid { grid-template-columns: 1fr 1fr; gap: 40px; } }
.bfv-h2-light { color: hsl(var(--background)); margin-top: 16px; }
.bfv-contact-text { margin-top: 24px; max-width: 420px; font-size: 18px; line-height: 1.6; color: hsla(var(--background) / .6); }
.bfv-contact-links { margin-top: 40px; display: flex; flex-direction: column; gap: 16px; font-size: 14px; }
.bfv-contact-links a, .bfv-contact-links p { display: inline-flex; align-items: center; gap: 12px; color: hsla(var(--background) / .8); margin: 0; }
.bfv-contact-links a:hover { color: hsl(var(--primary)); }
.bfv-contact-links svg { color: hsl(var(--primary)); flex-shrink: 0; }
.bfv-social { margin-top: 40px; display: flex; gap: 12px; }
.bfv-social a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid hsla(var(--background) / .2); display: inline-flex; align-items: center; justify-content: center; color: hsla(var(--background) / .7); transition: all .2s; }
.bfv-social a:hover { border-color: hsl(var(--primary)); background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }

.bfv-form { display: flex; flex-direction: column; gap: 28px; }
.bfv-field { display: flex; flex-direction: column; gap: 8px; }
.bfv-field label { font-size: 11px; text-transform: uppercase; letter-spacing: .2em; color: hsla(var(--background) / .5); }
.bfv-field input, .bfv-field textarea {
	width: 100%; border: none; border-bottom: 1px solid hsla(var(--background) / .25);
	background: transparent; padding: 12px 0; color: hsl(var(--background)); outline: none;
	font-family: inherit; font-size: 15px; transition: border-color .2s; resize: none;
}
.bfv-field input::placeholder, .bfv-field textarea::placeholder { color: hsla(var(--background) / .35); }
.bfv-field input:focus, .bfv-field textarea:focus { border-color: hsl(var(--primary)); }
.bfv-error-msg { border: 1px solid hsla(var(--primary) / .4); background: hsla(var(--primary) / .1); border-radius: 3px; padding: 12px 16px; font-size: 14px; color: hsl(var(--primary)); margin: 0; }

.bfv-success { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border: 1px solid hsla(var(--background) / .15); border-radius: 3px; padding: 40px; }
.bfv-success svg { color: hsl(var(--primary)); }
.bfv-success h3 { font-size: 28px; font-weight: 500; margin: 24px 0 0; }
.bfv-success p { margin-top: 12px; max-width: 320px; color: hsla(var(--background) / .6); }
.bfv-success .bfv-btn { margin-top: 32px; }

/* Footer */
.bfv-footer { border-top: 1px solid hsla(var(--border) / .7); padding: 40px 0; }
.bfv-footer-inner { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 24px; text-align: center; }
@media (min-width: 768px) { .bfv-footer-inner { flex-direction: row; text-align: left; } }
.bfv-footer-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px; font-size: 14px; color: hsl(var(--muted-foreground)); }
.bfv-footer-nav a:hover { color: hsl(var(--foreground)); }
.bfv-footer-copy { font-size: 12px; color: hsl(var(--muted-foreground)); margin: 0; }

/* Reveal on scroll */
.bfv-reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1); }
.bfv-reveal.is-visible { opacity: 1; transform: translateY(0); }

@keyframes bfv-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes bfv-ping { 75%, 100% { transform: scale(2); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.bfv-marquee-track { animation: none; }
	.bfv-reveal { opacity: 1; transform: none; transition: none; }
}

/* Lightbox da galeria */
.bfv-lightbox {
	position: fixed; inset: 0; z-index: 200;
	background: rgba(5, 4, 3, 0.95);
	display: flex; align-items: center; justify-content: center;
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity .25s ease;
}
.bfv-lightbox.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
body.bfv-lightbox-open { overflow: hidden; }

.bfv-lightbox-stage { max-width: 90vw; max-height: 86vh; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.bfv-lightbox-stage img { max-width: 90vw; max-height: 74vh; width: auto; height: auto; object-fit: contain; border-radius: 2px; }
.bfv-lightbox-caption { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.bfv-lightbox-caption p { margin: 0; color: hsl(var(--background)); font-family: "Fraunces", serif; font-size: 18px; }
.bfv-lightbox-caption span { color: hsla(var(--background) / .55); font-size: 12px; letter-spacing: .15em; text-transform: uppercase; }

.bfv-lightbox-close {
	position: absolute; top: 20px; right: 20px; z-index: 5;
	width: 44px; height: 44px; border-radius: 50%; border: 1px solid hsla(var(--background) / .25);
	background: transparent; color: hsl(var(--background)); display: inline-flex; align-items: center; justify-content: center;
	transition: all .2s;
}
.bfv-lightbox-close:hover { border-color: hsl(var(--primary)); background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }

.bfv-lightbox-nav {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
	width: 48px; height: 48px; border-radius: 50%; border: 1px solid hsla(var(--background) / .25);
	background: transparent; color: hsl(var(--background)); display: inline-flex; align-items: center; justify-content: center;
	transition: all .2s;
}
.bfv-lightbox-nav:hover { border-color: hsl(var(--primary)); background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.bfv-lightbox-prev { left: 16px; }
.bfv-lightbox-next { right: 16px; }
@media (min-width: 768px) {
	.bfv-lightbox-prev { left: 32px; }
	.bfv-lightbox-next { right: 32px; }
}
.bfv-lightbox-nav[hidden] { display: none; }
