/* GVS Passport theme — page sections. Header, footer and form styles ship with the GVS Core plugin. */

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* Bengali needs more line height for conjuncts and vowel signs. */
:lang(bn), .gvs-lang-bn { line-height: 1.75; }
.gvs-lang-bn :is(h1, h2, h3) { line-height: 1.35; letter-spacing: 0; }

.gvs-main { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60); }
.gvs-main--landing { padding-block: 0; }
.gvs-page-title { margin-bottom: var(--wp--preset--spacing--40); letter-spacing: -0.02em; }
.gvs-lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--muted); max-width: 62ch; }
.gvs-small { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.gvs-section { padding-block: var(--wp--preset--spacing--60) 0; }
.gvs-section > h2:first-child { margin-top: 0; }

/* ---------- Hero ---------- */
.gvs-hero { background: var(--wp--preset--color--passport); color: #f1f6f3; padding-block: var(--wp--preset--spacing--60); overflow: hidden; }
.gvs-hero .gvs-hero__cols { max-width: var(--wp--style--global--wide-size); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.gvs-hero__title { color: #fff; letter-spacing: -0.025em; max-width: 14ch; margin-top: 0; }
.gvs-lang-bn .gvs-hero__title { max-width: 16ch; }
.gvs-hero .gvs-lead { color: #d6e6dc; }
.gvs-hero .gvs-small { color: #b9d0c3; }
.gvs-hero .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border: 2px solid rgba(255, 255, 255, 0.7); background: transparent; }
.gvs-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, 0.1); }

/* The application file: the one memorable object on the site. */
.gvs-file {
	position: relative; background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink);
	border-radius: 4px 14px 14px 14px; padding: 2.25rem 1.75rem 2.75rem; margin-top: 1.5rem;
	box-shadow: 0 1px 0 #d9e3dc, 0 24px 48px -20px rgba(0, 0, 0, 0.45);
}
.gvs-file > .gvs-file__tab {
	position: absolute; top: -1.6rem; left: 0; margin: 0; background: var(--wp--preset--color--paper);
	padding: 0.35rem 1rem 0.5rem; border-radius: 8px 8px 0 0; font-size: 0.85rem; font-weight: 700; color: var(--wp--preset--color--muted);
}
.gvs-file > .gvs-file__title { font-weight: 700; font-size: 1.25rem; margin: 0 0 1rem; padding-bottom: 0.75rem; border-bottom: 2px solid var(--wp--preset--color--ink); }
.gvs-checklist { list-style: none; padding: 0; margin: 0; }
.gvs-checklist li { position: relative; padding: 0.6rem 0 0.6rem 2.1rem; border-bottom: 1px dashed var(--wp--preset--color--rule); }
.gvs-checklist li::before {
	content: ""; position: absolute; left: 0; top: 0.75rem; width: 1.15rem; height: 1.15rem;
	border: 2px solid var(--wp--preset--color--passport); border-radius: 3px;
}
.gvs-checklist li::after {
	content: ""; position: absolute; left: 0.4rem; top: 0.85rem; width: 0.35rem; height: 0.7rem;
	border: solid var(--wp--preset--color--passport); border-width: 0 2.5px 2.5px 0; transform: rotate(40deg);
}
.gvs-file > .gvs-stamp {
	position: absolute; right: 1.25rem; bottom: -1.75rem; margin: 0; transform: rotate(-9deg);
	color: var(--wp--preset--color--stamp); border: 3px solid currentColor; border-radius: 10px;
	padding: 0.45rem 1rem; font-weight: 700; font-size: 1.15rem; background: rgba(247, 249, 246, 0.92);
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--paper), inset 0 0 0 4px currentColor;
	animation: gvs-stamp 520ms cubic-bezier(.2, .9, .3, 1.3) 500ms both;
}
@keyframes gvs-stamp {
	from { opacity: 0; transform: rotate(-9deg) scale(1.6); }
	to { opacity: 1; transform: rotate(-9deg) scale(1); }
}
@media (prefers-reduced-motion: reduce) { .gvs-file > .gvs-stamp { animation: none; } }

/* ---------- What we do / what nobody can do ---------- */
.gvs-boundary { gap: clamp(1.5rem, 4vw, 3rem); }
.gvs-boundary > .wp-block-column { border-top: 4px solid var(--wp--preset--color--passport); padding-top: 1rem; }
.gvs-boundary > .wp-block-column + .wp-block-column { border-top-color: #a33a2a; }
.gvs-boundary h3 { margin-top: 0; }

/* ---------- Steps (a real sequence, so numbered) ---------- */
.gvs-steps { list-style: none; padding: 0; margin: 1.5rem 0; counter-reset: gvs-step; }
.gvs-steps > li { counter-increment: gvs-step; position: relative; padding: 0 0 1.4rem 3.4rem; }
.gvs-steps > li::before {
	content: counter(gvs-step); position: absolute; left: 0; top: -0.1rem; width: 2.2rem; height: 2.2rem; border-radius: 50%;
	display: grid; place-items: center; font-weight: 700; background: var(--wp--preset--color--leaf); color: var(--wp--preset--color--passport);
	border: 2px solid var(--wp--preset--color--passport);
}
.gvs-steps > li:not(:last-child)::after { content: ""; position: absolute; left: 1.08rem; top: 2.3rem; bottom: 0.2rem; width: 2px; background: var(--wp--preset--color--rule); }
.gvs-lang-bn .gvs-steps > li::before { content: counter(gvs-step, bengali); }

/* ---------- Closing band ---------- */
.gvs-band { background: var(--wp--preset--color--leaf); margin-top: var(--wp--preset--spacing--60) !important; padding-block: var(--wp--preset--spacing--60); }
.gvs-band h2 { margin-top: 0; }

/* Page review meta for destination pages. */
.gvs-review-meta { font-size: 0.85rem; color: var(--wp--preset--color--muted); border-top: 1px solid var(--wp--preset--color--rule); padding-top: 0.75rem; margin-top: 2rem; }

@media (max-width: 781px) {
	.gvs-hero .gvs-hero__cols { gap: 3rem; }
	.gvs-file { margin-inline: 0.25rem; }
}
