/***** GLOBAL SETTINGS *****/

:root {
	--black:#000000;
	--dark:#050F06;
	--gray:#2A342B;
	--cloud:#c1c3c5;
	--snow:#E7F6F4;
	--white:#FFFFFF;
	
	--primary:#004930;
	--secondary:#029C75;
	--tertiary:#FCD9C8;
	
	--link:#0066FF;
	--link-active:#0044FF;
	
	--transition:all 0.24s ease-in-out;
	}

* {
	box-sizing:border-box;
}

html,
body {
	font-family: "Instrument Sans", Helvetica, Arial, sans-serif; 
	font-optical-sizing:auto;
	font-style:normal;
	font-size:16px;
	font-weight:400;
	margin:0; 
	padding:0; 
	color:var(--gray);
	position:relative;
	scroll-behavior: smooth;
}

/***** COLORS *****/

.black {color:var(--black) !important;}	
.dark {color:var(--dark) !important;}
.gray {color:var(--gray) !important;}	
.primary {color:var(--primary) !important;}	
.secondary {color:var(--secondary) !important;}
.tertiary {color:var(--tertiary) !important;}	
.cloud {color:var(--cloud) !important;}
.snow {color:var(--snow) !important;}
.white {color:var(--white) !important;}
.gradient {background: -webkit-linear-gradient(45deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent;}

.bg_black {background-color:var(--black) !important;}
.bg_dark {background-color:var(--dark) !important;}
.bg_gray {background-color:var(--gray) !important;}
.bg_primary {background-color:var(--primary) !important;}
.bg_secondary {background-color:var(--secondary) !important;}
.bg_tertiary {background-color:var(--tertiary) !important;}
.bg_cloud {background-color:var(--cloud) !important;}
.bg_snow {background-color:var(--snow) !important;}
.bg_white {background-color:var(--white) !important;}
.bg_gradient {background-image: -webkit-linear-gradient(45deg, var(--primary), var(--secondary));}

.border_black {border-color:var(--black) !important;}
.border_dark {border-color:var(--dark) !important;}
.border_gray {border-color:var(--gray) !important;}
.border_primary {border-color:var(--primary) !important;}
.border_secondary {border-color:var(--secondary) !important;}
.border_tertiary {border-color:var(--tertiary) !important;}
.border_cloud {border-color:var(--cloud) !important;}
.border_snow {border-color:var(--snow) !important;}
.border_white {border-color:var(--white) !important;}
.border_gradient {background: linear-gradient(white, white) padding-box, linear-gradient(45deg, var(--primary), var(--secondary)) border-box; border: 3px solid transparent;}

.bg_white h1, .bg_white h2, .bg_white h3, .bg_white h4, .bg_white h5, .bg_white h6, .bg_white strong, .bg_white .lead, .bg_white p, .bg_white li,
.bg_snow h1, .bg_snow h2, .bg_snow h3, .bg_snow h4, .bg_snow h5, .bg_snow h6, .bg_snow strong, .bg_snow .lead, .bg_snow p, .bg_snow li {
	color:var(--dark)
}

/***** TEXT *****/

h1 {
	font-size:3.5rem;
	line-height:3.875rem;
	font-weight:700;
	letter-spacing:-0.5px; 
	margin:0 0 1.5rem 0;
	color:var(--black);
}
h2 {
	font-size:2.75rem;
	line-height:3.125rem;
	font-weight:700;
	letter-spacing:-0.4px; 
	margin:0 0 1.5rem;
	color:var(--black);
}
h3 {
	font-size:2rem;
	line-height:2.375rem;
	font-weight:700;
	letter-spacing:-0.3px; 
	margin:0 0 1rem;
	color:var(--black);
}
h4 {
	font-size:1.625rem;
	line-height:2rem;
	font-weight:700;
	letter-spacing:-0.2px; 
	margin:0 0 0.75rem;
	color:var(--dark);
}
h5 {
	font-size:1.375rem;
	line-height:1.875rem;
	font-weight:700;
	letter-spacing:-0.1px; 
	margin:0 0 0.25rem;
	color:var(--dark);
}
h6 {
	font-size:1.25rem;
	line-height:1.75rem;
	font-weight:700;
	letter-spacing:-0.1px; 
	margin:0 0 0.25rem 0;
	color:var(--dark);
}
p {
	font-size:1.0625rem;
	line-height:1.625rem;
	margin:0 0 0.5rem;
}
strong {
	font-size:1.1875rem;
	line-height:1.625rem;
	font-weight:700;
	margin:0 0 0.5rem;
	color:var(--dark);
}
.lead {
	font-size:1.25rem;
	line-height:1.75rem;
	margin:0 0 0.75rem;
	color:var(--dark);
	font-weight:500;
	}
.uppercase {
	font-size:0.9375rem;
	line-height:1.25rem;
	font-weight:400;
	margin:0 0 0.25rem;
	letter-spacing:1.25px;
	text-transform:uppercase;
	}
.caption {
	font-size:1rem;
	line-height:1.375rem;
	font-weight:400;
	margin: 0.5rem 0 0;
}
.blockquote::before {
	content: "\201C";
	display: block;
	font-size: 200%;
	position: relative;
	top: 1rem;
	left: -0.25rem;
	}
ul {
	margin:0;
	padding:0 0 0 1.25rem;
	margin:0.5rem 0;
	}
li {
	font-size:1.0625rem;
	line-height:1.625rem;
	padding:0 0 0.5rem;
	}
li:last-child {
	padding:0 0 0.25rem;
	}

/***** GRAPHICS & DECORATIONS *****/

img {
	width:100%; 
	height:auto; 
	display: block;
}
.icon {
	width:1.75rem !important;
	height:1.75rem !important;
}
.border_light {
	border-width: 1px;
	border-style:solid;
}
.border_strong {
	border-width: 3px;
	border-style:solid;
}
hr {
	width: 100%;
	border: none;
	height: 1px;
	background-color: var(--cloud);
	margin:2rem 0;
}
.break {
	height: 1.5rem;
}

/***** LINKS & BUTTONS *****/

a {
	font-weight:500;
	text-decoration:none;
	color:var(--link);
	transition:var(--transition);
	position: relative;
}
a:hover	{
	color:var(--link-active);
}
.button {
	font-size:1.125rem; 
	line-height:1.625rem; 
	cursor:pointer; 
	font-weight:700;
	color:var(--primary);
	background:var(--tertiary);
	transition:var(--transition);
	padding:0.75rem 1.25rem 0.75rem 1.25rem;
	margin:0.5rem 0 0.5rem;
	border:0;
	border-radius:2rem;
	position: relative;
}
.button:hover {
	color:var(--white);
	background:var(--secondary);
}

/***** PAGE STRUCTURE *****/

.section,
.container,
.content,
.row,
.column {
	width:100%;
	margin:0 auto;
	display:flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	flex-direction: column;
	position:relative;
	min-width:0;
	font-size:1.125rem;
	background-repeat:no-repeat;
}
.section {
	padding:3rem 0.5rem;
	max-width:1920px;
	gap:3rem;
}
.container {
	padding: 3rem 3rem;
	max-width:1360px;
	gap:5rem;
}
.content {
	padding:0;
	max-width:1180px;
	gap:2rem;
}
.row {
	padding-top: 1rem;
	padding-bottom: 1rem;
	flex-direction: row;
	gap:4rem;
}
.row .row .row {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}
.column {
	padding:0;
}
	
.equal {align-items: stretch;}
.middle {align-items: center;}
.centered {text-align: center; justify-content: center; align-items:center;}
.space {justify-content:space-between}
.start {justify-content:flex-start}
.end {justify-content:flex-end}
.fullpage {height: 100vh;}
.right {text-align: right;}
.left {text-align: left;}

.width_80 {width:80%}
.width_75 {width:75%}
.width_60 {width:60%}
.width_50 {width:50%}

.hide {display:none}
.hide_mobile {display:inherit}
.hide_desktop {display:none;}

.shadow {box-shadow:0 0.75rem 2rem rgba(0,0,0,0.12);}

.rounded {border-radius:2rem;}
.row .rounded {border-radius:1.25rem;}

.padding {padding:3rem 3.5rem 2.5rem;}
.row .padding {padding:2.25rem 2.75rem 1.75rem;}
.row .column.padding {width: calc(100% - 5.5rem)}

.bounced {transition:var(--transition);}
.bounced:hover {transform: scale(1.02);}
.bounced.shadow:hover {box-shadow:0 0.75rem 2.5rem rgba(0,0,0,0.08);}

.bg_cover {background-size: cover;}
.bg_contain {background-size: contain;}
.bg_center {background-position: center;}
.bg_top {background-position: top center;}
.bg_bottom {background-position: bottom center;}

/***** HEADER *****/

.header {
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
	max-width:100%;
	background-color:var(--white);
	}
.header .container,
.header .row {
	padding-top: 0;
	padding-bottom: 0;
	}
.header .brand a {
	display:flex;
	flex-direction: row;
	gap: 1rem;
	font-size:0.875rem;
	line-height: 1.25rem;
	font-weight:500;
	color: var(--secondary);
}
.header .brand a strong {
	font-size:1.1875rem;
	line-height: 1.25rem;
	font-weight:700;
	color: var(--primary);
}
.header .brand a .logo {
	height:4rem; 
	width:auto;
	}
.header:after {
	content:'';
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	height:0.5rem; 
	background: linear-gradient(90deg, var(--tertiary) 0%, var(--secondary) 100%); 
	}
.header #navi ul {
	padding: 0;
	margin: 0;
	list-style-type: none;
	display:flex;
	}
.header #navi ul li {
	display: inline-block;
	margin: 0;
	padding:8px 12px;
	}
.header #navi ul li:before {
	display: none;
	}
.header #navi ul li a {
	color: var(--gray);
	font-size: 1.0625rem;
	font-weight:500;
	}
.header #navi ul li a.active {
	color: var(--dark);
	font-weight:700;
	}
.header #navi ul li a:hover {
	color: var(--black);
	}
.header .hamburger,
.header .close {
	width:2rem;
	height:2rem;
	padding:6px;
	display:none;
	cursor: pointer;
	}
.header .hamburger svg, 
.header .close svg {
	fill:none;
	stroke:var(--primary);
	stroke-linecap:round;
	stroke-linejoin:round;
	stroke-width:4px
	}

/***** HERO *****/
	
.hero {
	padding-top: 4rem;
	padding-bottom: 4rem;
	background-image:url('images/rehabilitacja_zwierzat_hero.webp');
	}
.hero:after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0; 
	background: rgba(0,0,0,0.32);
	pointer-events: none;
}
.hero .container {
	z-index:99;
	}
	
/***** TOC *****/
	
.toc {
	padding-top: 0;
	padding-bottom: 0;
	background-position:center;
	background-size:cover; 
	background-repeat:no-repeat;
	overflow: hidden;
	}
.toc .container {
	padding-top: 1rem;
	padding-bottom: 1rem;
	}
.toc .row {
	gap:1.75rem;
	flex-direction: row;
	white-space: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	-ms-overflow-style: -ms-autohiding-scrollbar;
	}
.toc .row::-webkit-scrollbar {
	display: none;
	}

/***** DOCUMENT *****/	

.document {
	gap:1.5rem;
	margin-bottom:2rem;
}
.document .column:first-child {
	width: 12rem;
}
.document.small .column:first-child {
	width: 6rem;
}
.document img {
	box-shadow: 0 0.25rem 1rem rgba(0,0,0,0.16);
	border-radius: 0.25rem;
}
.document p {
	font-size: 1rem;
	line-height: 1.5rem;
	overflow: hidden;
	font-weight: 400;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}
.document li {
	padding:0 0 0.25rem;
}
/***** PEOPLE *****/

.person {
	display:flex; 
	flex-direction:column;
	gap:1rem;
	}
.person > div {
	display: flex; 
	flex-direction: row;
	align-items: center;
	gap: 1rem;
	}
.person img {
	width:8rem;
	height:8rem;
	border-radius:4rem;
	}
.person .icon {
	display: inline-block;
	margin: 0.25rem 0.375rem 0 0;
	}

/***** DOCUMENTS *****/	

.document {
	gap:1.5rem;
	margin-bottom:2rem;
}
.document .column:first-child {
	width: 12rem;
}
.document p {
	font-size: 1rem;
	line-height: 1.5rem;
	overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}

/***** FOOTER *****/	
	
.footer {
	padding-top: 0;
	padding-bottom: 0;
	background-color:var(--black);
	color:var(--cloud);
	max-width:100%;
	}
.footer:before {
	content:'';
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:0.5rem; 
	background: linear-gradient(90deg, var(--tertiary) 0%, var(--secondary) 100%); 
	}
.footer .row {
	gap:2rem;
	}

/***** RESPONSIVENESS *****/

@media screen and (max-width:1024px) {
.row {
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
	flex-direction: column;
	gap:3rem;
}
.row .row {
	gap:1.5rem;
}
.fullpage {
	height: auto;
}
.header {
	padding-top: 1.25rem;
	padding-bottom: 1.5rem;
}
.header .row {
	flex-direction: row;
}
.header:after {
	height:0.25rem;
}
.header .logo {
	height:2rem;
	width:auto;
}
.hero {
	background-position: right 30% center;
}
.hero .row {
	flex-direction: row;
}
.hero .row .column:first-child {
	width:60%;
}
.hero .row .column:last-child {
	width:40%;
}
img {
	max-width:750%;
}
.hide_mobile {
	display:none;
}
.hide_desktop {
	display:inherit;
}
.header #navi {
	padding: 20px 2rem 20px 2rem;
	position:fixed;
	top:0;
	right:-60%;
	transition: all ease 0.3s;
	background-color: var(--white);
	box-shadow: 0 0 32px rgba(0,0,0,.08);
	width:60%;
	height:100vh;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap:6rem;
	align-items: flex-end;
	z-index:100;
}
.header #navi.opened {
	right:0;
}
.header #navi ul {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
	width: 100%;
}
.header .hamburger,
.header .close {
		display: block;
}
.document {
	flex-direction: row;
}
.document .column:first-child {
	width: 10rem;
}
.mobile-reverse > *:last-child {order:1}
.mobile-reverse > *:first-child {order:2}
}

@media screen and (max-width:768px) {
	
h1 {
	font-size:3rem;
	line-height:3.25rem;
	margin:0 0 1.25rem 0;
	}
h2 {
	font-size:2.25rem;
	line-height:2.5rem;
	margin:0 0 1rem;
	}
h3 {
	font-size:1.75rem;
	line-height:2.125rem;
	margin:0 0 0.75rem;
	color:var(--black);
	}
h4 {
	font-size:1.5rem;
	line-height:2rem;
	font-weight:700;
	margin:0 0 0.5rem;
	}
h5 {
	font-size:1.25rem;
	line-height:1.625rem;
	margin:0 0 0.25rem;
	}
.container {
	padding: 3rem 1.5rem;
	gap:4rem;
	}

.rounded {border-radius:0.5rem;}
.row .rounded {border-radius:0.75rem;}

.padding,
.row .padding {padding:1.5rem 2rem 1rem;}

.person > div {flex-direction: column;align-items: flex-start;}
}

@media screen and (max-width:480px) {
	h1 {
		font-size:2.5rem;
		line-height:2.875rem;
		margin:0 0 1rem 0;
		}
	.hero {
		padding-top: 12rem;
		padding-bottom: 0rem;
		background-image:url('images/rehabilitacja_zwierzat_hero_mobile.webp');
		background-position: top center;
		}
	.hero .row {
		flex-direction: row;
	}
	.hero .row .column:first-child {
		width:100%;
	}
	.hero .row .column:last-child {
		display:none;
	}
	img {
		max-width:100%;
	}
	.width_80, .width_75 {width:100%}
	.width_60, .width_50 {width:75%}

}