/*
Theme Name: Reprovet
Theme URI: https://www.reprovet.fi
Description: Reprovet Oy — block child theme replicating the Webflow design. Brand palette + self-hosted Open Sans / HK Grotesk Pro.
Author: Reprovet
Template: twentytwentyfive
Version: 0.1.0
Text Domain: reprovet
*/

/* Top contact bar */
/* Top utility bar — iOS system gray so it blends with the Safari chrome */
.rv-topbar-strip { background: #f2f2f7; }
.rv-topbar-inner { font-size: 0.9rem; }
.rv-contact { display: inline-flex; align-items: center; gap: 0.4rem; text-decoration: none; color: var(--wp--preset--color--slate-blue); }
.rv-contact:hover { text-decoration: none; color: var(--wp--preset--color--link-blue); }
.rv-contact svg { width: 15px; height: 15px; fill: currentColor; flex: 0 0 auto; }
@media (max-width: 600px) {
	.rv-topbar-inner { justify-content: center !important; gap: 1.3rem; }
}

/* Language switcher — flag dropdown (details/summary, no JS) */
.rv-langselect { position: relative; }
.rv-langselect summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 0.35rem; }
.rv-langselect summary::-webkit-details-marker { display: none; }
.rv-langselect summary img { width: 30px; height: auto; display: block; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.rv-caret { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; opacity: .6; transition: transform .15s; }
.rv-langselect[open] .rv-caret { transform: rotate(180deg); }
.rv-langselect__menu { position: absolute; right: 0; top: calc(100% + 10px); list-style: none; margin: 0; padding: 0.4rem; min-width: 160px; background: #fff; border: 1px solid var(--wp--preset--color--light-gray); border-radius: 8px; box-shadow: 0 10px 28px rgba(0,0,0,.14); z-index: 1100; }
.rv-langselect__menu li { margin: 0; }
.rv-langselect__menu a { display: flex; align-items: center; gap: 0.65rem; padding: 0.5rem 0.6rem; text-decoration: none; color: var(--wp--preset--color--contrast); border-radius: 6px; white-space: nowrap; }
.rv-langselect__menu a:hover { background: var(--wp--preset--color--light-gray); }
.rv-langselect__menu img { width: 26px; height: auto; display: block; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
.rv-lang-current a { font-weight: 600; }

/* Main navigation (desktop inline + CSS-only hamburger on mobile) */
.rv-nav { position: relative; }
.rv-mainnav { display: flex; align-items: center; }
.rv-nav-toggle { display: none; }
.rv-burger { display: none; }
.rv-menu { display: flex; align-items: center; gap: 1.4rem; flex-wrap: wrap; }
.rv-navlink { text-transform: uppercase; font-size: 0.9rem; text-decoration: none; color: var(--wp--preset--color--contrast); white-space: nowrap; }
.rv-navlink:hover, .rv-navlink--active { color: var(--wp--preset--color--link-blue); }
.rv-menu .rv-langs { margin-left: 0.3rem; }

@media (max-width: 900px) {
	.rv-burger { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 36px; height: 36px; cursor: pointer; }
	.rv-burger span { display: block; height: 2px; width: 24px; background: var(--wp--preset--color--contrast); border-radius: 2px; transition: .2s; }
	.rv-menu {
		display: none; position: absolute; top: 100%; right: 0; left: 0;
		flex-direction: column; align-items: flex-start; gap: 1.2rem;
		background: #fff; padding: 1.3rem 1.5rem; box-shadow: 0 10px 28px rgba(0,0,0,.12);
		border-top: 1px solid var(--wp--preset--color--light-gray); z-index: 1000;
	}
	.rv-nav-toggle:checked ~ .rv-menu { display: flex; }
	.rv-navlink { font-size: 1.05rem; }
	.rv-menu .rv-langselect { margin-top: 0.5rem; }
	.rv-menu .rv-langselect__menu { right: auto; left: 0; }
}

/* Hero: left-anchored text column inside the wide container */
.rv-hero-text { max-width: 720px; }

/* Contact form (CF7) */
.wpcf7-form .rv-field { margin-bottom: 1.1rem; }
.wpcf7-form .rv-field label { display: block; font-weight: 600; margin-bottom: 0.35rem; }
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
	width: 100%; box-sizing: border-box; padding: 0.6rem 0.85rem;
	border: 1px solid #d0d5dd; border-radius: 6px; font-size: 1rem;
	font-family: inherit; background: #fff;
}
.wpcf7-form textarea { min-height: 170px; resize: vertical; }
.wpcf7-form input[type="submit"] {
	background: var(--wp--preset--color--link-blue); color: #fff; border: 0;
	border-radius: 6px; padding: 0.7rem 2rem; font-size: 1rem; cursor: pointer;
	margin-top: 0.3rem;
}
.wpcf7-form input[type="submit"]:hover { background: var(--wp--preset--color--navy); }

/* Left side-nav pills (Palvelut) */
.rv-side-nav .wp-block-button__link { width: 100%; }

/* Service / pricing groups */
.rv-pricing { margin: 1.5rem 0 0; }
.rv-price-group { background: var(--wp--preset--color--slate-blue); color: #fff; font-family: var(--wp--preset--font-family--body); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 0.75rem 1.2rem; margin: 2.2rem 0 0; border-radius: 4px; }
.rv-price-row { padding: 0.7rem 1.2rem; border-bottom: 1px solid var(--wp--preset--color--light-gray); }
.rv-price-main { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.rv-price-row .rv-price-name { font-size: 1.05rem; }
.rv-price-row .rv-price { white-space: nowrap; font-weight: 400; }
.rv-price-desc { color: #808080; font-size: 0.88rem; line-height: 1.45; margin-top: 0.25rem; max-width: 80%; }

/* Mobile tuning */
@media (max-width: 600px) {
	.rv-price-desc { max-width: 100%; }
	.rv-price-row { padding: 0.7rem 0.6rem; }
	.rv-price-group { padding: 0.7rem 0.8rem; }
	h1 { font-size: 2.1rem; }
	.rv-staff-card .rv-staff-photo { height: 360px; }
	.wpcf7-form textarea { min-height: 130px; }
}

/* Staff grid */
.rv-staff-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; margin-top: 1.5rem; }
.rv-staff-card { display: block; background: #fff; border: 1px solid var(--wp--preset--color--light-gray); border-radius: 8px; overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow .18s, transform .18s; }
.rv-staff-card:hover { box-shadow: 0 10px 26px rgba(0,0,0,.10); transform: translateY(-3px); }
.rv-staff-meta { font-weight: 600; color: var(--wp--preset--color--slate-blue); margin: 0.2rem 0 0.4rem; }
.rv-staff-meta-extra { color: #808080; margin: 0 0 1rem; }
.rv-staff-card .rv-staff-photo { width: 100%; height: 300px; object-fit: cover; display: block; }
.rv-staff-body { padding: 0.9rem 1.1rem 1.2rem; }
.rv-staff-name { margin: 0 0 0.2rem; font-size: 1.25rem; font-weight: 600; }
.rv-staff-suffix { font-size: 0.8rem; color: var(--wp--preset--color--muted-blue); font-weight: 400; }
.rv-staff-title { margin: 0; color: #667085; }
@media (max-width: 900px) { .rv-staff-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .rv-staff-grid { grid-template-columns: 1fr; } }

/* FAQ list */
.rv-faq { margin-top: 1.5rem; }
.rv-faq-item { margin-bottom: 1.8rem; }
.rv-faq-q { display: flex; align-items: center; flex-wrap: wrap; gap: 0.7rem; font-size: 1.25rem; font-weight: 600; margin: 0 0 0.4rem; }
.rv-faq-tag { font-size: 0.7rem; font-weight: 400; background: var(--wp--preset--color--light-gray); color: var(--wp--preset--color--slate-blue); padding: 0.2rem 0.7rem; border-radius: 1rem; text-transform: none; }
.rv-faq-a { color: #333; }
.rv-faq-a p { margin: 0; }
