/*
Theme Name: Intcolaw
Description: Theme for en.intcolaw.com. Type, colors and fonts live in theme.json; this file only lays out the header, title bar and footer.
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: intcolaw
*/

body {
	margin: 0;
}

img {
	max-width: 100%;
	height: auto;
}

.wrap,
.blocks > * {
	width: min(1170px, 90%);
	margin-inline: auto;
}

.blocks > .alignfull {
	width: auto;
}

/* Header */

.site-header {
	position: relative;
	z-index: 10;
	display: flex;
	align-items: center;
	height: 86px;
	padding: 0 30px;
	background: #fff;
	box-shadow: 1px 0 10px rgba(0, 0, 0, 0.1);
}

.custom-logo {
	display: block;
	width: auto;
	height: 77px;
}

.site-menu {
	display: flex;
	margin: 0 0 0 auto;
	padding: 0;
	list-style: none;
}

.site-menu a {
	position: relative;
	display: block;
	margin: 0 5px;
	padding: 0 12px;
	line-height: 86px;
	color: inherit;
}

.site-menu .current-menu-item > a::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: var(--wp--preset--color--accent);
}

.has-hero .site-header {
	background: var(--wp--preset--color--dark);
	box-shadow: none;
	color: #fff;
}

.menu-toggle {
	display: none;
	width: 30px;
	height: 20px;
	margin-left: auto;
	padding: 0;
	border: 0;
	color: inherit;
	cursor: pointer;
	background:
		linear-gradient(currentColor 0 0) top / 100% 2px no-repeat,
		linear-gradient(currentColor 0 0) center / 100% 2px no-repeat,
		linear-gradient(currentColor 0 0) bottom / 100% 2px no-repeat;
}

.menu-open .menu-toggle {
	background:
		linear-gradient(45deg, transparent 46%, currentColor 46% 54%, transparent 54%),
		linear-gradient(-45deg, transparent 46%, currentColor 46% 54%, transparent 54%);
}

@media (min-width: 1201px) {
	.has-hero .site-header {
		position: absolute;
		inset: 0 0 auto;
		background: rgba(39, 50, 61, 0.44);
	}
}

@media (max-width: 1200px) {
	.menu-toggle {
		display: block;
	}

	.site-menu {
		position: absolute;
		inset: 86px 0 auto;
		display: none;
		padding: 20px 35px;
		background: rgba(39, 50, 61, 0.9);
		color: #fff;
	}

	.menu-open .site-menu {
		display: block;
	}

	.site-menu a {
		margin: 0;
		padding: 10px 0;
		line-height: 20px;
	}

	.site-menu .current-menu-item > a::before {
		content: none;
	}
}

/* Title bar */

.title-bar {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	min-height: 150px;
	padding: 20px 0;
	background: var(--wp--preset--color--light) center / cover;
	color: var(--wp--preset--color--dark);
	text-align: center;
}

.title-bar h1 {
	margin: 0;
	color: inherit;
}

.title-bar p {
	margin: 0;
}

.title-bar .subtitle {
	margin-top: 20px;
	font-size: 28px;
	font-weight: 100;
	line-height: 1.2;
	opacity: 0.8;
}

.title-bar--image {
	height: 280px;
	color: #fff;
	text-align: left;
}

.title-bar a {
	color: inherit;
}

@media (min-width: 1201px) {
	.title-bar--image {
		padding-top: 106px;
	}

	.title-bar--image .wrap {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
}

/* Content */

/* Short pages keep the footer off the content, as the old theme did. */
.site-main {
	box-sizing: border-box;
	min-height: 50vh;
	padding: 40px 0;
}

/* Defaults for text in posts, pages and team bios. :where() keeps them at zero
   specificity, so any component class overrides them. */

:where(.entry) p {
	margin: 0 0 30px;
}

:where(.entry) :is(h1, h2, h3, h4, h5, h6) {
	margin: 0;
}

:where(.entry) ul {
	margin: 0;
	padding: 0 0 20px;
	list-style: none;
}

:where(.entry) li {
	padding: 0 0 5px 25px;
}

:where(.entry) li:last-child {
	padding-bottom: 0;
}

:where(.entry) li::before {
	content: "•";
	display: inline-block;
	width: 8px;
	margin: 0 14px 0 -22px;
	font-size: 25px;
	vertical-align: top;
	color: var(--wp--preset--color--dark);
}

/* Team member page: lawyer list on the left, profile on the right */

.with-sidebar {
	display: grid;
	grid-template-columns: 270px 1fr;
	gap: 0 30px;
}

.with-sidebar .sidebar {
	grid-row: 1;
}

.sidebar .widget-title {
	margin-bottom: 20px;
	padding-bottom: 15px;
	border-bottom: 1px solid #efefef;
	font-size: 24px;
	line-height: 26px;
}

.sidebar ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sidebar li {
	position: relative;
	padding: 7px 0 7px 20px;
}

.sidebar li + li {
	border-top: 1px solid #f6f6f6;
}

.sidebar a,
.team-details a {
	color: inherit;
}

.sidebar .current-menu-item {
	padding-left: 30px;
}

.sidebar .current-menu-item::before {
	content: "";
	position: absolute;
	top: 13px;
	left: 0;
	width: 4px;
	height: 18px;
	background: var(--wp--preset--color--accent);
}

.team-photo {
	display: block;
}

.team-name {
	margin-bottom: 20px;
	font-size: 24px;
	line-height: 26px;
}

.team-details {
	margin-bottom: 45px;
}

.team-details span {
	display: block;
}

.team-details b {
	margin-right: 5px;
	font-weight: 400;
	color: var(--wp--preset--color--dark);
}

/* Team grid block */

.team-filter {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 60px;
}

.team-filter button {
	margin: 0 35px 0 0;
	padding: 0 0 10px;
	border: 0;
	border-bottom: 3px solid transparent;
	background: none;
	font: inherit;
	color: inherit;
	cursor: pointer;
}

.team-filter .is-active {
	border-bottom-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

.team-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	margin: 0 0 50px;
	padding: 0;
	list-style: none;
}

.team-cards li {
	padding: 0;
}

.team-cards li::before {
	content: none;
}

.team-cards a {
	position: relative;
	display: block;
	color: #fff;
}

.team-cards img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

.team-cards span {
	position: absolute;
	inset: auto 0 0;
	box-sizing: border-box;
	height: 90px;
	padding: 35px 40px 0;
	background: rgba(41, 54, 66, 0.45);
	font-size: 18px;
	line-height: 24px;
}

/* News */

.post-card {
	margin-bottom: 60px;
	padding: 26px 30px 21px;
	background: #fafafa;
}

.post-card .post-title + p {
	margin: 0 0 17px;
}

.post-meta {
	margin: 0 0 23px;
	font-size: 11px;
	font-weight: 400;
	line-height: 16px;
	text-transform: uppercase;
}

.post-meta span + span::before {
	content: "|";
	margin: 0 6px;
}

.post-meta a,
.post-title a {
	color: inherit;
}

.post-title {
	margin: 0 0 15px;
	font-size: 24px;
	line-height: 26px;
}

.post-title::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 24px;
	margin-right: 15px;
	vertical-align: top;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 24'%3E%3Cpath fill='%23c24747' d='M10.5 0H2a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V7.5h-6A1.5 1.5 0 0 1 10.5 6zM12 0v6h6z'/%3E%3Cpath fill='%23fff' d='M4 12h10v1.5H4zm0 3.5h10V17H4zm0 3.5h10v1.5H4z'/%3E%3C/svg%3E");
}

.read-more {
	display: block;
	width: fit-content;
	margin-bottom: 4px;
	line-height: 21px;
}

.read-more::after {
	content: "\2192";
	margin-left: 8px;
}

.post-single .entry p {
	margin-bottom: 17px;
}

.post-single figure {
	margin-block: 28px;
}

.post-nav {
	display: flex;
	justify-content: space-between;
	margin-top: 70px;
	padding-top: 26px;
	border-top: 1px solid #efefef;
}

.post-nav a:has(.next) {
	margin-left: auto;
	text-align: right;
}

.post-nav b {
	display: block;
	font-size: 18px;
	font-weight: 700;
	line-height: 26px;
	color: var(--wp--preset--color--dark);
}

.post-nav .prev::before {
	content: "\2190";
	margin-right: 8px;
}

.post-nav .next::after {
	content: "\2192";
	margin-left: 8px;
}

/* Pages built with blocks. Spacing comes from Spacer blocks, as it did with
   WPBakery, so blocks themselves start with no margins. */

:where(.blocks) :is(p, figure, h1, h2, h3, h4, h5, h6, hr, .wp-block-columns, .wp-block-buttons) {
	margin-block: 0;
}

.blocks p + :is(p, ul) {
	margin-top: 30px;
}

.blocks > .alignfull.is-layout-constrained {
	padding-inline: 5%;
}

.wp-block-button.is-style-outline > .wp-block-button__link {
	padding: 20px 40px;
	border-width: 1px;
}

.wp-block-button.is-style-outline {
	color: #2a353f;
}

.wp-block-button.is-style-light > .wp-block-button__link {
	border-color: #fff;
	background: #fff;
	color: var(--wp--preset--color--dark);
}

/* Carousel: the home hero and the recent news block */

.carousel {
	position: relative;
	display: grid;
}

.carousel > * {
	grid-area: 1 / 1;
	transition: opacity 0.8s, visibility 0.8s;
}

.carousel > :not(:first-child, .carousel-dots),
.carousel.is-ready > :not(.is-active, .carousel-dots) {
	opacity: 0;
	visibility: hidden;
}

.carousel.is-ready > .is-active {
	opacity: 1;
	visibility: visible;
}

/* In the editor all slides show one after another, so each one can be edited. */
.carousel > .block-editor-block-list__block {
	grid-area: auto;
	opacity: 1;
	visibility: visible;
}

.carousel-dots {
	position: absolute;
	inset: auto 0 30px;
	display: flex;
	justify-content: center;
	gap: 20px;
	margin: 0;
}

.carousel-dots button {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 1px solid #fff;
	border-radius: 50%;
	background: none;
	cursor: pointer;
}

.carousel-dots .is-active {
	background: #fff;
}

/* Home page */

.home .site-main {
	padding: 0;
}

.home .site-header {
	height: 100px;
}

.home .custom-logo {
	height: 43px;
}

.home .site-menu a {
	line-height: 100px;
}

.hero .wp-block-cover {
	min-height: clamp(200px, 43.75vw, 630px);
	padding: 74px max(5%, (100% - 1170px) / 2) 16px;
}

.hero .wp-block-cover h2 {
	margin-bottom: 20px;
	font-size: clamp(24px, 3.9vw, 56px);
	line-height: 1.07;
	color: #fff;
}

.hero .wp-block-cover p {
	max-width: 720px;
	margin-bottom: 40px;
	font-size: 18px;
	color: #fff;
}

.hero .wp-block-buttons {
	gap: 26px;
}

.hero .wp-block-button__link {
	min-width: 200px;
}

/* The old row was 15px wider than the content on each side. */
.practice-areas {
	padding-inline: max(5%, (100% - 1200px) / 2);
}

.practice-areas .wp-block-columns {
	gap: 0;
}

.practice-areas .wp-block-column {
	padding: 25px 30px 40px;
}

.practice-areas .wp-block-column:not(:last-child) {
	border-right: 1px solid #f0f0f0;
}

.practice-areas h2,
.clients .wp-block-column h2 {
	margin-top: 20px;
	padding-bottom: 14px;
}

.practice-areas p,
.expertise .wp-block-column p {
	font-size: 14px;
	line-height: 1.6;
}

.expertise .wp-block-separator {
	border: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	opacity: 1;
}

/* Each item keeps 60px below it, so the spacing also holds when columns stack. */
.expertise .wp-block-columns,
.clients .wp-block-columns {
	gap: 0 30px;
}

.expertise .wp-block-column,
.clients .wp-block-column {
	padding-bottom: 60px;
}

.expertise h4 {
	color: #fff;
}

.expertise h4::after {
	content: "";
	display: block;
	width: 40px;
	margin: 9px 0 12.8px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.expertise .wp-block-column p {
	color: var(--wp--preset--color--muted);
}

.view-all a::after {
	content: "\2192";
	margin-left: 8px;
}

.experts .team-cards {
	gap: 0;
	margin-bottom: 0;
}

.recent-news {
	display: grid;
	grid-template-columns: 1fr auto;
}

.recent-news h2 {
	margin-bottom: 44px;
}

.recent-news h2 a,
.recent-news h4 a {
	color: inherit;
}

.recent-news .carousel {
	grid-column: 1 / -1;
}

.carousel-arrows {
	display: flex;
	gap: 10px;
}

.carousel-arrows button {
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 20px;
	color: var(--wp--preset--color--dark);
	cursor: pointer;
}

.recent-news article + article {
	margin-top: 43px;
}

.recent-news .recent-news-date {
	margin-bottom: 8px;
	font-size: 11px;
	font-weight: 400;
	line-height: 16px;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
}

.recent-news h4 {
	margin-bottom: 8px;
}

.consult {
	gap: 0;
}

/* 10% of each column, as the old theme had it: 5vw side by side, 10vw stacked. */
.consult > .wp-block-column {
	padding-inline: 5vw;
}

.consult-photo {
	background: url("images/consult-bg.jpg") center / cover;
}

.consult label {
	display: block;
	margin-bottom: 15px;
}

.consult :is(input:not([type="submit"]), textarea) {
	display: block;
	box-sizing: border-box;
	width: 100%;
	padding: 9px 10px;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.4);
	background: none;
	font: 400 16px/24px Roboto, sans-serif;
	color: #fff;
}

.consult textarea {
	height: 91px;
}

.consult ::placeholder {
	color: #fff;
	opacity: 1;
}

.consult [type="submit"] {
	padding: 11px 34px;
	border: 1px solid #fff;
	background: #fff;
	font: 400 12px/20px Roboto, sans-serif;
	text-transform: uppercase;
	color: #434c55;
	cursor: pointer;
}

/* Contacts page */

.contact-boxes h4 {
	padding-bottom: 9px;
	line-height: 1.4;
}

.contact-boxes p {
	line-height: 1.57;
	color: #909aa3;
}

/* 404 */

.error-404 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 680px;
	text-align: center;
}

.error-404 h1 {
	margin: 0 0 20px;
	font-size: clamp(87px, 11.2vw, 161px);
	line-height: 1;
}

.error-404 h2 {
	margin: 0 0 20px;
	font-size: 36px;
	line-height: 40px;
}

.error-404 p {
	margin: 0 0 30px;
}

/* Footer */

.site-footer {
	font-weight: 400;
}

.footer-widgets {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 35px 30px;
}

.footer-widgets p {
	margin: 0 0 30px;
}

.footer-widgets img {
	margin-bottom: 25px;
	vertical-align: top;
}

.footer-widgets strong {
	font-weight: 400;
	color: var(--wp--preset--color--dark);
}

.widget-title {
	margin: 0;
	padding-bottom: 10px;
	font-size: 16px;
	line-height: 30px;
}

.copyright {
	margin-block: 0;
	font-size: 12px;
}

@media (max-width: 1200px) {
	.home .site-menu {
		top: 100px;
	}

	.home .site-menu a {
		line-height: 20px;
	}

	.consult-icon {
		display: none;
	}

	.carousel-dots {
		display: none;
	}

	.team-filter button {
		margin: 0 20px 5px 0;
		padding-bottom: 5px;
	}
}

@media (max-width: 767px) {
	.footer-widgets,
	.with-sidebar {
		grid-template-columns: 1fr;
	}

	.with-sidebar .sidebar {
		grid-row: auto;
		padding-top: 35px;
	}

	.team-photo {
		margin-bottom: 40px;
	}

	.hero .wp-block-cover {
		padding-block: 0;
	}

	.hero .wp-block-cover p {
		display: none;
	}

	.hero .wp-block-cover h2 {
		margin-bottom: 25px;
	}

	.hero .wp-block-button__link {
		min-width: 0;
		padding: 8px 25px;
		font-size: 10px;
	}
}

@media (max-width: 781px) {
	.consult > .wp-block-column {
		padding-inline: 10vw;
	}
}

@media (max-width: 600px) {
	.team-cards {
		grid-template-columns: 1fr;
	}
}
