/*
Theme Name: My Lineage Tree
Theme URI: https://mylineagetree.com
Author: MW Dimensions
Author URI: https://mwdimensions.com
Description: A complete family-tree application packaged as a WordPress theme. Visitors sign in with Google, build a family tree visually, save it to their own Google Drive, export it and share it read-only. Includes a SaaS landing page, dashboard, full-screen editor, pricing, account area, a one-time unlock, and demo content. Powered by MW Dimensions.
Version: 1.4.9
Requires at least: 6.0
Tested up to: 6.7
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: familytree-mvp
Tags: custom-logo, featured-images, one-column, translation-ready, custom-colors
*/

/* -------------------------------------------------------------------------
   Fonts (self-hosted, no third-party requests)
   Instrument Serif: display   |   Hanken Grotesk: interface and body
   ------------------------------------------------------------------------- */
@font-face {
	font-family: "FT Display";
	src: url("assets/fonts/instrument-serif-latin-400-normal.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "FT Display";
	src: url("assets/fonts/instrument-serif-latin-400-italic.woff2") format("woff2");
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "FT Sans";
	src: url("assets/fonts/hanken-grotesk-latin-wght-normal.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

/* -------------------------------------------------------------------------
   Design tokens
   ------------------------------------------------------------------------- */
:root {
	/* Palette: aubergine ink, lavender paper, saffron thread */
	--ft-paper: #f6f4fa;
	--ft-surface: #ffffff;
	--ft-lilac: #ece8f6;
	--ft-mist: #dcd6ea;
	--ft-ink: #241b3b;
	--ft-ink-deep: #170f2a;
	--ft-ink-soft: #4a3f66;
	--ft-muted: #6b6384;
	--ft-thread: #f2b300;
	--ft-thread-deep: #c88700;
	--ft-meadow: #2e8b6a;
	--ft-meadow-soft: #dcf1e8;
	--ft-danger: #c0392b;
	--ft-danger-soft: #fbe6e3;

	--ft-line: rgba(36, 27, 59, 0.12);
	--ft-line-strong: rgba(36, 27, 59, 0.22);
	/* Stable aliases used by editor components so future visual enhancements stay on-brand. */
	--ft-border: var(--ft-line);
	--ft-purple: var(--ft-ink-soft);

	--ft-font-display: "FT Display", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
	--ft-font-sans: "FT Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	--ft-r-sm: 8px;
	--ft-r-md: 12px;
	--ft-r-lg: 20px;
	--ft-r-xl: 32px;

	--ft-shadow-sm: 0 1px 2px rgba(36, 27, 59, 0.06), 0 2px 8px rgba(36, 27, 59, 0.05);
	--ft-shadow-md: 0 2px 6px rgba(36, 27, 59, 0.06), 0 12px 32px rgba(36, 27, 59, 0.12);
	--ft-shadow-lg: 0 8px 24px rgba(23, 15, 42, 0.14), 0 32px 80px rgba(23, 15, 42, 0.22);
	--ft-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");

	--ft-wrap: 1200px;
	--ft-header-h: 76px;
}

/* -------------------------------------------------------------------------
   Base
   ------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--ft-header-h) + 16px);
}

body {
	margin: 0;
	background: var(--ft-paper);
	color: var(--ft-ink);
	font-family: var(--ft-font-sans);
	font-size: 17px;
	line-height: 1.6;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img, svg, video { max-width: 100%; height: auto; }
svg { display: block; }

h1, h2, h3, h4 {
	font-family: var(--ft-font-display);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: -0.015em;
	margin: 0 0 0.5em;
	color: var(--ft-ink);
}
h1 { font-size: clamp(3rem, 7.2vw, 6rem); }
h2 { font-size: clamp(2.25rem, 4.6vw, 3.75rem); }
h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.12; }
h4 { font-size: 1.25rem; }

p { margin: 0 0 1em; }
a { color: inherit; text-decoration-color: var(--ft-thread); text-underline-offset: 3px; text-decoration-thickness: 2px; }
a:hover { text-decoration-color: var(--ft-ink); }

:focus-visible {
	outline: 3px solid var(--ft-thread);
	outline-offset: 2px;
	border-radius: 4px;
}

::selection { background: var(--ft-thread); color: var(--ft-ink-deep); }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; z-index: 100000;
	left: 12px; top: 12px; padding: 10px 16px; background: var(--ft-ink); color: #fff;
	border-radius: var(--ft-r-sm); text-decoration: none;
}

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

/* Support / review form */
.ft-feedback-page{padding:72px 0;background:linear-gradient(180deg,#fbfafd 0%,#f5f2f8 100%)}
.ft-feedback-wrap{max-width:820px}.ft-feedback-intro{max-width:700px;margin-bottom:28px}.ft-feedback-intro h1{margin:.35rem 0 .8rem;font-size:clamp(2rem,4vw,3.25rem);line-height:1.06;color:#241b3b}.ft-feedback-intro p{font-size:1.08rem;line-height:1.7;color:#61596a}.ft-feedback-form{background:#fff;border:1px solid rgba(36,27,59,.09);border-radius:22px;padding:28px;box-shadow:0 16px 44px rgba(36,27,59,.08)}.ft-field-grid{display:grid;gap:16px}.ft-field-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-feedback-form .ft-field{display:grid;gap:7px;margin-bottom:16px}.ft-feedback-form .ft-field>span{font-weight:700;color:#342a43}.ft-feedback-form input,.ft-feedback-form select,.ft-feedback-form textarea{width:100%;box-sizing:border-box;border:1px solid #d8d2df;border-radius:11px;background:#fff;color:#2f2937;font:inherit;padding:12px 13px;min-height:46px}.ft-feedback-form textarea{resize:vertical;min-height:150px}.ft-feedback-form input:focus,.ft-feedback-form select:focus,.ft-feedback-form textarea:focus{outline:3px solid rgba(91,63,163,.15);border-color:#765bb4}.ft-feedback-privacy{color:#746d7d;font-size:.9rem;line-height:1.55}.ft-feedback-notice{padding:14px 16px;border-radius:12px;margin:0 0 20px;font-weight:600}.ft-feedback-notice--success{background:#edf8f0;color:#28633a;border:1px solid #cfe9d6}.ft-feedback-notice--error{background:#fff1f1;color:#8b2d2d;border:1px solid #f0cccc}.ft-feedback-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:640px){.ft-feedback-page{padding:48px 0}.ft-feedback-form{padding:20px;border-radius:18px}.ft-field-grid--2{grid-template-columns:1fr}.ft-feedback-intro h1{font-size:clamp(1.9rem,9vw,2.5rem)}}
