/*
Theme Name: SmartFi
Description: Thème de blocs français pour SmartFi. Services numériques et demande de devis gratuit.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.1
Author: SmartFi
Text Domain: smartfi
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: full-site-editing, block-patterns, custom-logo, editor-style, translation-ready
*/

:root {
	--smartfi-chat-clearance: 96px;
	--smartfi-content-width: var(--wp--style--global--wide-size, 1200px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 2rem; }
body { margin: 0; font-size: max(16px, var(--wp--preset--font-size--body, 1rem)); overflow-wrap: break-word; }
img, svg { max-width: 100%; }
a { text-underline-offset: .2em; }
button, input, textarea, select { font: inherit; }
:where(a, button, input, textarea, select, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--navy);
	outline-offset: 4px;
}
.wp-site-blocks { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-site-blocks > main { flex: 1 0 auto; }
.smartfi-main { padding-block: 3rem; }
.smartfi-main.smartfi-front-page { padding-block: 0; }
.smartfi-front-page .wp-block-post-content > * { margin-block-start: 0; }
.screen-reader-text, .skip-link:not(:focus) {
	clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden;
	position: absolute; white-space: nowrap;
}
.skip-link:focus {
	position: fixed; top: 1rem; left: 1rem; z-index: 100000;
	padding: 1rem; color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--navy);
}
.wp-block-button__link {
	min-height: 48px; display: inline-flex; align-items: center; justify-content: center;
	text-decoration: none; font-weight: 700; text-align: center;
}
.is-style-outline .wp-block-button__link { border: 2px solid currentColor; }
.wp-block-button__link:hover { filter: brightness(.96); }
.smartfi-label, .smartfi-home-kicker, .smartfi-home-eyebrow {
	font-size: max(14px, .875rem); font-weight: 700; letter-spacing: .06em;
}
.smartfi-card, .is-style-smartfi-card {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 14%, transparent);
	border-radius: 16px; background: var(--wp--preset--color--white);
	box-shadow: var(--wp--preset--shadow--soft); padding: 1.5rem;
}

/* Core Site Logo, Navigation and quote button. */
.smartfi-site-header {
	background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white);
}
.smartfi-site-header .smartfi-site-header__inner {
	width: 100%; max-width: var(--smartfi-content-width); min-height: 88px;
	margin-inline: auto; padding: 1rem clamp(1rem, 3vw, 2rem);
	display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}
.smartfi-branding { display: flex; align-items: center; gap: .625rem; flex-shrink: 0; }
.smartfi-branding .wp-block-site-logo { margin: 0; width: 42px; }
.smartfi-branding .wp-block-site-logo img { width: 42px; height: 42px; object-fit: contain; }
.smartfi-branding .wp-block-site-title { margin: 0; font-size: 1.25rem; line-height: 1.2; font-weight: 800; }
.smartfi-branding a { color: var(--wp--preset--color--white); text-decoration: none; }
.smartfi-header-actions { display: flex; align-items: center; gap: 1.5rem; }
.smartfi-navigation { font-size: 1rem; }
.smartfi-navigation .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white);
}
.smartfi-navigation .wp-block-navigation-item__content { padding-block: .5rem; }
.smartfi-navigation .wp-block-navigation__responsive-container-open,
.smartfi-navigation .wp-block-navigation__responsive-container-close {
	min-width: 44px; min-height: 44px; align-items: center; justify-content: center;
}
.smartfi-site-header :where(a, button):focus-visible,
.smartfi-home-hero a:focus-visible,
.smartfi-home-chatbot a:focus-visible,
.smartfi-home-final-cta a:focus-visible,
.smartfi-footer a:focus-visible {
	outline-color: var(--wp--preset--color--white);
}
.smartfi-header-cta { display: flex; flex-shrink: 0; }
.smartfi-header-cta .wp-block-button__link { white-space: nowrap; }
.smartfi-cta-label-short { display: none; }

/* Partner-digital hero: copy and both actions precede the decorative mockup. */
.smartfi-home-hero {
	background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white);
	padding: clamp(3rem, 7vw, 6rem) clamp(1rem, 3vw, 2rem);
}
.smartfi-home-hero .smartfi-home-hero__inner {
	max-width: var(--smartfi-content-width); margin: 0 auto;
	display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 3rem; align-items: center;
}
.smartfi-home-hero__copy, .smartfi-home-hero__visual-column { min-width: 0; }
.smartfi-home-hero .smartfi-home-hero__title {
	font-size: clamp(2.35rem, 4.5vw, 4rem); line-height: 1.12;
	letter-spacing: -.04em; font-weight: 800; color: var(--wp--preset--color--white);
	height: auto; max-height: none; overflow: visible;
}
.smartfi-home-hero__title em { color: var(--wp--preset--color--teal); font-style: normal; }
.smartfi-home-hero__lede { font-size: 1.125rem; line-height: 1.7; max-width: 38rem; }
.smartfi-home-hero__actions { gap: .875rem; margin-top: 1.75rem; }
.smartfi-home-hero__actions .is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--white); background: transparent;
}
.smartfi-home-hero__visual {
	position: relative; isolation: isolate; min-height: 27rem;
	display: grid; place-items: center; padding: 2rem .5rem;
}
.smartfi-home-node-lines {
	position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1;
	fill: none; stroke: var(--wp--preset--color--teal); stroke-width: 1.5; opacity: .16;
}
.smartfi-home-device-scene { position: relative; width: 100%; max-width: 32rem; }
.smartfi-home-laptop { width: 93%; }
.smartfi-home-browser {
	border: 7px solid var(--wp--preset--color--body); border-radius: 14px 14px 3px 3px;
	overflow: hidden; background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy); box-shadow: var(--wp--preset--shadow--soft);
}
.smartfi-home-browser-bar { display: flex; gap: 5px; align-items: center; height: 22px; padding: 5px 8px; background: var(--wp--preset--color--light); }
.smartfi-home-browser-bar i { width: 5px; height: 5px; background: var(--wp--preset--color--body); border-radius: 50%; opacity: .4; }
.smartfi-home-browser-bar span { margin-left: 10px; width: 60%; height: 7px; background: var(--wp--preset--color--white); border-radius: 4px; }
.smartfi-home-demo-site { position: relative; padding: 1rem; min-height: 235px; }
.smartfi-home-demo-nav { display: flex; justify-content: space-between; font-size: 8px; }
.smartfi-home-demo-nav span { font-size: 6px; }
.smartfi-home-demo-copy { position: relative; z-index: 1; width: 70%; display: grid; gap: .7rem; margin-top: 2rem; }
.smartfi-home-demo-copy small { font-size: 7px; font-weight: 800; }
.smartfi-home-demo-copy strong { font-size: 1.4rem; line-height: 1.2; }
.smartfi-home-demo-copy > span { font-size: 8px; }
.smartfi-home-demo-copy b { width: fit-content; padding: .4rem .6rem; background: var(--wp--preset--color--teal); border-radius: 4px; font-size: 8px; }
.smartfi-home-demo-art { position: absolute; right: 1rem; top: 4rem; width: 30%; height: 130px; border-radius: 60px 60px 16px 16px; background: var(--wp--preset--color--light); border: 12px solid var(--wp--preset--color--teal); opacity: .7; }
.smartfi-home-laptop-base { height: 14px; margin-inline: -6%; background: var(--wp--preset--color--light); border-radius: 2px 2px 18px 18px; }
.smartfi-home-phone {
	position: absolute; right: 0; bottom: -2rem; width: 105px; height: 205px;
	border: 5px solid var(--wp--preset--color--light); border-radius: 19px;
	background: var(--wp--preset--color--navy); transform: rotate(6deg); padding: 8px;
}
.smartfi-home-phone-screen { height: 100%; border-radius: 10px; background: var(--wp--preset--color--white); color: var(--wp--preset--color--navy); overflow: hidden; }
.smartfi-home-phone-notch { margin: 0 auto; width: 40px; height: 7px; border-radius: 0 0 5px 5px; background: var(--wp--preset--color--navy); }
.smartfi-home-phone-demo { padding: 16px 7px; display: grid; gap: 12px; }
.smartfi-home-phone-demo small { font-size: 6px; font-weight: 800; }
.smartfi-home-phone-demo strong { font-size: 11px; line-height: 1.3; }
.smartfi-home-phone-demo span { font-size: 6px; }
.smartfi-home-phone-demo i { width: 50%; height: 9px; border-radius: 3px; background: var(--wp--preset--color--teal); }

/* Approved section patterns; no pricing, restaurant or trust-stat sections. */
.smartfi-home-section, .smartfi-home-faq, .smartfi-contact {
	padding: clamp(3rem, 6vw, 5rem) clamp(1rem, 3vw, 2rem);
}
.smartfi-home-section .smartfi-home-section__inner,
.smartfi-home-faq .smartfi-home-faq__inner {
	width: 100%; max-width: var(--smartfi-content-width); margin-inline: auto;
}
.smartfi-home-section__heading { margin-bottom: 2rem; }
.smartfi-home-section h2, .smartfi-home-faq h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.2; }
.smartfi-home-services__grid, .smartfi-home-why__grid {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem; max-width: none !important;
}
.smartfi-home-service-card, .smartfi-home-why__card { min-width: 0; margin-block-start: 0; }
.smartfi-home-service-card h3, .smartfi-home-why__card h3 { font-size: 1.25rem; line-height: 1.3; }
.smartfi-home-service-card p { font-size: 1rem; }
.smartfi-home-icon { width: 48px; height: 48px; padding: 10px; border-radius: 12px; background: var(--wp--preset--color--light); color: var(--wp--preset--color--navy); }
.smartfi-home-service-card__link { font-weight: 700; }
.smartfi-home-method, .smartfi-home-why { background: var(--wp--preset--color--light); }
.smartfi-home-method__steps {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem; max-width: none !important; margin-top: 2rem;
}
.smartfi-home-method__step { border-top: 3px solid var(--wp--preset--color--teal); padding-top: 1rem; min-width: 0; margin-block-start: 0; }
.smartfi-home-method__step h3 { font-size: 1.25rem; }
.smartfi-home-method__number { font-size: .875rem; font-weight: 800; }
.smartfi-home-chatbot {
	background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white);
	padding: clamp(3rem, 6vw, 5rem) clamp(1rem, 3vw, 2rem);
}
.smartfi-home-chatbot .smartfi-home-chatbot__inner {
	display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
	max-width: var(--smartfi-content-width); margin-inline: auto; align-items: center; gap: 2rem;
}
.smartfi-home-chatbot h2 { color: var(--wp--preset--color--white); font-size: clamp(1.75rem, 3vw, 2.5rem); }
.smartfi-home-chatbot__lines { width: 100%; height: auto; opacity: .35; }
.smartfi-home-faq .smartfi-home-faq__inner { max-width: 880px; }
.smartfi-home-faq .wp-block-details { padding: 1.25rem 0; border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--navy) 20%, transparent); }
.smartfi-home-faq summary { font-size: 1.125rem; font-weight: 700; cursor: pointer; min-height: 44px; }
.smartfi-home-final-cta { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white); padding: 3rem clamp(1rem, 3vw, 2rem); }
.smartfi-home-final-cta .smartfi-home-final-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; max-width: var(--smartfi-content-width); margin-inline: auto; }
.smartfi-home-final-cta h2 { color: var(--wp--preset--color--white); font-size: clamp(1.75rem, 3vw, 2.5rem); }
.smartfi-contact { text-align: center; }
.smartfi-contact a { font-weight: 700; overflow-wrap: anywhere; }
.smartfi-form-slot {
	max-width: 68ch; margin: 2rem auto 4rem; padding: 2rem;
	border: 2px dashed var(--wp--preset--color--navy); border-radius: 16px;
	background: var(--wp--preset--color--light);
}
.smartfi-form-slot__notice { font-size: 1rem; }
.smartfi-page-intro, .smartfi-service-page, .smartfi-legal { max-width: 68ch; margin-inline: auto; padding: 2rem 1rem; }
.smartfi-service-page h2, .smartfi-legal h2 { margin-top: 2.5rem; }
.smartfi-legal__warning { border-left: 4px solid var(--wp--preset--color--teal); background: var(--wp--preset--color--light); padding: 1rem; font-size: 1rem; }
.smartfi-legal li { margin-block: .5rem; }

.smartfi-footer { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white); padding: 3rem clamp(1rem, 3vw, 2rem); }
.smartfi-footer > .wp-block-group { max-width: var(--smartfi-content-width); margin-inline: auto; }
.smartfi-footer h2, .smartfi-footer h3 { color: var(--wp--preset--color--white); }
.smartfi-footer a { color: var(--wp--preset--color--white); }
.smartfi-footer .wp-block-list { padding: 0; list-style: none; }
.smartfi-footer .wp-block-list li { margin-block: .75rem; }
.smartfi-footer .smartfi-label { font-size: .875rem; }

@media (max-width: 900px) {
	.smartfi-header-actions { flex-direction: row-reverse; gap: .75rem; }
	.smartfi-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.smartfi-navigation .wp-block-navigation__responsive-container-open { display: flex !important; }
	.smartfi-navigation .is-menu-open {
		background: var(--wp--preset--color--navy); color: var(--wp--preset--color--white);
		padding: 1.5rem 1.5rem calc(var(--smartfi-chat-clearance) + 1.5rem);
	}
	.smartfi-navigation .is-menu-open .wp-block-navigation-item__content { font-size: 1.125rem; }
	.smartfi-home-hero .smartfi-home-hero__inner,
	.smartfi-home-chatbot .smartfi-home-chatbot__inner { grid-template-columns: minmax(0, 1fr); }
	.smartfi-home-hero__visual { max-width: 36rem; width: 100%; margin-inline: auto; }
	.smartfi-home-services__grid, .smartfi-home-why__grid, .smartfi-home-method__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.smartfi-home-chatbot__lines { max-height: 220px; }
	.smartfi-home-final-cta .smartfi-home-final-cta__inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 599px) {
	.smartfi-site-header .smartfi-site-header__inner { min-height: 80px; gap: .5rem; padding-inline: 1rem; }
	.smartfi-branding { gap: .375rem; }
	.smartfi-branding .wp-block-site-title { font-size: 1.125rem; }
	.smartfi-branding .wp-block-site-logo, .smartfi-branding .wp-block-site-logo img { width: 32px; height: 32px; }
	.smartfi-header-actions { gap: .375rem; }
	.smartfi-header-cta .wp-block-button__link { padding: .625rem .875rem; min-height: 44px; font-size: .875rem; }
	.smartfi-header-cta .smartfi-cta-label-full { display: none; }
	.smartfi-header-cta .smartfi-cta-label-short { display: inline; }
	.smartfi-home-hero .smartfi-home-hero__inner { gap: 1rem; }
	.smartfi-home-hero .smartfi-home-hero__title { font-size: clamp(2.35rem, 9.7vw, 3rem); }
	.smartfi-home-hero__lede { font-size: 1rem; }
	.smartfi-home-hero__actions { flex-direction: column; align-items: stretch; }
	.smartfi-home-hero__actions .wp-block-button, .smartfi-home-hero__actions .wp-block-button__link { width: 100%; }
	.smartfi-home-hero__visual { min-height: 24rem; padding: 2rem 0 calc(var(--smartfi-chat-clearance) + 1rem); }
	.smartfi-home-phone { width: 82px; height: 164px; top: 2.5rem; bottom: auto; right: 0; }
	.smartfi-home-demo-site { min-height: 210px; }
	.smartfi-home-demo-nav span { display: none; }
	.smartfi-home-demo-copy strong { font-size: 1.15rem; }
	.smartfi-home-services__grid, .smartfi-home-why__grid, .smartfi-home-method__steps { grid-template-columns: minmax(0, 1fr); }
	.smartfi-home-faq, .smartfi-contact { padding-right: calc(1rem + var(--smartfi-chat-clearance)); }
	.smartfi-form-slot { margin-inline: 1rem; padding: 1.25rem; }
	.smartfi-footer { padding-bottom: calc(var(--smartfi-chat-clearance) + 2rem); }
	.smartfi-page-intro, .smartfi-service-page, .smartfi-legal { padding-right: calc(1rem + var(--smartfi-chat-clearance)); }
	.smartfi-home-final-cta { padding-bottom: calc(var(--smartfi-chat-clearance) + 2rem); }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
