/*
Theme Name: Orion Soft Sol
Theme URI: https://orionsoftsol.com/
Author: Orion Soft Sol
Author URI: https://orionsoftsol.com/
Description: Block theme for Orion Soft Sol — Podio & Tape CRM development, automation, SMS marketing and digital growth services. Edit everything in Appearance → Editor. Ships with ready-made sections (patterns) and a demo content import file.
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: orion-soft-sol
Tags: block-patterns, full-site-editing, business, one-column, wide-blocks, custom-colors, editor-style
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > main { margin-block-start: 0; }
::selection { background: var(--wp--preset--color--secondary); color: #fff; }
:focus-visible { outline: 2px solid var(--wp--preset--color--secondary); outline-offset: 3px; }
img { height: auto; }

/* ---------- Sections ---------- */
.orion-section {
	padding-block: var(--wp--preset--spacing--60);
	margin-block-start: 0 !important;
}
.orion-section--tight { padding-block: var(--wp--preset--spacing--50); }
.orion-section--surface { background: var(--wp--preset--color--surface); }
.orion-section--blush { background: var(--wp--preset--color--blush); }
.orion-section--dark,
.orion-hero,
.orion-page-header {
	background: var(--wp--preset--gradient--charcoal);
	color: #EDE6E6;
	position: relative;
	overflow: hidden;
}
.orion-section--dark :where(h1, h2, h3, h4, h5, h6),
.orion-hero :where(h1, h2, h3, h4),
.orion-page-header :where(h1, h2, h3) { color: #fff; }
.orion-section--dark a:where(:not(.wp-element-button)),
.orion-hero a:where(:not(.wp-element-button)),
.orion-page-header a:where(:not(.wp-element-button)) { color: #fff; }
.orion-section > * { position: relative; }

/* Decorative interlocking rings, echoing the logo */
.orion-hero::before,
.orion-page-header::before,
.orion-section--dark::before {
	content: "";
	position: absolute;
	width: 620px; height: 620px;
	right: -180px; top: -220px;
	border-radius: 50%;
	border: 56px solid rgba(220, 12, 60, 0.12);
	pointer-events: none;
}
.orion-hero::after,
.orion-page-header::after {
	content: "";
	position: absolute;
	width: 520px; height: 520px;
	left: -260px; bottom: -300px;
	border-radius: 50%;
	border: 48px solid rgba(255, 255, 255, 0.05);
	pointer-events: none;
}
.orion-hero > *, .orion-page-header > * { position: relative; z-index: 1; }

/* ---------- Type helpers ---------- */
.orion-eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.8rem !important;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	margin-bottom: 0.25rem;
}
.orion-section--dark .orion-eyebrow,
.orion-hero .orion-eyebrow,
.orion-page-header .orion-eyebrow,
.orion-cta .orion-eyebrow { color: #FF6B86; }
.orion-lead {
	font-size: var(--wp--preset--font-size--large) !important;
	color: var(--wp--preset--color--muted);
	line-height: 1.6;
}
.orion-section--dark .orion-lead,
.orion-hero .orion-lead,
.orion-page-header .orion-lead { color: #CFC4C4; }
.orion-accent { color: var(--wp--preset--color--secondary); }
.orion-hero .orion-accent, .orion-section--dark .orion-accent { color: #FF4D6D; }
.orion-muted { color: var(--wp--preset--color--muted); }
.orion-center { text-align: center; }
.orion-center.wp-block-buttons { justify-content: center; }
.orion-heading-block { max-width: 760px; margin-left: auto !important; margin-right: auto !important; margin-bottom: var(--wp--preset--spacing--50) !important; }

/* ---------- Hero ---------- */
.orion-hero { padding-block: clamp(3.5rem, 8vw, 7rem) clamp(4rem, 9vw, 7.5rem); }
.orion-hero h1 { font-size: var(--wp--preset--font-size--display); line-height: 1.07; }
.orion-hero .wp-block-columns { align-items: center !important; gap: clamp(2rem, 5vw, 4rem); }
.orion-hero-art {
	aspect-ratio: 560 / 480;
	background: url(assets/images/hero.svg) center / contain no-repeat;
	min-height: 260px;
}
.orion-hero-art > * { display: none; }
.orion-hero-points { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; font-size: 0.95rem; color: #CFC4C4; }
.orion-hero-points li { display: flex; align-items: center; gap: 0.5rem; }
.orion-hero-points li::before, .orion-check-list li::before {
	content: ""; flex: 0 0 auto;
	width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: var(--wp--preset--color--secondary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-9'/%3E%3C/svg%3E") center / 70% no-repeat;
}
.orion-check-list { list-style: none; padding-left: 0; }
.orion-check-list li { position: relative; padding-left: 1.9rem; margin-bottom: 0.6rem; }
.orion-check-list li::before { position: absolute; left: 0; top: 0.3rem; }

/* ---------- Page header ---------- */
.orion-page-header { padding-block: clamp(3rem, 7vw, 5.5rem); }
.orion-page-header h1 { font-size: var(--wp--preset--font-size--xx-large); }

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -10px rgba(176, 0, 0, .55); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--ink);
	border: 1.5px solid currentColor; padding: calc(0.85em - 1.5px) calc(1.6em - 1.5px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: #fff; box-shadow: none; }
:is(.orion-hero, .orion-section--dark, .orion-cta, .orion-page-header) .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }
:is(.orion-hero, .orion-section--dark, .orion-cta, .orion-page-header) .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--ink); }
.orion-cta .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: #fff; color: var(--wp--preset--color--primary); }
.orion-cta .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: #fff; }

/* ---------- Cards ---------- */
.orion-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 18px;
	padding: clamp(1.4rem, 3vw, 2rem);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
	height: 100%;
	box-sizing: border-box;
}
.orion-card:hover { transform: translateY(-4px); box-shadow: 0 24px 48px -28px rgba(52, 40, 40, .45); border-color: #E3CFCF; }
.orion-card h3 { font-size: 1.25rem; margin-top: 0.75rem; margin-bottom: 0.25rem; }
.orion-card p { color: var(--wp--preset--color--muted); font-size: 0.975rem; }
.orion-card h3 a { color: inherit; text-decoration: none; }
.orion-card h3 a::after { content: " →"; color: var(--wp--preset--color--secondary); }
.orion-card h3 a:hover { color: var(--wp--preset--color--primary); }
.orion-card[class*="orion-icon-"]::before {
	content: "";
	display: block;
	width: 52px; height: 52px;
	border-radius: 14px;
	background: var(--wp--preset--color--blush);
}
.orion-card[class*="orion-icon-"] { position: relative; }
.orion-card[class*="orion-icon-"]::after {
	content: "";
	position: absolute;
	left: calc(clamp(1.4rem, 3vw, 2rem) + 13px);
	top: calc(clamp(1.4rem, 3vw, 2rem) + 13px);
	width: 26px; height: 26px;
	background: var(--wp--preset--gradient--orion);
	-webkit-mask: var(--orion-icon) center / contain no-repeat;
	mask: var(--orion-icon) center / contain no-repeat;
}
.orion-icon-crm   { --orion-icon: url(assets/images/icons/crm.svg); }
.orion-icon-home  { --orion-icon: url(assets/images/icons/home.svg); }
.orion-icon-chat  { --orion-icon: url(assets/images/icons/chat.svg); }
.orion-icon-board { --orion-icon: url(assets/images/icons/board.svg); }
.orion-icon-plug  { --orion-icon: url(assets/images/icons/plug.svg); }
.orion-icon-chart { --orion-icon: url(assets/images/icons/chart.svg); }
.orion-icon-mail  { --orion-icon: url(assets/images/icons/mail.svg); }
.orion-icon-phone { --orion-icon: url(assets/images/icons/phone.svg); }
.orion-icon-pin   { --orion-icon: url(assets/images/icons/pin.svg); }
.orion-icon-clock { --orion-icon: url(assets/images/icons/clock.svg); }
.orion-section--dark .orion-card { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.1); }
.orion-section--dark .orion-card p { color: #CFC4C4; }
.orion-section--dark .orion-card[class*="orion-icon-"]::before { background: rgba(220,12,60,.16); }
.orion-section--dark .orion-card:hover { border-color: rgba(255,77,109,.5); }

/* ---------- Stats ---------- */
.orion-stat { text-align: center; padding: 0.5rem; }
.orion-stat .orion-stat-number {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	font-size: clamp(2.2rem, 5vw, 3.2rem) !important;
	line-height: 1;
	margin: 0;
	background: var(--wp--preset--gradient--orion);
	-webkit-background-clip: text; background-clip: text; color: transparent;
}
.orion-section--dark .orion-stat .orion-stat-number { background: linear-gradient(120deg, #fff 0%, #FF8FA3 100%); -webkit-background-clip: text; background-clip: text; }
.orion-stat p:not(.orion-stat-number) { color: var(--wp--preset--color--muted); margin-top: 0.5rem; font-size: 0.95rem; }
.orion-section--dark .orion-stat p:not(.orion-stat-number) { color: #CFC4C4; }

/* ---------- Steps ---------- */
.orion-steps { counter-reset: orion-step; }
.orion-step { counter-increment: orion-step; position: relative; padding-top: 3.5rem !important; }
.orion-step::before {
	content: counter(orion-step, decimal-leading-zero);
	position: absolute; top: clamp(1.4rem, 3vw, 2rem); left: clamp(1.4rem, 3vw, 2rem);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800; font-size: 0.9rem; letter-spacing: 0.08em;
	color: #fff; background: var(--wp--preset--gradient--orion);
	padding: 0.3rem 0.7rem; border-radius: 999px;
}
.orion-step.orion-card { padding-top: calc(clamp(1.4rem, 3vw, 2rem) + 2.6rem) !important; }

/* ---------- Logos / badges ---------- */
.orion-logos { align-items: center; }
.orion-logos .wp-block-image { margin: 0; display: flex; justify-content: center; align-items: center; }
.orion-logos .wp-block-image img { max-height: 56px; width: auto; max-width: 100%; object-fit: contain; filter: grayscale(1); opacity: .7; transition: filter .25s ease, opacity .25s ease; }
.orion-logos .wp-block-image img:hover { filter: none; opacity: 1; }
.orion-badges { align-items: center; }
.orion-badges .wp-block-image { margin: 0; }
.orion-badges .wp-block-image img { max-height: 72px; width: auto; }

/* ---------- Testimonials ---------- */
.orion-quote {
	background: #fff; border: 1px solid var(--wp--preset--color--border);
	border-radius: 18px; padding: clamp(1.5rem, 3vw, 2.25rem); height: 100%; box-sizing: border-box;
}
.orion-quote::before {
	content: "★★★★★"; display: block; color: var(--wp--preset--color--secondary);
	letter-spacing: 0.2em; font-size: 1.05rem; margin-bottom: 0.75rem;
}
.orion-quote .orion-quote-text { font-family: var(--wp--preset--font-family--heading); font-size: 1.2rem !important; font-weight: 600; line-height: 1.5; color: var(--wp--preset--color--ink); }
.orion-quote .orion-quote-by { color: var(--wp--preset--color--muted); font-size: 0.9rem !important; margin-top: 1rem; }

/* ---------- CTA band ---------- */
.orion-cta {
	background: var(--wp--preset--gradient--orion);
	color: #fff;
	border-radius: 28px;
	padding: clamp(2.25rem, 6vw, 4rem) clamp(1.5rem, 5vw, 4rem) !important;
	position: relative; overflow: hidden;
}
.orion-cta::after {
	content: ""; position: absolute; width: 380px; height: 380px; right: -120px; bottom: -200px;
	border-radius: 50%; border: 44px solid rgba(255,255,255,.12); pointer-events: none;
}
.orion-cta > * { position: relative; z-index: 1; }
.orion-cta h2, .orion-cta h3 { color: #fff; }
.orion-cta p { color: rgba(255,255,255,.88); }

/* ---------- Feature split ---------- */
.orion-panel {
	background: var(--wp--preset--gradient--charcoal); color: #EDE6E6;
	border-radius: 24px; padding: clamp(1.75rem, 4vw, 2.75rem) !important;
}
.orion-panel :where(h2, h3, h4) { color: #fff; }
.orion-panel .orion-check-list li { color: #EDE6E6; }

/* ---------- FAQ ---------- */
.wp-block-details {
	border: 1px solid var(--wp--preset--color--border); border-radius: 14px;
	padding: 1rem 1.25rem; background: #fff; margin-block-start: 0.75rem !important;
}
.wp-block-details summary { font-family: var(--wp--preset--font-family--heading); font-weight: 700; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; color: var(--wp--preset--color--secondary); font-size: 1.4rem; line-height: 1; transition: transform .2s ease; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details[open] summary { margin-bottom: 0.5rem; }
.wp-block-details p { color: var(--wp--preset--color--muted); }

/* ---------- Header ---------- */
.orion-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(255,255,255,.9);
	-webkit-backdrop-filter: saturate(180%) blur(12px); backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.admin-bar .orion-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .orion-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .orion-header { top: 0; } }
.orion-header-inner { padding-block: 0.8rem; }
.orion-logo { margin: 0 !important; }
.orion-logo img { width: 150px; height: auto; display: block; }
.orion-header .wp-block-navigation a { text-decoration: none; }
.orion-header .wp-block-navigation a:hover { color: var(--wp--preset--color--primary); }
.orion-header .wp-block-navigation .wp-block-navigation__submenu-container { border-radius: 12px; border: 1px solid var(--wp--preset--color--border) !important; box-shadow: 0 18px 40px -20px rgba(0,0,0,.25); padding: 0.4rem 0; min-width: 240px !important; }
.orion-header .wp-block-button__link { padding: 0.65em 1.25em; font-size: 0.925rem; }
@media (max-width: 600px) { .orion-header-cta { display: none !important; } .orion-logo img { width: 124px; } }

/* ---------- Footer ---------- */
.orion-footer { background: var(--wp--preset--color--night); color: #BFB3B3; font-size: 0.95rem; margin-block-start: 0 !important; }
.orion-footer :where(h2, h3, h4) { color: #fff; font-size: 0.85rem; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 1rem; }
.orion-footer a { color: #E6DCDC; text-decoration: none; }
.orion-footer a:hover { color: #FF6B86; }
.orion-footer .orion-footer-links { list-style: none; padding: 0; margin: 0; }
.orion-footer .orion-footer-links li { margin-bottom: 0.55rem; }
.orion-footer .orion-footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 1.5rem; font-size: 0.85rem; }
.orion-footer .orion-logo img { width: 170px; }
.orion-footer .orion-badges img { max-height: 54px; }

/* ---------- Posts ---------- */
.orion-post-card { background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: 18px; padding: 1.5rem; height: 100%; box-sizing: border-box; transition: transform .25s ease, box-shadow .25s ease; }
.orion-post-card:hover { transform: translateY(-4px); box-shadow: 0 24px 48px -28px rgba(52,40,40,.45); }
.orion-post-card .wp-block-post-title { font-size: 1.2rem; margin-top: 0.4rem; }
.orion-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--primary); }
.orion-post-card .wp-block-post-excerpt { color: var(--wp--preset--color--muted); font-size: 0.95rem; }
.orion-post-card .wp-block-post-featured-image img { border-radius: 12px; }
.orion-post-meta { color: var(--wp--preset--color--muted); font-size: 0.85rem; }
.orion-post-meta a { color: var(--wp--preset--color--primary); text-decoration: none; }
.wp-block-post-terms a { text-decoration: none; }
.orion-entry-content > * + h2 { margin-top: 2.5rem; }
.orion-entry-content h2 { font-size: 1.75rem; }
.orion-entry-content h3 { font-size: 1.3rem; }
.wp-block-query-pagination a { text-decoration: none; }
.orion-notice { background: var(--wp--preset--color--blush); border-left: 4px solid var(--wp--preset--color--secondary); padding: 1rem 1.25rem; border-radius: 8px; }

/* ---------- Contact form ---------- */
.orion-form { display: grid; gap: 1rem; }
.orion-form .orion-form-row { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .orion-form .orion-form-row { grid-template-columns: 1fr; } }
.orion-form label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.35rem; }
.orion-form input, .orion-form select, .orion-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; color: inherit;
	padding: 0.8rem 1rem; border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease;
}
.orion-form input:focus, .orion-form select:focus, .orion-form textarea:focus { outline: none; border-color: var(--wp--preset--color--secondary); box-shadow: 0 0 0 4px rgba(220,12,60,.12); }
.orion-form textarea { min-height: 150px; resize: vertical; }
.orion-form .orion-hp { position: absolute !important; left: -9999px !important; }
.orion-form button { justify-self: start; border: 0; cursor: pointer; }
.orion-form-message { padding: 1rem 1.25rem; border-radius: 12px; font-weight: 500; }
.orion-form-message.is-success { background: #E8F6EE; color: #11663A; }
.orion-form-message.is-error { background: var(--wp--preset--color--blush); color: var(--wp--preset--color--primary-dark); }
.orion-contact-card { background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: 22px; padding: clamp(1.5rem, 4vw, 2.5rem); box-shadow: 0 30px 60px -40px rgba(52,40,40,.5); }

/* ---------- Motion preference ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
.orion-panel .orion-eyebrow { color: #FF6B86; }
