/* Near The Tracks — shared content styles (used by both the block theme and the Astra child theme). */

/* Labels above headings */
.ntt-eyebrow {
	font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif);
	font-size: 0.75rem !important;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	margin-bottom: 0.75rem !important;
}
.has-base-color.ntt-eyebrow,
.ntt-hero .ntt-eyebrow { color: rgba(255, 255, 255, 0.85); }

/* Hero */
.ntt-hero.wp-block-cover { align-items: flex-end; }
.ntt-hero .wp-block-cover__background {
	background: linear-gradient(15deg, rgba(10, 12, 16, 0.82) 0%, rgba(10, 12, 16, 0.45) 45%, rgba(10, 12, 16, 0.08) 100%) !important;
	opacity: 1 !important;
}
.ntt-hero h1 { max-width: 14ch; text-wrap: balance; }
.ntt-hero p { max-width: 46ch; }
.ntt-hero .wp-block-buttons { margin-top: 2rem; }

/* Headings balance nicely */
.ntt-page-header h1,
.wp-block-group h2 { text-wrap: balance; }
.ntt-page-header h1 { margin-top: 0.25rem; }

/* "Learn more →" links */
.ntt-more a {
	font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif);
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	color: var(--wp--preset--color--navy);
}
.ntt-more a:hover { text-decoration: underline; }

/* Image tiles: services + featured projects */
.ntt-services figure,
.ntt-tiles figure { overflow: hidden; margin-bottom: 1.25rem; }
.ntt-services figure img,
.ntt-tiles figure img { width: 100%; transition: transform 0.6s ease; }
.ntt-services figure a:hover img,
.ntt-tiles figure a:hover img { transform: scale(1.035); }
.ntt-tiles h3 { margin-bottom: 0.25rem; }
.ntt-tiles h3 a { color: inherit; text-decoration: none; }
.ntt-tiles h3 a:hover { text-decoration: underline; }
.ntt-tiles p { margin-top: 0; }

/* Process steps */
.ntt-step-num {
	font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif);
	font-weight: 700;
	font-size: 0.85rem !important;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--navy);
	border-top: 2px solid var(--wp--preset--color--ink);
	padding-top: 0.9rem;
	margin-bottom: 0.5rem !important;
}
.ntt-step h3 { margin-top: 0.25rem; }

/* Drawings on white get a hairline frame */
.ntt-framed img { border: 1px solid var(--wp--preset--color--line); background: #fff; }

/* Project galleries */
.ntt-gallery.wp-block-gallery.is-cropped .wp-block-image img { aspect-ratio: 4 / 3; }
.ntt-gallery .wp-block-image img { cursor: zoom-in; transition: opacity 0.2s ease; }
.ntt-gallery .wp-block-image:hover img { opacity: 0.92; }
.ntt-project h2[id],
.ntt-project [id] { scroll-margin-top: 110px; }
.ntt-project h2 { margin-top: 0; }

/* Project jump links */
.ntt-jumpbar { border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); }
.ntt-jump .wp-block-button__link { font-size: 0.85rem !important; padding: 0.55em 1.1em !important; }

/* Call-to-action band */
.ntt-cta h2 { color: #fff; margin-bottom: 0.5rem; }
.ntt-cta .ntt-cta-text { opacity: 0.85; margin-top: 0; }
.ntt-cta .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, 0.7); }
.ntt-cta .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.1); }

/* Placeholder text James should replace */
.ntt-todo {
	background: #fff8db;
	border-left: 3px solid #e0b100;
	padding: 0.75rem 1rem;
	font-size: 0.95rem;
	color: #6b5800;
}

/* Check-mark lists */
ul.ntt-checks { list-style: none; padding-left: 0 !important; margin: 1.5rem 0; }
ul.ntt-checks li { position: relative; padding-left: 1.9rem; margin-bottom: 0.6rem; }
ul.ntt-checks li::before {
	content: "";
	position: absolute; left: 0; top: 0.3em;
	width: 1.1rem; height: 1.1rem; border-radius: 50%;
	background: var(--wp--preset--color--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.2' d='M4 8.5l2.5 2.5L12 5.5'/%3E%3C/svg%3E") center / 80% no-repeat;
}

/* Contact column */
.ntt-contact-info p { margin: 0 0 1rem; }
.ntt-contact-info strong { display: block; font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--muted); margin-bottom: 0.15rem; }
.ntt-contact-info h3 { margin-top: 0; margin-bottom: 1.25rem; }
.ntt-contact-info .wp-block-separator { margin: 1.75rem 0 !important; }

/* Quote form */
.ntt-quote { scroll-margin-top: 110px; }
.ntt-quote__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25rem; }
.ntt-quote__form p { margin: 0 0 1.1rem; }
.ntt-quote__form label { display: block; font-family: var(--wp--preset--font-family--heading, Montserrat, sans-serif); font-weight: 600; font-size: 0.85rem; margin-bottom: 0.35rem; color: var(--wp--preset--color--ink); }
.ntt-quote__form label span { color: #b42318; }
.ntt-quote__form input,
.ntt-quote__form select,
.ntt-quote__form textarea {
	width: 100%; box-sizing: border-box;
	font: inherit; font-size: 1rem; color: var(--wp--preset--color--ink);
	background: #fff; border: 1px solid #c9ccd1; border-radius: 2px;
	padding: 0.75rem 0.85rem; line-height: 1.4;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ntt-quote__form textarea { min-height: 9rem; resize: vertical; }
.ntt-quote__form input:focus,
.ntt-quote__form select:focus,
.ntt-quote__form textarea:focus { outline: none; border-color: var(--wp--preset--color--navy); box-shadow: 0 0 0 3px rgba(14, 28, 79, 0.15); }
.ntt-quote__submit button { cursor: pointer; }
.ntt-quote__notice { padding: 0.9rem 1.1rem; margin-bottom: 1.5rem; border-radius: 2px; }
.ntt-quote__notice.is-success { background: #ecf7ef; border: 1px solid #a6d8b3; color: #14532d; }
.ntt-quote__notice.is-error { background: #fdf0ef; border: 1px solid #f1b5af; color: #7a1f17; }
.ntt-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 781px) {
	.ntt-quote__row { grid-template-columns: 1fr; }
	.ntt-tiles .wp-block-column:empty { display: none; }
	.ntt-row-reverse { flex-direction: column-reverse; }
	.ntt-hero { min-height: 78vh !important; }
	.ntt-cta .wp-block-buttons { justify-content: flex-start !important; }
	.ntt-tiles, .ntt-services, .ntt-steps { row-gap: 2.5rem; }
}
