/*
Theme Name: Artur & Shana
Theme URI: https://artur-shana.fr
Description: Thème sur mesure pour le site d'Artur et Shana : accueil, profils, question gratuite, demande de rappel et pages légales. Doux et lumineux.
Version: 1.3.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: artur-shana
*/

:root {
	--as-accent: #5B3E96;
	--as-accent-dark: #3F2A6B;
	--as-ink: #2E2346;
	--as-body: #4A4458;
	--as-gold: #8A6A1F;
	--as-bg: #FCFAF7;
	--as-lilac: #EDE4F6;
	--as-lilac-soft: #F7F2FB;
	--as-lilac-mid: #EFE6F8;
	--as-line: #D9CFE8;
	--as-muted: #5E5670;
	--as-red: #B3261E;
	--as-shadow: 0 8px 30px rgba(63, 42, 107, .07);
}

body { -webkit-font-smoothing: antialiased; }
a { text-underline-offset: 3px; }

/* ---------- Header ---------- */
.as-header { border-bottom: 1px solid #ECE6F2; position: sticky; top: 0; z-index: 50; background: var(--as-bg); }
.as-header .as-logo { font-family: var(--wp--preset--font-family--cormorant); font-size: 28px; font-weight: 600; margin: 0; }
.as-header .as-logo a { color: var(--as-accent-dark); text-decoration: none; }
.as-header .wp-block-navigation a { color: var(--as-body); font-weight: 600; text-decoration: none; }
.as-header .wp-block-navigation a:hover { color: var(--as-accent); }
.as-header .wp-block-button__link { padding: 11px 20px; font-size: 16px; }

/* ---------- Buttons ---------- */
.wp-block-button__link { border-radius: 999px; font-weight: 700; transition: background .2s, color .2s; }
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background) { background: #fff; color: var(--as-accent-dark); border: 1px solid var(--as-line); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--as-lilac-soft); }
.as-tel .wp-block-button__link, a.as-tel { display: inline-flex; align-items: center; gap: 10px; }
.as-tel .wp-block-button__link::before, a.as-tel::before {
	content: ""; width: 20px; height: 20px; flex: none; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.as-big .wp-block-button__link { font-size: 19px; padding: 20px 36px; box-shadow: 0 12px 30px rgba(91, 62, 150, .30); }

/* ---------- Sections ---------- */
.as-section { padding: 88px 24px; }
.as-section.as-tight-top { padding-top: 24px; }
.as-grad { background: linear-gradient(180deg, #F4EEFA 0%, var(--as-bg) 100%); }
.as-soft { background: var(--as-lilac-soft); }
.as-eyebrow { font-size: 14px !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--as-gold) !important; }
.as-lead { font-size: 19px; line-height: 1.65; }
.as-center { text-align: center; }
.as-narrow { max-width: 820px; margin-left: auto !important; margin-right: auto !important; }
.as-hero { padding-top: 96px; padding-bottom: 104px; }
.as-hero h1 { font-size: clamp(40px, 5vw, 60px); line-height: 1.08; }
.as-reassure { font-size: 15px; color: var(--as-muted); }

/* Photo placeholders (replace with an Image block) */
.as-photo { background: var(--as-lilac); border: 1px solid #DED2EC; display: flex; align-items: center; justify-content: center; text-align: center; color: #6B5F80; font-size: 15px; padding: 24px; box-sizing: border-box; }
.as-photo p { margin: 0; }
.as-arch { min-height: 440px; border-radius: 220px 220px 24px 24px; }
.as-arch-sm { min-height: 380px; border-radius: 160px 160px 20px 20px; }
.as-round { width: 160px; height: 160px; border-radius: 50%; margin: 0 auto; }
.as-round img, .as-arch img, .as-arch-sm img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
figure.as-round, figure.as-arch, figure.as-arch-sm { padding: 0; overflow: hidden; }
figure.as-round img { aspect-ratio: 1; }

/* Cards */
.as-card { background: #fff; border-radius: 24px; padding: 32px; box-shadow: var(--as-shadow); }
.as-card h3 { font-size: 34px; margin: 0; }
.as-card .as-spec { margin: 0; }
.as-profile { background: #fff; border-radius: 28px; padding: 40px; box-shadow: var(--as-shadow); }
.as-profile h2 { font-size: 46px; margin: 0; }
.as-spec { font-size: 14px !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--as-gold) !important; }
.as-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.as-tags p { margin: 0; background: #F1EAF8; color: #4A3478; font-size: 15px; font-weight: 600; padding: 8px 16px; border-radius: 999px; }
.as-info { background: #FAF7FC; border-radius: 16px; padding: 18px 20px; height: 100%; box-sizing: border-box; }
.as-info p { margin: 0; }
.as-info .as-info-label { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6B5F80; margin-bottom: 6px; }
.as-info-row { align-items: stretch !important; }
.as-info-row > .wp-block-column { display: flex; }
.as-info-row > .wp-block-column > .as-info { flex: 1; }
.as-step-num { width: 56px; height: 56px; border-radius: 50%; background: #F1EAF8; color: var(--as-accent); font-family: var(--wp--preset--font-family--cormorant); font-size: 28px; font-weight: 600; display: flex; align-items: center; justify-content: center; margin: 0 auto !important; }
.as-cta-box { background: var(--as-lilac-mid); border-radius: 32px; padding: 56px 32px; }
.as-box-soft { background: var(--as-lilac-soft); border-radius: 24px; padding: 28px; }
.as-box-line { background: #fff; border: 1px solid #ECE6F2; border-radius: 24px; padding: 28px; }

/* ---------- Forms ---------- */
.as-rappel-wrap { padding: 0 24px 88px; }
.as-rappel { max-width: 1112px; margin: 0 auto; background: #fff; border: 1px solid #E4DAF0; border-radius: 32px; padding: 48px 40px; display: flex; flex-wrap: wrap; gap: 40px; align-items: center; box-shadow: 0 8px 30px rgba(63, 42, 107, .06); box-sizing: border-box; scroll-margin-top: 110px; }
.as-rappel-intro { flex: 1 1 320px; display: flex; flex-direction: column; gap: 14px; }
.as-rappel-intro h2 { margin: 0; font-size: 38px; }
.as-rappel-intro p { margin: 0; font-size: 17px; line-height: 1.65; }
.as-pastille { width: 56px; height: 56px; border-radius: 50%; background: #F1EAF8; display: flex; align-items: center; justify-content: center; }
.as-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.as-rappel .as-form { flex: 999 1 460px; min-width: 0; }
.as-form .as-full { grid-column: 1 / -1; }
.as-field { display: flex; flex-direction: column; gap: 8px; }
.as-field label, .as-legend { font-size: 15px; font-weight: 700; color: var(--as-ink); }
.as-req { color: var(--as-red); }
.as-form input[type=text], .as-form input[type=email], .as-form input[type=tel], .as-form select, .as-form textarea {
	font: inherit; font-size: 16px; padding: 14px 16px; border: 1px solid var(--as-line); border-radius: 12px; background: #FCFAFE; color: #2E2A38; width: 100%; box-sizing: border-box;
}
.as-form input:focus, .as-form select:focus, .as-form textarea:focus { outline: 2px solid var(--as-accent); outline-offset: 1px; }
.as-form textarea { resize: vertical; min-height: 150px; }
.as-choices { display: flex; flex-wrap: wrap; gap: 12px; }
.as-choices label { flex: 1 1 150px; display: flex; align-items: center; gap: 10px; padding: 14px 16px; border: 1px solid var(--as-line); border-radius: 12px; font-size: 16px; font-weight: 400; cursor: pointer; }
.as-check { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; line-height: 1.55; color: var(--as-body); cursor: pointer; }
.as-check input { margin-top: 3px; }
.as-note { font-size: 14px; color: var(--as-muted); margin: 0; }
.as-submit { font: inherit; justify-self: start; background: var(--as-accent); color: #fff; border: 0; font-weight: 700; font-size: 17px; padding: 16px 32px; border-radius: 999px; cursor: pointer; }
.as-submit:hover { background: var(--as-accent-dark); }
.as-hp { position: absolute !important; left: -9999px !important; }
.as-msg { border-radius: 14px; padding: 16px 20px; font-weight: 600; }
.as-msg.ok { background: #E8F4EC; color: #1E5B34; }
.as-msg.err { background: #FBEAEA; color: #8C1D18; }
.as-qform { background: #fff; border-radius: 28px; padding: 40px; box-shadow: var(--as-shadow); display: flex; flex-direction: column; gap: 22px; }

/* Floating button */
.as-float { position: fixed; right: 24px; bottom: 24px; z-index: 60; background: var(--as-accent); color: #fff !important; text-decoration: none; font-weight: 700; font-size: 16px; padding: 14px 22px; border-radius: 999px; box-shadow: 0 10px 28px rgba(63, 42, 107, .28); }
.as-float:hover { background: var(--as-accent-dark); }

/* ---------- Footer ---------- */
.as-footer { background: var(--as-ink); color: #E9E3F2; }
.as-footer a { color: #E9E3F2; }
.as-footer .as-logo-foot { font-family: var(--wp--preset--font-family--cormorant); font-size: 26px; font-weight: 600; color: #fff; margin: 0; }
.as-footer .as-disclaimer { font-size: 13px; color: #C9BFD9; }

/* Legal pages */
.as-legal h2 { font-size: 32px; margin-top: 36px; margin-bottom: 12px; }
.as-legal p { font-size: 17px; line-height: 1.7; }

@media (max-width: 781px) {
	.as-section { padding: 64px 20px; }
	.as-hero { padding-top: 56px; padding-bottom: 64px; }
	.as-profile, .as-qform { padding: 24px; }
	.as-rappel { padding: 32px 22px; }
	.as-float { right: 16px; bottom: 16px; }
}
.as-point { position: relative; padding-left: 22px; }
.as-point::before { content: ""; position: absolute; left: 0; top: .6em; width: 8px; height: 8px; border-radius: 50%; background: var(--as-accent); }
.as-profile + .as-profile { margin-top: 56px; }
.as-cta-wrap { padding: 0 24px 88px; }
.as-card .wp-block-buttons { margin-top: 8px; }
.as-step-title { font-family: var(--wp--preset--font-family--nunito); font-size: 20px; color: var(--as-ink); margin-bottom: 0; }
.as-hero-cols { gap: 56px; }
.as-rappel .as-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.as-qform .as-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.as-cards > .wp-block-column { display: flex; }
.as-cards > .wp-block-column > .as-card { flex: 1; }
main > .wp-block-post-content > .alignfull { margin-top: 0; margin-bottom: 0; }
main > .wp-block-post-content > * + * { margin-block-start: 0; }
@media (max-width: 600px) {
	.as-rappel .as-form, .as-qform .as-form { grid-template-columns: 1fr; }
}
.wp-site-blocks > * + * { margin-block-start: 0; }

/* v1.1 — Figma edits */
.as-rappel-head { display: flex; align-items: center; gap: 14px; }
.as-rappel-head h2 { margin: 0; }
.as-pastille { flex: none; }
.as-pres { background: #2E2346 url("assets/img/ambiance.jpg") center / cover no-repeat; }
.as-pres h2 { color: #C9BFD9 !important; }
.as-pres p { color: #FCFAF7 !important; font-weight: 700; }
figure.as-arch, figure.as-arch-sm, figure.as-round { margin: 0 auto; background: var(--as-lilac); }
figure.as-arch { width: 100%; height: 440px; min-height: 0; }
figure.as-arch-sm { width: 100%; height: 380px; min-height: 0; }
figure.as-round { width: 160px; height: 160px; }
figure.as-arch img, figure.as-arch-sm img, figure.as-round img { width: 100%; height: 100%; object-fit: cover; display: block; }
.as-pres .wp-block-heading::before {
	content: ""; display: block; width: 40px; height: 40px; margin: 0 auto 20px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8892E' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M5.6 18.4l2.1-2.1M16.3 7.7l2.1-2.1'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.as-legal-links { display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 15px !important; margin: 0; }
.as-legal-links a { padding: 6px 0; }

/* v1.1.1 — callback block aligned like Figma: left column top-aligned with "Prénom" */
.as-rappel { align-items: flex-start; gap: 40px; padding: 48px 40px; }
.as-rappel-intro { flex: 0 0 340px; gap: 14px; }
.as-rappel-intro p { font-size: 17px; line-height: 1.65; }
.as-rappel-head h2 { font-size: 38px; line-height: 1.2; }
@media (max-width: 860px) {
	.as-rappel-intro { flex: 1 1 100%; }
}

/* v1.2 — responsive fixes */
body h1.wp-block-heading { font-size: clamp(34px, 6vw, 56px); }
.as-hero h1.wp-block-heading { font-size: clamp(36px, 5vw, 60px); }
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; color: var(--as-accent-dark); }
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--as-bg) !important; padding: 24px 24px 40px !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; padding-top: 56px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; gap: 8px !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--cormorant); font-size: 30px; font-weight: 600; color: var(--as-ink) !important; padding: 8px 0; }
.as-legal-links a { padding: 10px 0; display: inline-block; }
@media (max-width: 599px) {
	.as-header .as-header-buttons { display: none; }
}
@media (max-width: 781px) {
	figure.as-arch { height: 280px; }
	figure.as-arch-sm { height: 300px; }
	.as-float { width: 56px; height: 56px; padding: 0; font-size: 0; justify-content: center; border-radius: 50%; }
	.as-float::before { width: 24px; height: 24px; }
	.as-rappel-head h2 { font-size: 32px; }
}
@media (max-width: 599px) {
	.as-rappel-head h2 { font-size: 27px; }
	.as-pastille { width: 48px; height: 48px; }
}

.as-msg.info { background: #F1EAF8; color: #2E2346; font-weight: 400; }
.as-msg.info p { margin: 0 0 8px; }
.as-msg.info p:first-child { font-weight: 700; }
.as-msg-link { display: inline-block; margin-top: 4px; background: var(--as-accent); color: #fff !important; text-decoration: none; font-weight: 700; padding: 12px 22px; border-radius: 999px; }
