/* =========================================================
   LARGE TABLET / SMALL DESKTOP
   <= 1199px
========================================================= */

@media (max-width: 1199px) {

	.dn-service-page .dn-container {
		width: min(calc(100% - 48px), var(--dn-container-width));
	}

	.dn-service-page .dn-inner-hero-layout {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(380px, .9fr);
		gap: 42px;
		padding-top: 170px;
		padding-bottom: 58px;
	}

	.dn-service-page .dn-inner-hero-title {
		font-size: 48px;
	}

	.dn-service-page .dn-inner-hero-custom {
		padding: 24px;
	}

	.dn-service-page .dn-service-process {
		gap: 24px;
	}

	.dn-service-page .dn-service-review-layout {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(360px, .9fr);
		gap: 40px;
	}

	.dn-service-page .dn-service-choice-card {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(360px, .9fr);
		gap: 38px;
		padding: 38px 30px;
	}

}


/* =========================================================
   TABLET
   <= 991px
========================================================= */

@media (max-width: 991px) {

	.dn-service-page .dn-container {
		width: min(calc(100% - 40px), var(--dn-container-width));
	}

	/* -----------------------------------------------------
	   SECTION TYPOGRAPHY / SPACING
	----------------------------------------------------- */

	.dn-service-page .dn-section,
	.dn-service-page .dn-service-section {
		padding-top: 68px;
		padding-bottom: 68px;
	}

	.dn-service-page .dn-service-section.dn-section--soft {
		padding-top: 68px;
		padding-bottom: 68px;
	}

	.dn-service-page .dn-section-heading {
		margin-bottom: 30px;
	}

	.dn-service-page .dn-section-title {
		font-size: 40px;
	}

	.dn-service-page .dn-section-description {
		font-size: 15px;
	}

	/* -----------------------------------------------------
	   HERO
	----------------------------------------------------- */

	.dn-service-page .dn-inner-hero-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 34px;
		min-height: 0;
		padding-top: 150px;
		padding-bottom: 56px;
	}

	.dn-service-page .dn-inner-hero-content {
		max-width: 760px;
	}

	.dn-service-page .dn-inner-hero-title {
		font-size: 44px;
		line-height: 1.1;
	}

	.dn-service-page .dn-inner-hero-description {
		max-width: 720px;
	}

	.dn-service-page .dn-inner-hero-visual,
	.dn-service-page .dn-inner-hero-custom {
		width: 100%;
		max-width: 760px;
		margin-right: auto;
		margin-left: auto;
	}

	.dn-service-page .dn-inner-hero-image {
		margin-right: auto;
		margin-left: auto;
	}

	.dn-service-page .dn-inner-hero-badges {
		flex-wrap: wrap;
	}

	/* HubSpot / embedded form layouts */
	.dn-service-page .dn-inner-hero-custom .form-columns-2,
	.dn-service-page .dn-inner-hero-custom .form-columns-3 {
		max-width: none !important;
	}

	.dn-service-page .dn-inner-hero-custom .form-columns-2 .hs-form-field,
	.dn-service-page .dn-inner-hero-custom .form-columns-3 .hs-form-field {
		float: none !important;
		width: 100% !important;
		margin-right: 0 !important;
	}

	/* -----------------------------------------------------
	   CONTENT GRIDS
	----------------------------------------------------- */

	.dn-service-page .dn-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dn-service-page .dn-service-card {
		min-height: 0;
	}

	.dn-service-page .dn-service-audience-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}

	.dn-service-page .dn-service-related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Touch devices should not depend on hover for the arrow. */
	.dn-service-page .dn-service-related-arrow {
		opacity: 1;
		transform: none;
	}

	/* -----------------------------------------------------
	   PROCESS - VERTICAL TIMELINE
	----------------------------------------------------- */

	.dn-service-page .dn-service-process {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		max-width: 720px;
		margin: 38px auto 0;
		padding-left: 0;
	}

	.dn-service-page .dn-service-process::before {
		top: 31px;
		right: auto;
		bottom: 31px;
		left: 30px;
		width: 1px;
		height: auto;
		background: linear-gradient(
			180deg,
			rgba(4, 130, 34, .15),
			rgba(4, 130, 34, .55),
			rgba(4, 130, 34, .15)
		);
	}

	.dn-service-page .dn-service-process li {
		min-height: 96px;
		padding: 0 0 30px 92px;
	}

	.dn-service-page .dn-service-process li:last-child {
		padding-bottom: 0;
	}

	.dn-service-page .dn-service-process-number {
		position: absolute;
		top: 0;
		left: 0;
		margin: 0;
	}

	/* -----------------------------------------------------
	   DARK REVIEW
	----------------------------------------------------- */

	.dn-service-page .dn-service-review {
		padding: 64px 0;
	}

	.dn-service-page .dn-service-review-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 34px;
	}

	.dn-service-page .dn-service-review-content,
	.dn-service-page .dn-service-review-summary {
		width: 100%;
		max-width: 760px;
		margin-right: auto;
		margin-left: auto;
	}

	.dn-service-page .dn-service-review-content h2 {
		font-size: 40px;
	}

	/* -----------------------------------------------------
	   WHY CHOOSE US
	----------------------------------------------------- */

	.dn-service-page .dn-service-choice-section {
		padding-top: 64px;
		padding-bottom: 72px;
	}

	.dn-service-page .dn-service-choice-card {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
		padding: 34px 28px;
	}

	.dn-service-page .dn-service-choice-content .dn-section-description {
		max-width: 720px;
	}

	.dn-service-page .dn-service-choice-stats {
		width: 100%;
	}

	/* -----------------------------------------------------
	   FAQ
	----------------------------------------------------- */

	.dn-service-page .dn-service-faq-section {
		padding-top: 68px;
		padding-bottom: 68px;
	}

	/* -----------------------------------------------------
	   FINAL CTA
	----------------------------------------------------- */

	.dn-service-page .free-trial-final-cta {
		padding-top: 62px;
		padding-bottom: 66px;
	}

	.dn-service-page .free-trial-final-cta h2 {
		font-size: 40px;
	}

}


/* =========================================================
   MOBILE / SMALL TABLET
   <= 767px
========================================================= */

@media (max-width: 767px) {
	.dn-service-page .dn-service-grid--2 {
        grid-template-columns: minmax(0, 1fr);
    }

    .dn-service-page .dn-service-card--dark {
        min-height: 0;
    }

    .dn-service-page .dn-service-table {
        min-width: 680px;
        font-size: 13px;
    }

    .dn-service-page .dn-service-table th,
    .dn-service-page .dn-service-table td {
        padding: 14px 16px;
    }

	.dn-service-page .dn-container {
		width: min(calc(100% - 32px), var(--dn-container-width));
	}

	/* -----------------------------------------------------
	   SECTION TYPOGRAPHY / SPACING
	----------------------------------------------------- */

	.dn-service-page .dn-section,
	.dn-service-page .dn-service-section {
		padding-top: 54px;
		padding-bottom: 54px;
	}

	.dn-service-page .dn-service-section.dn-section--soft {
		padding-top: 54px;
		padding-bottom: 54px;
	}

	.dn-service-page .dn-section-heading {
		margin-bottom: 26px;
	}

	.dn-service-page .dn-section-eyebrow,
	.dn-service-page .faq-section-eyebrow {
		font-size: 12px;
	}

	.dn-service-page .dn-section-title,
	.dn-service-page .faq-section-title {
		font-size: 34px;
		line-height: 1.15;
		letter-spacing: -.5px;
	}

	.dn-service-page .dn-section-description,
	.dn-service-page .faq-section-description {
		font-size: 15px;
		line-height: 1.6;
	}

	/* -----------------------------------------------------
	   HERO
	----------------------------------------------------- */

	.dn-service-page .dn-inner-hero-layout {
		gap: 28px;
		padding-top: 150px;
		padding-bottom: 44px;
	}

	.dn-service-page .dn-inner-hero-eyebrow {
		min-height: 32px;
		margin-bottom: 12px;
		padding: 4px 10px;
		font-size: 12px;
	}

	.dn-service-page .dn-inner-hero-title {
		font-size: 38px;
		line-height: 1.12;
		letter-spacing: -.8px;
	}

	.dn-service-page .dn-inner-hero-description {
		margin-top: 14px;
		font-size: 15px;
		line-height: 1.6;
	}

	.dn-service-page .dn-inner-hero-badges {
		gap: 10px;
		margin-top: 20px;
	}

	.dn-service-page .dn-inner-hero-badge-image {
		max-width: 72px;
		height: 64px;
	}

	.dn-service-page .dn-inner-hero-actions {
		flex-wrap: wrap;
		margin-top: 22px;
	}

	.dn-service-page .dn-inner-hero-custom {
		padding: 20px;
	}

	/* -----------------------------------------------------
	   STATISTICS
	----------------------------------------------------- */

	.dn-service-page .dn-inner-stats-list,
	.dn-service-page .dn-inner-stats-count-1 .dn-inner-stats-list,
	.dn-service-page .dn-inner-stats-count-2 .dn-inner-stats-list,
	.dn-service-page .dn-inner-stats-count-3 .dn-inner-stats-list,
	.dn-service-page .dn-inner-stats-count-4 .dn-inner-stats-list,
	.dn-service-page .dn-inner-stats-count-5 .dn-inner-stats-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dn-service-page .dn-inner-stat {
		min-height: 112px;
		padding: 16px 12px;
		border-left: 0;
	}

	.dn-service-page .dn-inner-stat:nth-child(even) {
		border-left: 1px solid rgba(255, 255, 255, .15);
	}

	.dn-service-page .dn-inner-stat:nth-child(n + 3) {
		border-top: 1px solid rgba(255, 255, 255, .15);
	}

	.dn-service-page .dn-inner-stat-value {
		font-size: 26px;
	}

	.dn-service-page .dn-inner-stat-description {
		font-size: 13px;
	}

	.dn-service-page .dn-inner-stat-label {
		font-size: 12px;
	}

	/* -----------------------------------------------------
	   SERVICE CARDS / GRIDS
	----------------------------------------------------- */

	.dn-service-page .dn-service-grid,
	.dn-service-page .dn-service-audience-grid,
	.dn-service-page .dn-service-related-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.dn-service-page .dn-service-grid {
		gap: 14px;
	}

	.dn-service-page .dn-service-card,
	.dn-service-page .dn-service-audience-card {
		min-height: 0;
		padding: 24px 18px;
	}

	.dn-service-page .dn-service-audience-card {
		align-items: flex-start;
		text-align: left;
	}

	.dn-service-page .dn-service-audience-card .dn-service-icon {
		margin-right: 0;
		margin-left: 0;
	}

	.dn-service-page .dn-service-related-card {
		min-height: 170px;
	}

	/* -----------------------------------------------------
	   PROCESS
	----------------------------------------------------- */

	.dn-service-page .dn-service-process {
		margin-top: 32px;
	}

	.dn-service-page .dn-service-process::before {
		left: 25px;
	}

	.dn-service-page .dn-service-process li {
		min-height: 84px;
		padding: 0 0 26px 76px;
	}

	.dn-service-page .dn-service-process-number {
		width: 52px;
		height: 52px;
		font-size: 20px;
	}

	/* -----------------------------------------------------
	   DARK REVIEW
	----------------------------------------------------- */

	.dn-service-page .dn-service-review {
		padding: 54px 0;
	}

	.dn-service-page .dn-service-review-content h2 {
		font-size: 34px;
		line-height: 1.15;
	}

	.dn-service-page .dn-service-review-content > p:not(.dn-service-review-eyebrow) {
		font-size: 15px;
	}

	.dn-service-page .dn-service-review-checks {
		grid-template-columns: minmax(0, 1fr);
		gap: 9px;
		margin-top: 20px;
		margin-bottom: 24px;
	}

	.dn-service-page .dn-service-review-summary {
		padding: 18px;
	}

	.dn-service-page .dn-service-review-summary dl > div {
		gap: 16px;
		padding: 12px 0;
	}

	/* -----------------------------------------------------
	   WHY CHOOSE US
	----------------------------------------------------- */

	.dn-service-page .dn-service-choice-section {
		padding-top: 54px;
		padding-bottom: 60px;
	}

	.dn-service-page .dn-service-choice-card {
		gap: 26px;
		padding: 28px 20px;
		border-radius: 12px;
	}

	.dn-service-page .dn-service-choice-stats {
		padding: 18px;
	}

	.dn-service-page .dn-service-choice-stats > div {
		gap: 16px;
		padding: 13px 0;
	}

	/* -----------------------------------------------------
	   FAQ
	----------------------------------------------------- */

	.dn-service-page .dn-service-faq-section {
		padding-top: 54px;
		padding-bottom: 54px;
	}

	.dn-service-page .faq-grid,
	.dn-service-page .faq-columns {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	.dn-service-page .faq-question-button {
		min-height: 62px;
		padding: 15px 16px;
		font-size: 15px;
	}

	.dn-service-page .faq-answer-inner {
		padding: 0 40px 16px 16px;
	}

	.dn-service-page .faq-answer p,
	.dn-service-page .faq-answer-inner p {
		font-size: 15px;
	}

	/* -----------------------------------------------------
	   FINAL CTA
	----------------------------------------------------- */

	.dn-service-page .free-trial-final-cta {
		padding-top: 52px;
		padding-bottom: 56px;
	}

	.dn-service-page .free-trial-final-cta h2 {
		font-size: 34px;
		line-height: 1.15;
	}

	.dn-service-page .free-trial-final-cta p {
		font-size: 15px;
	}

}


/* =========================================================
   SMALL MOBILE
   <= 479px
========================================================= */

@media (max-width: 479px) {
	.dn-service-page .dn-service-card-tag {
        font-size: 10px;
    }

    .dn-service-page .dn-service-table {
        min-width: 620px;
    }

	.dn-service-page .dn-container {
		width: min(calc(100% - 24px), var(--dn-container-width));
	}

	.dn-service-page .dn-section,
	.dn-service-page .dn-service-section {
		padding-top: 46px;
		padding-bottom: 46px;
	}

	.dn-service-page .dn-service-section.dn-section--soft {
		padding-top: 46px;
		padding-bottom: 46px;
	}

	.dn-service-page .dn-section-title,
	.dn-service-page .faq-section-title {
		font-size: 30px;
	}

	.dn-service-page .dn-inner-hero-layout { 
		padding-bottom: 38px;
	}

	.dn-service-page .dn-inner-hero-title {
		font-size: 34px;
	}

	.dn-service-page .dn-inner-hero-custom {
		padding: 16px;
	}

	.dn-service-page .dn-inner-hero-actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}

	.dn-service-page .dn-inner-hero-primary,
	.dn-service-page .dn-inner-hero-secondary,
	.dn-service-page .dn-inner-hero-actions .dn-btn {
		width: 100%;
	}

	.dn-service-page .dn-inner-hero-badge-image {
		max-width: 64px;
		height: 58px;
	}

	.dn-service-page .dn-service-card,
	.dn-service-page .dn-service-audience-card {
		padding: 22px 16px;
	}

	.dn-service-page .dn-service-review-content h2,
	.dn-service-page .free-trial-final-cta h2 {
		font-size: 30px;
	}

	.dn-service-page .dn-service-review .dn-btn,
	.dn-service-page .free-trial-final-cta .dn-btn {
		width: 100%;
	}

	.dn-service-page .dn-service-review-summary dl > div,
	.dn-service-page .dn-service-choice-stats > div {
		align-items: flex-start;
	}

	.dn-service-page .dn-service-review-summary dd,
	.dn-service-page .dn-service-choice-stats dd {
		max-width: 48%;
	}

	.dn-service-page .dn-service-related-content {
		padding-right: 24px;
	}

	.dn-service-page .dn-service-related-arrow {
		right: 16px;
		bottom: 18px;
	}

	.dn-service-page .faq-question-button {
		grid-template-columns: minmax(0, 1fr) 22px;
		gap: 12px;
		padding: 14px;
	}

	.dn-service-page .faq-answer-inner {
		padding: 0 36px 15px 14px;
	}

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

	.dn-service-page .dn-btn,
	.dn-service-page .dn-card--hover,
	.dn-service-page .dn-service-related-card,
	.dn-service-page .dn-service-related-arrow,
	.dn-service-page .faq-answer,
	.dn-service-page .faq-item,
	.dn-service-page .faq-question-button,
	.dn-service-page .faq-question-icon span {
		transition: none !important;
	}

	.dn-service-page .dn-btn:hover,
	.dn-service-page .dn-card--hover:hover,
	.dn-service-page .dn-service-related-card:hover {
		transform: none;
	}

}
