

/* Base styles */
body {
	font-family: 'Montserrat', sans-serif;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'Playfair Display', serif;
	font-weight: 400;
}


/* Hero section */
.hero-gradient {
	background: linear-gradient(135deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.4) 100%);
}

/* Animations */
@keyframes fade-in {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}



/* Header on scroll */
.header.scrolled {
	background-color: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}


.lg\:max-w-md {
	max-width: 28rem;
}

.header.scrolled a {
	color: hsl(215 25% 17%);
}

/* Mobile menu */
@media (max-width: 767px) {
	.main-nav {
		display: none;
	}
	
	.header.mobile-menu-open .main-nav {
		display: block;
		position: absolute;
		top: 78px;
		left: 0;
		right: 0;
		background-color: white;
		padding: 1rem;
	}
} 


/* ===== Colors using CSS Variables ===== */
:root {
--background: 0 0% 100%;
--foreground: 215 25% 17%;

--card: 0 0% 100%;
--card-foreground: 215 25% 17%;

--popover: 0 0% 100%;
--popover-foreground: 215 25% 17%;

--primary: 210 100% 24%;
--primary-foreground: 0 0% 100%;

--secondary: 210 40% 96%;
--secondary-foreground: 210 100% 24%;

--muted: 210 40% 96%;
--muted-foreground: 215 16% 47%;

--accent: 45 93% 47%;
--accent-foreground: 0 0% 100%;

--destructive: 0 84% 60%;
--destructive-foreground: 0 0% 100%;

--border: 214 31% 91%;
--input: 214 31% 91%;
--ring: 210 100% 24%;

--radius: 8px;

/* Pomorskie Domy Brand Colors */
--navy: 210 100% 24%;
--navy-50: 210 40% 98%;
--navy-100: 210 40% 95%;
--navy-500: 210 100% 24%;
--navy-600: 210 100% 20%;
--navy-700: 210 100% 16%;
--navy-900: 210 100% 12%;

--gold: 14 65% 45%;
--gold-50: 14 30% 96%;
--gold-100: 14 40% 90%;
--gold-500: 14 65% 45%;
--gold-600: 14 65% 40%;

--neutral-50: 210 20% 98%;
--neutral-100: 210 20% 97%;
--neutral-200: 214 31% 91%;
--neutral-400: 215 16% 47%;
--neutral-600: 215 19% 35%;
--neutral-700: 215 25% 27%;
--neutral-800: 215 25% 17%;
--neutral-900: 215 28% 17%;

--sidebar-background: 0 0% 98%;
--sidebar-foreground: 240 5.3% 26.1%;
--sidebar-primary: 240 5.9% 10%;
--sidebar-primary-foreground: 0 0% 98%;
--sidebar-accent: 240 4.8% 95.9%;
--sidebar-accent-foreground: 240 5.9% 10%;
--sidebar-border: 220 13% 91%;
--sidebar-ring: 217.2 91.2% 59.8%;
}

/* Container */
.container {
	max-width: 1200px;
}


/* Typography */
body {
	font-family: 'Montserrat', sans-serif;
	background-color: hsl(var(--background));
	color: hsl(var(--foreground));
}

h1 {
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 400;
	font-family: 'Playfair Display', serif;
}

h2 {
	font-size: 2rem;
	line-height: 1.3;
	font-weight: 400;
	font-family: 'Playfair Display', serif;
}

h3 {
	font-size: 1.5rem;
	line-height: 1.4;
	font-weight: 400;
	font-family: 'Playfair Display', serif;
}

p, .body {
	font-size: 0.875rem;
	line-height: 1.6;
	font-weight: 400;
}


.small {
	font-size: 0.875rem;
	line-height: 1.5;
	font-weight: 400;
} 


.text-lg {
	font-size: 1.2rem;
	line-height: 1.7rem;
} 

a , button, input, textarea{
	border-radius: 0px!important;
}

a, button{
	cursor: pointer;
	transition: all .4s;
}

a.bg-gold:hover, button.bg-gold-500:hover{
	background-color: hsl(var(--gold-600));
}

.shadow-sm {
	--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
	--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
	box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
} 



.link{
	transition: all .4s;
}

.link:hover{
	color: hsl(var(--navy)); 
}

.text-neutral-600 {
	color: hsl(var(--neutral-600));
}  

.border-gold\/20 {
	border-color: hsl(var(--gold) / 0.2);
} 

.font-medium {
	font-weight: 500;
}

.font-semibold{
	font-weight: 600;
}

.text-sm {
	font-size: 0.875rem;
	line-height: 1.25rem;
} 

.text-2xl {
	font-family: Playfair Display, serif;
	font-size: 1.3rem;
	line-height: 2rem;
}

.text-6xl {
	font-family: Playfair Display, serif; 
	font-size: 3.75rem;
	line-height: 1;
}

.text-h3 {
	font-size: 1.5rem;
	line-height: 1.4;
	font-weight: 400;
} 


.btn--border{
	transition: all .4s;
}

.btn--border:hover{
	background-color: hsl(var(--gold) / 0.1) 
}


.btn{
	transition: all .4s;
}

.btn:hover{
	background-color: hsl(var(--gold-600)); 
}

/* Border Radius */
.rounded {
	border-radius: var(--radius);
}
.rounded-none {
	border-radius: 0;
}

.slider {
	display: flex;
	/* powtórzność treści – szerokość = 2× logo */
	width: max-content;
	animation: scroll-left 20s linear infinite;
} 

.nav-link{
	font-size: 0.875rem;
	line-height: 1.25rem;
}

@keyframes scroll-left {
	0%   { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

/* */ 
.modal {
	position: fixed;
	inset: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: center;
}
.modal.hidden { display: none; }

.modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.8);
}

.modal-content {
	position: relative;
	background: white; 
	padding: 1.3rem;
	max-width: 56rem; 
	width: 98%;
	max-height: 90%;
	overflow: auto;
	border-radius: 8px;
	box-shadow: 0 4px 16px rgba(0,0,0,0.3);
	z-index: 10;
}

.modal-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	background: transparent;
	border: none;
	font-size: 1.8rem;
	line-height: 1;
	cursor: pointer; 
	opacity: .7; 
	transition: all .4s;
}

.modal-close:hover{
	opacity: 1;
} 

.modal-title { 
	margin: 0 0 1rem;
	color: hsl(var(--navy));
}

.modal-body {
	width: 100%; 
	aspect-ratio: 16/9;
	overflow: hidden;
} 

.modal-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.backdrop-blur-sm .nav-link{
	transition: all .4s;  
}

.backdrop-blur-sm .nav-link:hover{
	color: hsl(var(--navy)); 
}

.font-light {
	font-weight: 300;
}


/* Spacing */
.p-xs { padding: 0.5rem; }
.p-sm { padding: 1rem; } 
.p-md { padding: 2rem; }
.p-lg { padding: 4rem; }  

/* Shadows */
.shadow-card { box-shadow: 0 2px 8px rgba(0,0,0,0.02); }
.shadow-card-hover:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.15); }

/* Animations */
@keyframes accordion-down {
	from { height: 0; }
	to { height: var(--radix-accordion-content-height); }
}
@keyframes accordion-up {
	from { height: var(--radix-accordion-content-height); }
	to { height: 0; }
}
@keyframes fade-in {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes slide-up {
	from { transform: translateY(20px); }
	to { transform: translateY(0); }
}

.animate-accordion-down { animation: accordion-down 0.2s ease-out; }
.animate-accordion-up   { animation: accordion-up 0.2s ease-out; }
.animate-fade-in        { animation: fade-in 0.3s ease-out; }
.animate-slide-up       { animation: slide-up 0.3s ease-out; }

/* Background Colors */
.bg-card        { background-color: hsl(var(--card)); }
.bg-popover     { background-color: hsl(var(--popover)); }
.bg-primary     { background-color: hsl(var(--primary)); }
.bg-secondary   { background-color: hsl(var(--secondary)); }
.bg-destructive { background-color: hsl(var(--destructive)); }
.bg-muted       { background-color: hsl(var(--muted)); }
.bg-accent      { background-color: hsl(var(--accent)); }

.bg-navy        { background-color: hsl(var(--navy)); }
.bg-navy-50     { background-color: hsl(var(--navy-50)); }
.bg-navy-100    { background-color: hsl(var(--navy-100)); }
.bg-navy-500    { background-color: hsl(var(--navy-500)); }
.bg-navy-600    { background-color: hsl(var(--navy-600)); }
.bg-navy-700    { background-color: hsl(var(--navy-700)); }
.bg-navy-900    { background-color: hsl(var(--navy-900)); }

.bg-gold        { background-color: hsl(var(--gold)); }
.bg-gold-50     { background-color: hsl(var(--gold-50)); }
.bg-gold-100    { background-color: hsl(var(--gold-100)); }
.bg-gold-500    { background-color: hsl(var(--gold-500)); }
.bg-gold-600    { background-color: hsl(var(--gold-600)); }

/* Text Colors */
.text-card        { color: hsl(var(--card-foreground)); }
.text-popover     { color: hsl(var(--popover-foreground)); }
.text-primary     { color: hsl(var(--primary-foreground)); }
.text-secondary   { color: hsl(var(--secondary-foreground)); }
.text-destructive { color: hsl(var(--destructive-foreground)); }
.text-muted       { color: hsl(var(--muted-foreground)); }
.text-accent      { color: hsl(var(--accent-foreground)); }

.text-navy        { color: hsl(var(--navy)); }
.text-navy-50     { color: hsl(var(--navy-50)); }
.text-navy-100    { color: hsl(var(--navy-100)); }
.text-navy-500    { color: hsl(var(--navy-500)); }
.text-navy-600    { color: hsl(var(--navy-600)); }
.text-navy-700    { color: hsl(var(--navy-700)); }
.text-navy-900    { color: hsl(var(--navy-900)); }

.text-gold        { color: hsl(var(--gold)); }
.text-gold-50     { color: hsl(var(--gold-50)); }
.text-gold-100    { color: hsl(var(--gold-100)); }
.text-gold-500    { color: hsl(var(--gold-500)); }
.text-gold-600    { color: hsl(var(--gold-600)); }

/* Border Colors */
.border-card        { border-color: hsl(var(--card-foreground)); }
.border-popover     { border-color: hsl(var(--popover-foreground)); }
.border-primary     { border-color: hsl(var(--primary)); }
.border-secondary   { border-color: hsl(var(--secondary)); }
.border-destructive { border-color: hsl(var(--destructive)); }
.border-muted       { border-color: hsl(var(--muted)); }
.border-accent      { border-color: hsl(var(--accent)); }

.border-navy        { border-color: hsl(var(--navy)); }
.border-navy-50     { border-color: hsl(var(--navy-50)); }
.border-navy-100    { border-color: hsl(var(--navy-100)); }
.border-navy-500    { border-color: hsl(var(--navy-500)); }
.border-navy-600    { border-color: hsl(var(--navy-600)); }
.border-navy-700    { border-color: hsl(var(--navy-700)); }
.border-navy-900    { border-color: hsl(var(--navy-900)); }

.border-gold        { border-color: hsl(var(--gold)); }
.border-gold-50     { border-color: hsl(var(--gold-50)); }
.border-gold-100    { border-color: hsl(var(--gold-100)); }
.border-gold-500    { border-color: hsl(var(--gold-500)); }
.border-gold-600    { border-color: hsl(var(--gold-600)); }
		 

.bg-navy\/95 {
	background-color: hsl(var(--navy) / 0.95);
} 

.backdrop-blur-sm #mobile-toggle .text-white{
	color: hsl(var(--navy)); 
}

#mobile-menu .nav-link:hover{
	color: #fff; 
} 

img, svg{
	max-width: 100%;
}


@media (max-width: 576px) {

	.px-8 {
		padding-inline: calc(var(--spacing) * 5);
	}

	h2 {
		font-size: 1.7rem; 
	}

	.modal-content{
		padding: 1rem;
	}

	.text-lg {
		font-size: 1.12rem;
		line-height: 1.7rem;
	} 

	.author{
		display: flex;
		justify-content: center;
		margin-top: 2rem;
	}
} 

.h-screen {
	height: auto;
	min-height: 100vh;
} 

#wpadminbar {
	opacity: 0.01;
}

#wpadminbar:hover {
	opacity: 1;
}

 
.footer{
	padding-bottom: 2rem;
}
 

.acf-map{
	width: 100%;
	height: 30rem;
}


input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; 
}


.input--checkbox{
	display: flex;
	align-items: flex-start;
	color: #666666; 
	margin-top: -.8rem;
	font-size: 12px;
	font-weight: 400;
	line-height: 18px;
}

.input--checkbox p{
	font-size: 12px;
	font-weight: 400;
	line-height: 18px;
}

.input--checkbox input[type="checkbox"]{
	margin-right: .8rem;
	width: 1rem; 
	height: 1rem;  
	flex: 0 0 1rem; 
	border: 1px solid #d4d4d4;
	position: relative; 
	top: 0px;
} 

 
.input--checkbox input[type="checkbox"]:checked{
	border: 1px solid #000;
	background-color: #000;
}

.input--checkbox input[type="checkbox"]:checked::after{
	content: "";
	position: absolute;
	left: 48%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: .75rem;
	height: .75rem;  
	background-image: url(../img/svg/checked.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}


.form br{
	display: none;
}

.form .group{
	margin-bottom: 1.2rem;
}

.form textarea{
	height: 100px;
}

.form .screen-reader-response{
    display: none
} 

.form .wpcf7-not-valid-tip{
    font-size: 12px;
    line-height: 16px;
    color: #e54a4f; 
    margin-left: 0px;
    margin-top: 2px; 
    display: block; 
} 

.form .wpcf7-response-output{ 
    margin-top: 1.4rem;
	font-size: 15px;
	line-height: 20px;
	font-weight: 400;   
	color: #000;  
}

  
.img{
	width: 100%;
}

.gallery-item{
	cursor: pointer;
}