/*
Theme Name:   Nadia Knows Lux
Theme URI:    https://nadiaknowslux.com
Description:  Block child theme of Twenty Twenty-Five for nadiaknowslux.com — stone / ink / brass editorial system, Bodoni Moda + Jost, cycling hero word.
Author:       Carlsbad Computer Services
Template:     twentytwentyfive
Version:      1.0.1
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 8.1
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  nkl-child
*/

/* Design tokens are declared in theme.json (palette, fonts, spacing). Rules here cover what theme.json cannot express: the cycling word, photo slots, pillar grid borders, chips, dark-scheme overrides. */

:root{
  --nkl-rule:#C9C5BA;
  --nkl-accent-ink:#5E5134;
  --nkl-bg-2:#E2DFD7;
}
@media (prefers-color-scheme:dark){
  :root{ --nkl-rule:#343842; --nkl-accent-ink:#D4C49A; --nkl-bg-2:#1E2128; }
  body{ background:#15171C; color:#ECEAE4; }
}

body{ -webkit-font-smoothing:antialiased; }
h1,h2,h3,.wp-block-heading{ text-wrap:balance; line-height:1.08; }

/* eyebrow */
.nkl-eyebrow{ font-family:var(--wp--preset--font-family--jost); font-weight:500; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--nkl-accent-ink); }

/* header mark */
.nkl-mark{ font-family:var(--wp--preset--font-family--bodoni-moda); font-size:1.25rem; letter-spacing:.04em; text-decoration:none; }
.nkl-mark i{ font-style:italic; color:var(--nkl-accent-ink); }
.nkl-nav a{ font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; }

/* hero brand line + cycling word */
.nkl-brand{ font-size:clamp(3rem,8.5vw,6.5rem); letter-spacing:-.01em; }
.nkl-cycle{ display:inline-grid; vertical-align:baseline; white-space:nowrap; }
.nkl-cycle .word{ grid-area:1/1; font-style:italic; color:var(--nkl-accent-ink); opacity:0; transform:translateY(.35em); transition:opacity .5s ease, transform .5s cubic-bezier(.2,.7,.2,1); }
.nkl-cycle .word.is-on{ opacity:1; transform:none; }
.nkl-cycle .word.is-out{ opacity:0; transform:translateY(-.35em); }
.nkl-tag{ font-family:var(--wp--preset--font-family--bodoni-moda); font-size:clamp(1.35rem,2.6vw,1.9rem); line-height:1.2; }
.nkl-tag em{ color:var(--nkl-accent-ink); font-style:italic; }
@media (prefers-reduced-motion:reduce){ .nkl-cycle .word{ transition:none; } }

/* buttons */
.nkl-btn .wp-block-button__link{ border:1px solid currentColor; border-radius:0; padding:.8rem 1.4rem; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500; background:transparent; color:inherit; }
.nkl-btn.is-solid .wp-block-button__link{ background:var(--wp--preset--color--ink); color:var(--wp--preset--color--stone); border-color:var(--wp--preset--color--ink); }
.nkl-btn .wp-block-button__link:hover{ border-color:var(--wp--preset--color--brass); color:var(--nkl-accent-ink); }
.nkl-btn.is-solid .wp-block-button__link:hover{ background:var(--nkl-accent-ink); color:var(--wp--preset--color--stone); }

/* photo slots — remove the class once a real image block replaces the slot */
.nkl-slot{ position:relative; background:var(--nkl-bg-2); border:1px solid var(--nkl-rule); display:grid; place-items:center; overflow:hidden; max-width:100%; }
.nkl-slot::before{ content:""; position:absolute; inset:12px; border:1px solid var(--nkl-rule); }
.nkl-slot p{ position:relative; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--wp--preset--color--ink-2); text-align:center; padding:1rem; max-width:22ch; line-height:1.5; margin:0; }
.nkl-slot.is-portrait{ aspect-ratio:4/5; }
.nkl-slot.is-wide{ aspect-ratio:16/9; }

/* rules */
.nkl-rule{ border:0; border-top:1px solid var(--nkl-rule); margin:0; }

/* pillars grid */
/* The pattern is one core/columns block with 12 columns; override its flex row with a wrapping grid. */
.wp-block-columns.nkl-pillars{ display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--nkl-rule); border-left:1px solid var(--nkl-rule); gap:0 !important; }
.nkl-pillars > .wp-block-column{ flex-basis:auto !important; border-right:1px solid var(--nkl-rule); border-bottom:1px solid var(--nkl-rule); padding:1.4rem 1.3rem 1.6rem; min-width:0; }
@media (max-width:860px){ .wp-block-columns.nkl-pillars{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .wp-block-columns.nkl-pillars{ grid-template-columns:1fr; } }
.nkl-pillars .wp-block-column > h3{ font-size:1.45rem; margin:.4rem 0 .5rem; }
.nkl-pillars .wp-block-column > p{ color:var(--wp--preset--color--ink-2); font-size:.95rem; line-height:1.5; margin:0; }
.nkl-num{ font-family:var(--wp--preset--font-family--bodoni-moda); font-size:.8rem; color:var(--nkl-accent-ink); letter-spacing:.1em; }

/* principles list */
.nkl-principle{ border-bottom:1px solid var(--nkl-rule); padding-block:1.4rem; }
.nkl-principle h3{ font-size:1.35rem; margin:0; }
.nkl-principle p{ color:var(--wp--preset--color--ink-2); margin:0; }

/* partners band */
.nkl-band{ background:var(--nkl-bg-2); }
.nkl-list{ list-style:none; padding:0; margin:0; display:grid; gap:1.2rem; max-width:66ch; }
.nkl-list li{ padding-left:1.4rem; position:relative; }
.nkl-list li::before{ content:""; position:absolute; left:0; top:.75em; width:.6rem; height:1px; background:var(--wp--preset--color--brass); }

/* launch form (Fluent Forms or plain HTML block) */
.nkl-form input[type=email], .nkl-form input[type=text]{ width:100%; padding:.9rem 1rem; border:1px solid var(--nkl-rule); background:var(--wp--preset--color--stone); color:inherit; font-family:var(--wp--preset--font-family--jost); font-size:1rem; border-radius:0; }
.nkl-form label{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; font-weight:500; }
.nkl-form button, .nkl-form .ff-btn-submit{ border:1px solid var(--wp--preset--color--ink); background:var(--wp--preset--color--ink); color:var(--wp--preset--color--stone); padding:.8rem 1.4rem; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500; border-radius:0; cursor:pointer; }
.nkl-note{ font-size:.85rem; color:var(--wp--preset--color--ink-2); }

/* footer */
.nkl-footer{ font-size:.85rem; color:var(--wp--preset--color--ink-2); }
.nkl-footer a{ text-decoration:none; }

/* focus */
a:focus-visible, button:focus-visible, input:focus-visible{ outline:2px solid var(--wp--preset--color--brass); outline-offset:3px; }

/* 1.0.1: filled slots — image covers the frame, inner rule stays on top */
.nkl-slot img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.nkl-slot::before{ z-index:1; pointer-events:none; }
.wp-block-image.nkl-slot{ margin:0; }
