/*
Theme Name: Maximov Agency
Theme URI: https://maximov.agency
Author: Maximov Agency
Description: Gutenberg block theme for Maximov Agency. Forked from the GPL-licensed Ollie block theme.
Tags: blog, portfolio, entertainment, grid-layout, one-column, two-columns, three-columns, four-columns, block-patterns, block-styles, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, rtl-language-support, style-variations, template-editing, theme-options, translation-ready, wide-blocks
Tested up to: 7.1
Requires PHP: 7.3
Version: 1.0.1
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: maximov-agency

Based on Ollie WordPress Theme, (C) 2026 Mike McAlister.
Maximov Agency and Ollie are distributed under the terms of the GNU GPL.
*/

/* CSS Reset
---------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

b,
strong {
	font-weight: var(--wp--custom--font-weight--semi-bold);
}

ol,
ul {
	padding: 0;
}

ol:where(:not([class*="wp-block"])),
ol:where(.wp-block-list),
ul:where(:not([class*="wp-block"])),
ul:where(.wp-block-list) {
	padding-inline-start: var(--wp--preset--spacing--medium);
}

div[class*="wp-block-"] figcaption {
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--x-small);
	margin-bottom: 0;
	margin-top: 20px;
	text-align: center;
}

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

/* Temporary fix for text-decoration-thickness in Firefox */
@-moz-document url-prefix() {
	a {
		text-decoration-thickness: .1rem !important;
	}
}

/* Standardize form styling
--------------------------------------------- */

input,
button,
textarea,
select {
	font: inherit;
}

input[type="button"],
input[type="email"],
input[type="search"],
input[type="submit"],
input[type="text"],
textarea {
	-webkit-appearance: none;
	appearance: none;
}

input:not([type="submit"]):not([type="radio"]),
select,
textarea,
.wp-block-post-comments-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wp-block-post-comments-form textarea {
	color: var(--wp--preset--color--main);
	border-radius: 5px;
	border: solid 1px color-mix(in srgb, var(--wp--preset--color--tertiary) 100%, var(--wp--preset--color--main) 20%);
	padding: .5em 1em;
	font-size: var(--wp--preset--font-size--small);
	background-color: #fff;
	box-shadow: 
		0 1px 2px rgba(0, 0, 0, 0.02),
		0 0.5px 1px rgba(0, 0, 0, 0.04);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline-color: var(--wp--preset--color--main);
	outline-offset: 1px;
}

input[type="checkbox"],
input[type="image"],
input[type="radio"] {
	width: auto;
}

select {
	-webkit-appearance: none;
	appearance: none;
	background: var(--wp--preset--color--base) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=) no-repeat;
    background-size: 16px;
    background-position: calc(100% - 12px) 50%;
	padding-right: 2.2em;
}

label {
	width: 100%;
	display: block;
}

::placeholder {
	color: var(--wp--preset--color--secondary);
	opacity: 0.75;
}

/* Helper styles
---------------------------------------------------------------------------- */

a.more-link {
	display: block;
}

/* Inline code */
*:not(.wp-block-code) > code {
	background-color: var(--wp--preset--color--tertiary);
	padding: 3px 5px;
	position: relative;
	border-radius: 3px;
}

.wp-block-categories {
	position: relative;
}

/* Remove margin on term description on archive pages */
.wp-block-term-description p:last-child {
	margin-bottom: 0;
}

/* Remove last separator on post list */
.remove-border-and-padding .wp-block-post-template li:last-child .wp-block-separator {
	display: none;
}

/* Hide post meta div if no tags assigned */
.single .wp-block-group:has(> .post-meta:empty) {
	display: none;
}

.wp-block-group:empty:has(+ .comment-respond) {
	display: none;
}

.row-logos > figure {
	flex-shrink: 1 !important;
}

/* Sticky header */

body:not(.wp-admin) header:has(>.is-position-sticky) {
	position: sticky;
	top: calc( 0px + var( --wp-admin--admin-bar--height, 0px ) );
	z-index: 100;
}

/* Account for admin bar on mobile */

@media (max-width: 600px) {
	header:has(>.is-position-sticky) {
		top: 0;
	}
}

/* Partial sticky header: when one row inside the header is sticky, dissolve
   the header wrappers so that row can stick on its own while rows above
   scroll away. Wrapper styling won't render while dissolved. */

body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky):not(:has(> .is-position-sticky)),
body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky):not(:has(> .is-position-sticky)) > .wp-block-group {
	display: contents;
}

/* Cancel alignfull negative margins — the dissolved wrapper's compensating
   padding no longer renders. */

body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky):not(:has(> .is-position-sticky)) > .wp-block-group > .alignfull {
	margin-left: 0;
	margin-right: 0;
}

body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky) .is-position-sticky {
	z-index: 100;
}

/* Mobile helper classes */

@media (max-width: 781px) {
	.ollie-hide-on-mobile {
		display: none;
	}

	.ollie-unstick-mobile {
		position: static;
	}

	header:has(>.ollie-unstick-mobile) {
		position: static;
	}
}

/* Table
--------------------------------------------- */

.wp-block-table table {
	background: var(--wp--preset--color--base);
	border-radius: 5px;
	border: solid 1px var(--wp--preset--color--border-light);
	font-size: var(--wp--preset--font-size--x-small);
}
.wp-block-table.is-style-stripes {
	border-bottom: none;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background-color: var(--wp--preset--color--tertiary);
}

.wp-block-table td, 
.wp-block-table th,
.wp-block-table thead {
	border: none;
	border-bottom: solid 1px color-mix(in srgb, var(--wp--preset--color--border-light) 50%, var(--wp--preset--color--base) 5%);
}

.wp-block-table th,
.wp-block-table tfoot {
	text-align: left;
	background-color: color-mix(in srgb, var(--wp--preset--color--tertiary) 75%, var(--wp--preset--color--base) 5%);
}

.wp-block-table td, 
.wp-block-table th {
	padding: .8em 1em;
}

.wp-block-table tfoot {
	border-top: solid 1px var(--wp--preset--color--border-light);
}

.wp-block-table tfoot td {
	border-bottom: none;
}

/* Maximov Agency visual system
---------------------------------------------------------------------------- */
:root { --maximov-deep:#062f2d; --maximov-teal:#075f59; --maximov-mint:#8dd8cf; --maximov-ink:#202725; --maximov-soft:#f3f7f6; --maximov-line:#d8e4e2; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { color:var(--maximov-ink); font-size:clamp(1rem,.96rem + .18vw,1.125rem); }
.maximov-header { position:sticky; top:0; z-index:50; padding:16px max(22px,4vw); background:rgba(255,255,255,.94); border-bottom:1px solid var(--maximov-line); backdrop-filter:blur(18px); }
.maximov-header > .wp-block-group { min-height:50px; }
.maximov-logo a { font-size:1.2rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.maximov-logo a::after { content:' · Agency'; font-weight:400; }
.maximov-header .wp-block-navigation { font-size:.9rem; font-weight:600; }
.maximov-header .wp-block-button__link { padding:.75rem 1rem; }
.maximov-hero { color:#fff; }
.maximov-hero .wp-block-cover__background { background:linear-gradient(90deg,rgba(6,47,45,.98) 0%,rgba(7,95,89,.92) 45%,rgba(6,47,45,.45) 100%) !important; opacity:1 !important; }
.maximov-hero h1 { max-width:14ch; letter-spacing:-.045em; line-height:.95; margin-block:1.1rem; }
.maximov-hero p { max-width:58ch; line-height:1.55; }
.maximov-kicker { color:var(--maximov-mint); font-size:.78rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.maximov-section { padding:clamp(76px,8vw,128px) max(22px,5vw); }
.maximov-section > h2 { max-width:16ch; letter-spacing:-.035em; line-height:1; margin:.5rem 0 3rem; }
.service-grid { gap:0; margin-block:0 !important; }
.service-grid .wp-block-column { min-height:215px; padding:28px; border:1px solid var(--maximov-line); margin:-1px 0 0 -1px; display:flex; flex-direction:column; justify-content:flex-end; }
.service-grid h3 { color:var(--maximov-teal); font-size:1.35rem; }
.work-section,.industries-section { background:var(--maximov-deep) !important; }
.steps-grid { gap:0; border-top:1px solid rgba(255,255,255,.2); }
.steps-grid .wp-block-column { padding:28px 20px; border-right:1px solid rgba(255,255,255,.2); }
.steps-grid strong { display:block; color:var(--maximov-mint); font-size:2.4rem; margin-bottom:2.5rem; }
.pricing-grid { align-items:stretch !important; }
.pricing-grid .wp-block-column { padding:32px; border:1px solid var(--maximov-line); border-radius:24px; }
.pricing-grid .is-featured { color:#fff; background:var(--maximov-teal); border-color:var(--maximov-teal); transform:translateY(-12px); }
.pricing-grid strong { display:block; margin-top:2rem; font-size:1.3rem; }
.maximov-calculator { max-width:1000px; padding:clamp(24px,4vw,54px); background:#fff; border:1px solid var(--maximov-line); border-radius:28px; box-shadow:0 24px 70px rgba(6,47,45,.08); }
.calculator-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
.calculator-tabs button { min-height:48px; padding:10px 18px; color:var(--maximov-teal); background:transparent; border:1px solid var(--maximov-line); border-radius:999px; cursor:pointer; }
.calculator-tabs button[aria-selected="true"] { color:#fff; background:var(--maximov-teal); border-color:var(--maximov-teal); }
.calculator-tabs button:focus-visible,.calculator-field select:focus-visible { outline:3px solid var(--maximov-mint); outline-offset:3px; }
.calculator-field { max-width:420px; margin-bottom:26px; }
.calculator-field span { display:block; margin-bottom:8px; font-weight:600; }
.calculator-field select { width:100%; min-height:52px; }
.calculator-result { display:grid; grid-template-columns:1fr 1fr 1.5fr; gap:16px; margin-bottom:24px; }
.calculator-result p { padding:20px; background:var(--maximov-soft); border-radius:18px; margin:0; }
.calculator-result span,.calculator-result strong { display:block; }
.calculator-result span { color:#5d6d6a; font-size:.85rem; }
.calculator-result strong { color:var(--maximov-teal); font-size:clamp(1.5rem,2.8vw,2.5rem); margin-top:8px; }
.lead-card { padding:28px; color:var(--maximov-ink); background:rgba(255,255,255,.96); border:1px solid rgba(255,255,255,.5); border-radius:26px; box-shadow:0 30px 80px rgba(0,0,0,.2); }
.lead-card__status { color:var(--maximov-teal); font-size:.8rem; font-weight:700; }
.lead-card h3 { margin:.5rem 0 1.4rem; font-size:1.5rem; }
.lead-card dl { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:0; }
.lead-card dl div { padding-bottom:12px; border-bottom:1px solid var(--maximov-line); }
.lead-card dt { color:#697774; font-size:.76rem; }
.lead-card dd { margin:4px 0 0; font-size:.92rem; font-weight:600; }
.lead-card blockquote { margin:18px 0; padding:16px; background:var(--maximov-soft); border-radius:14px; font-size:.9rem; }
.lead-card__channels { display:flex; gap:8px; }
.lead-card__channels span { padding:6px 10px; color:var(--maximov-teal); background:#e7f4f2; border-radius:999px; font-size:.75rem; font-weight:700; }
.lead-card audio { width:100%; margin-top:16px; }
.industry-card,.case-card { height:100%; overflow:hidden; background:#fff; color:var(--maximov-ink); border:1px solid var(--maximov-line); border-radius:22px; }
.industry-card > :not(figure),.case-card > :not(figure) { margin-inline:24px; }
.industry-card { background:rgba(255,255,255,.07); color:#fff; border-color:rgba(255,255,255,.16); }
.faq-section details { max-width:900px; padding:22px 0; border-bottom:1px solid var(--maximov-line); }
.faq-section summary { color:var(--maximov-deep); font-size:1.15rem; font-weight:700; cursor:pointer; }
.brief-section { background:var(--maximov-teal) !important; }
.brief-section .wp-block-button__link { color:var(--maximov-deep) !important; background:#fff !important; }
.maximov-form { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:960px; margin-top:36px; }
.maximov-form label { font-size:.88rem; font-weight:600; }
.maximov-form input,.maximov-form textarea { width:100%; margin-top:7px; color:var(--maximov-ink); background:#fff; border:0; border-radius:12px; }
.maximov-form .form-wide { grid-column:1/-1; }
.maximov-form .form-consent { display:flex; align-items:center; gap:10px; font-weight:400; }
.maximov-form .form-consent input { width:auto; margin:0; }
.maximov-form button { justify-self:start; color:var(--maximov-deep); background:#fff; border:0; cursor:pointer; }
.form-status--success { padding:16px; color:var(--maximov-deep); background:#fff; border-radius:12px; }
.maximov-footer { padding:64px max(22px,5vw) 32px; }
.maximov-footer ul { list-style:none; padding:0; }
@media (max-width:960px) {
	.maximov-header .wp-block-buttons { display:none; }
	.maximov-hero .wp-block-columns { flex-direction:column; }
	.maximov-hero .wp-block-column { flex-basis:auto !important; width:100%; }
	.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); }
	.calculator-result { grid-template-columns:1fr 1fr; }
	.calculator-result p:last-child { grid-column:1/-1; }
}
@media (max-width:620px) {
	.maximov-header { padding:12px 16px; }
	.maximov-logo a { font-size:.92rem; }
	.maximov-hero { min-height:auto !important; padding-block:70px; }
	.maximov-section { padding:66px 18px; }
	.service-grid,.pricing-grid { gap:12px; }
	.service-grid .wp-block-column { min-height:170px; margin:0; }
	.steps-grid { grid-template-columns:1fr 1fr; }
	.steps-grid .wp-block-column { border-bottom:1px solid rgba(255,255,255,.2); }
	.pricing-grid .is-featured { transform:none; }
	.calculator-tabs { flex-direction:column; }
	.calculator-tabs button { width:100%; }
	.calculator-result { grid-template-columns:1fr; }
	.calculator-result p:last-child { grid-column:auto; }
	.lead-card dl { grid-template-columns:1fr; }
	.maximov-form { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
