/*
 * responsive.css — breakpoint overrides for base.css, components.css
 * and sections.css. Section vertical rhythm variable lives here so it
 * cascades everywhere from one place.
 */

@media (max-width: 1024px) {
	:root {
		--dws-section-gap: 80px;
	}
}

@media (max-width: 640px) {
	:root {
		--dws-section-gap: 60px;
	}
}

/* ---------------------------------------------------------------- */
/* Large screens — the 1280px container otherwise leaves large       */
/* stretches of unused space on desktop monitors and TVs.            */
/* ---------------------------------------------------------------- */

@media (min-width: 1440px) {
	:root {
		--dws-container: 1360px;
	}
}

@media (min-width: 1920px) {
	:root {
		--dws-container: 1600px;
		--dws-section-gap: 120px;
	}
}

@media (min-width: 2560px) {
	:root {
		--dws-container: 1920px;
		--dws-section-gap: 140px;
	}

	body {
		font-size: 18px;
	}
}

/* ---------------------------------------------------------------- */
/* Navigation — collapses to hamburger at <=992px                    */
/* ---------------------------------------------------------------- */

@media (max-width: 992px) {
	.dws-nav {
		display: none;
	}

	.dws-nav-row__cta {
		display: none;
	}

	.dws-logo {
		flex: 1;
		min-width: 0;
	}

	.dws-logo img {
		max-height: 40px;
		max-width: min(200px, 58vw);
	}

	.dws-menu-toggle {
		display: inline-flex;
	}

	.dws-mobile-menu {
		display: flex;
		flex-direction: column;
		position: fixed;
		inset: 0;
		z-index: 250;
		background: var(--dws-color-bg);
		padding: calc(88px + env(safe-area-inset-top, 0px)) 24px calc(32px + env(safe-area-inset-bottom, 0px));
		transform: translateX(100%);
		visibility: hidden;
		pointer-events: none;
		transition: transform var(--dws-transition), visibility var(--dws-transition);
		overflow-y: auto;
		overflow-x: hidden;
		-webkit-overflow-scrolling: touch;
	}

	.dws-mobile-menu.is-open {
		transform: translateX(0);
		visibility: visible;
		pointer-events: auto;
	}

	.dws-mobile-menu__list {
		display: flex;
		flex-direction: column;
		gap: 0;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.dws-mobile-menu__list .dws-nav-link {
		display: block;
		width: 100%;
		padding: 14px 40px 14px 4px;
		font-size: 1.15rem;
		font-weight: 600;
		color: var(--dws-color-text);
		border-bottom: 1px solid var(--dws-border);
		border-radius: 0;
		background: none;
	}

	.dws-mobile-menu__list .dws-nav-link:hover,
	.dws-mobile-menu__list .dws-nav-link:focus-visible {
		background: none;
		color: var(--dws-color-primary);
	}

	.dws-mobile-menu__list .menu-item.current-menu-item > .dws-nav-link {
		color: var(--dws-color-primary);
	}

	.dws-mobile-menu__list .menu-item.current-menu-item > .dws-nav-link::after {
		content: none;
	}

	.dws-mobile-menu__list .dws-submenu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		background: transparent;
		border: none;
		padding: 0 0 0 16px;
		max-height: 0;
		overflow: hidden;
		transition: max-height var(--dws-transition);
	}

	.dws-mobile-menu__list li.is-submenu-open > .dws-submenu {
		max-height: 600px;
	}

	.dws-submenu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		right: 0;
		top: 8px;
		width: 36px;
		height: 36px;
		background: transparent;
		border: 1px solid var(--dws-border);
		border-radius: 8px;
		color: var(--dws-color-text);
		font-size: 1.1rem;
	}

	.dws-mobile-menu__list li {
		position: relative;
	}

	.dws-mobile-menu__cta {
		margin-top: 28px;
		width: 100%;
		justify-content: center;
		flex-shrink: 0;
	}

	body.dws-menu-open {
		overflow: hidden;
	}

	html.dws-menu-open {
		overflow: hidden;
	}
}

@media (min-width: 993px) {
	.dws-mobile-menu {
		display: none !important;
	}
}

/* ---------------------------------------------------------------- */
/* Top bar                                                           */
/* ---------------------------------------------------------------- */

@media (max-width: 992px) {
	.dws-topbar {
		display: none;
	}
}

@media (max-width: 480px) {
	.dws-nav-row__inner {
		gap: 12px;
	}
}

/* ---------------------------------------------------------------- */
/* Hero                                                               */
/* ---------------------------------------------------------------- */

@media (max-width: 900px) {
	.dws-hero {
		padding-top: 24px;
	}

	.dws-hero__grid {
		grid-template-columns: 1fr;
	}

	.dws-hero__visual {
		max-width: 380px;
		margin-top: 16px;
	}
}

@media (max-width: 640px) {
	.dws-hero__benefits {
		grid-template-columns: 1fr;
	}

	.dws-hero__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.dws-hero__actions .dws-btn {
		justify-content: center;
	}
}

/* ---------------------------------------------------------------- */
/* About                                                              */
/* ---------------------------------------------------------------- */

@media (max-width: 900px) {
	.dws-about__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.dws-about__media {
		order: 2;
	}

	.dws-about__content {
		order: 1;
	}
}

@media (max-width: 640px) {
	.dws-about__features {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------------- */
/* Services                                                           */
/* ---------------------------------------------------------------- */

@media (max-width: 1024px) {
	.dws-services__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

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

/* ---------------------------------------------------------------- */
/* Why Choose Us                                                     */
/* ---------------------------------------------------------------- */

@media (max-width: 900px) {
	.dws-why__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.dws-why__features {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

/* ---------------------------------------------------------------- */
/* Testimonials                                                      */
/* ---------------------------------------------------------------- */

@media (max-width: 1024px) {
	.dws-testimonial-slider.is-static .dws-testimonial-slider__track {
		grid-template-columns: repeat(2, 1fr);
	}

	.dws-testimonial-slider.is-slider .dws-testimonial-card {
		flex: 0 0 calc((100% - 24px) / 2);
		margin-right: 24px;
	}
}

@media (max-width: 640px) {
	.dws-testimonial-slider.is-static .dws-testimonial-slider__track {
		grid-template-columns: 1fr;
	}

	.dws-testimonial-slider.is-slider .dws-testimonial-card {
		flex: 0 0 100%;
		margin-right: 0;
	}
}

/* ---------------------------------------------------------------- */
/* Contact CTA                                                       */
/* ---------------------------------------------------------------- */

@media (max-width: 1024px) {
	.dws-contact-cta__panel {
		padding: 40px 36px;
	}

	.dws-contact-cta__grid {
		gap: 40px 40px;
	}

	.dws-contact-cta__content .dws-section__heading {
		max-width: none;
	}
}

@media (max-width: 900px) {
	.dws-contact-cta__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.dws-contact-cta__content {
		text-align: center;
	}

	.dws-contact-cta__content .dws-section__heading,
	.dws-contact-cta__content .dws-section__desc {
		margin-inline: auto;
		max-width: 28ch;
	}
}

@media (max-width: 700px) {
	.dws-contact-cta__panel {
		padding: 28px 22px;
		border-radius: 20px;
	}

	.dws-contact-cta__form .dws-form-row,
	.dws-contact-cta__form .dws-form-row--3 {
		grid-template-columns: 1fr;
	}

	.dws-contact-cta__form .dws-form-footer {
		flex-direction: column;
		align-items: stretch;
	}

	.dws-contact-cta__form .dws-form-submit,
	.dws-contact-cta__form input[type="submit"] {
		width: 100%;
		justify-content: center;
	}
}

/* ---------------------------------------------------------------- */
/* Footer                                                             */
/* ---------------------------------------------------------------- */

@media (max-width: 1024px) {
	.dws-footer__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 40px;
	}

	.dws-footer__col--brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 640px) {
	.dws-footer__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.dws-footer__col--brand {
		grid-column: auto;
	}

	.dws-footer__bottom-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
}

/* ---------------------------------------------------------------- */
/* Blog / archive / single / related                                 */
/* ---------------------------------------------------------------- */

@media (max-width: 1024px) {
	.dws-post-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.dws-related__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 960px) {
	.dws-single__layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.dws-post-grid {
		grid-template-columns: 1fr;
	}

	.dws-related__grid {
		grid-template-columns: 1fr;
	}
}

/* ---------------------------------------------------------------- */
/* Generic container breathing room on small phones                  */
/* ---------------------------------------------------------------- */

@media (max-width: 400px) {
	.dws-container {
		padding-inline: 18px;
	}
}
