/*
Theme Name: Kanqual
Description: Kanqual marketing website child theme for Twenty Twenty-Five.
Author: Kanqual
Template: twentytwentyfive
Version: 0.1.0
Requires at least: 6.7
Requires PHP: 7.2
Text Domain: kanqual
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* Homepage colors inherit the active WordPress palette. */
.kq-home, .kq-themed-content {
  --kq-paper: var(--wp--preset--color--base, #fff);
  --kq-ink: var(--wp--preset--color--contrast, #111);
  --kq-accent: var(--wp--preset--color--accent-3, #503aa8);
  --kq-soft: var(--wp--preset--color--accent-5, #fbfaf3);
  --kq-line: color-mix(in srgb, var(--kq-ink) 16%, transparent);
  background: var(--kq-paper);
  color: var(--kq-ink);
  font-family: var(--wp--preset--font-family--inter, Arial, sans-serif);
  font-size: 17px;
  line-height: 1.7;
}
.kq-home *, .kq-home *::before, .kq-home *::after { box-sizing: border-box; }
.kq-home :where(h1,h2,h3,p,figure) { margin: 0; }
.kq-home > *, .kq-main > * { margin-block-start: 0; }
.kq-home h1, .kq-home h2, .kq-home h3 {
  font-family: var(--wp--preset--font-family--ubuntu, Arial, sans-serif);
  font-weight: 500;
  text-wrap: balance;
}
.kq-wrap { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.kq-header { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-block:26px; border-bottom:1px solid var(--kq-line); }
.kq-logo img { display:block; height:auto; max-width:100%; }
.kq-nav { display:flex; align-items:center; gap:28px; font-size:13px; font-weight:600; }
.kq-nav a { text-decoration:none; }
.kq-nav a:hover { text-decoration:underline; }
.kq-nav-download { border:1px solid var(--kq-line); padding:9px 17px; border-radius:6px; }
.kq-hero { padding-top:86px; text-align:center; }
.kq-eyebrow, .kq-number { font-size:12px; letter-spacing:.13em; font-weight:600; }
.kq-hero h1 { font-size:clamp(48px, 6.8vw, 88px); line-height:1.04; letter-spacing:-.055em; margin:24px auto; }
.kq-intro { max-width:660px; margin-inline:auto !important; font-size:19px; line-height:1.7; }
.kq-home .wp-block-buttons { gap:12px; margin-top:28px; }
.kq-hero .wp-block-buttons, .kq-closing .wp-block-buttons { justify-content:center; }
.kq-home .wp-block-button__link { border-radius:6px; padding:14px 24px; font-family:inherit; font-size:14px; font-weight:600; line-height:1.5; text-decoration:none; }
.kq-home .kq-primary .wp-block-button__link { background:var(--kq-ink); color:var(--kq-paper); border:1px solid var(--kq-ink); }
.kq-home .is-style-outline .wp-block-button__link { border:1px solid var(--kq-line); color:var(--kq-ink); background:transparent; }
.kq-home a:focus-visible { outline:3px solid var(--kq-accent); outline-offset:5px; }
.kq-home .wp-block-button__link:hover { opacity:.82; }
.kq-note { font-size:12px; margin-top:16px !important; }
.kq-preview { margin-top:56px !important; text-align:left; }
.kq-preview-bar { display:flex; justify-content:space-between; gap:16px; background:var(--kq-ink); color:var(--kq-paper); padding:16px 24px; font-size:12px; border-radius:12px 12px 0 0; }
.kq-preview-bar span:last-child { font-size:10px; letter-spacing:.14em; }
.kq-preview-canvas { display:grid; grid-template-columns:190px 1fr; min-height:360px; background:var(--kq-soft); border:1px solid var(--kq-line); border-top:0; border-radius:0 0 12px 12px; overflow:hidden; }
.kq-preview-sidebar { padding:35px 24px; border-right:1px solid var(--kq-line); background:color-mix(in srgb,var(--kq-paper) 60%,transparent); }
.kq-preview-sidebar span { display:block; font-size:12px; margin-bottom:20px; }
.kq-preview-sidebar i { display:block; width:80%; height:7px; background:var(--kq-line); border-radius:20px; margin-bottom:18px; }
.kq-preview-sidebar i:nth-child(3n) { width:55%; }
.kq-preview-sidebar span:not(:first-child) { margin-top:40px; }
.kq-preview-center { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:15px; padding:30px; text-align:center; background-image:radial-gradient(var(--kq-line) .7px, transparent .7px); background-size:20px 20px; }
.kq-preview-symbol { font-size:68px; color:var(--kq-accent); line-height:1; }
.kq-preview-center strong { font-family:var(--wp--preset--font-family--ubuntu, sans-serif); font-size:25px; font-weight:500; }
.kq-preview-center > span:last-child { font-size:12px; }
.kq-preview figcaption { text-align:center; font-size:11px; margin-top:12px; }
.kq-audience { display:flex; justify-content:space-between; gap:25px; padding-block:38px; font-size:12px; border-bottom:1px solid var(--kq-line); }
.kq-audience p:first-child { font-weight:600; }
.kq-features { padding-block:100px 50px; }
.kq-home h2 { font-size:clamp(36px,4.5vw,58px); line-height:1.12; letter-spacing:-.045em; margin-top:20px; }
.kq-feature-row { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; padding-block:64px; border-bottom:1px solid var(--kq-line); }
.kq-feature-row:last-child { border:0; }
.kq-feature-copy h3 { font-size:clamp(28px,3vw,39px); line-height:1.16; letter-spacing:-.035em; margin-block:18px; }
.kq-feature-copy > p:last-child { max-width:450px; font-size:16px; }
.kq-number { color:var(--kq-accent); }
.kq-feature-visual { min-height:290px; border-radius:10px; background:var(--kq-soft); display:flex; flex-direction:column; justify-content:center; align-items:center; padding:30px; border:1px solid var(--kq-line); }
.kq-feature-visual figcaption { font-size:10px; text-align:center; margin-top:28px; }
.kq-feature-reverse .kq-feature-copy { order:2; }
.kq-tiles { width:100%; max-width:320px; display:grid; grid-template-columns:1fr 1fr; gap:12px; transform:rotate(-3deg); }
.kq-tiles span { padding:23px 15px; border:1px solid var(--kq-line); background:var(--kq-paper); border-radius:6px; font-size:13px; text-align:center; box-shadow:0 4px 0 var(--kq-line); }
.kq-map { display:flex; flex-direction:column; align-items:center; width:100%; }
.kq-map span { font-size:12px; padding:8px 20px; border:1px solid var(--kq-line); border-radius:30px; background:var(--kq-paper); }
.kq-map span + span::before { content:''; position:absolute; height:20px; width:1px; background:var(--kq-ink); left:50%; top:-21px; }
.kq-map span + span { margin-top:20px; position:relative; }
.kq-map .kq-map-center { background:var(--kq-ink); color:var(--kq-paper); }
.kq-models { display:flex; flex-direction:column; align-items:center; gap:8px; font-size:12px; }
.kq-models span { padding:8px 20px; border:1px solid var(--kq-line); background:var(--kq-paper); border-radius:6px; }
.kq-models b { line-height:1; transform:rotate(90deg); font-size:20px; font-weight:400; }
.kq-models strong { font-size:18px; font-weight:500; }
.kq-approach { background:var(--kq-ink); color:var(--kq-paper); padding-block:85px; }
.kq-approach-intro { max-width:620px; margin-top:24px !important; font-size:17px; }
.kq-approach .wp-block-columns { margin-top:56px; margin-bottom:0; gap:40px; }
.kq-approach .wp-block-column { border-top:1px solid color-mix(in srgb,var(--kq-paper) 30%,transparent); padding-top:24px; }
.kq-approach h3 { font-size:23px; }
.kq-approach .wp-block-column p { font-size:14px; margin-top:14px; }
.kq-closing { padding-block:95px 55px; text-align:center; }
.kq-closing > p:not(.kq-eyebrow) { margin-top:22px; }
.kq-workshops { margin-top:62px; padding:32px 20px; background:var(--kq-soft); border-radius:8px; }
.kq-workshops h3 { font-size:23px; }
.kq-workshops p { margin-top:10px; font-size:14px; }
.kq-footer { display:flex; justify-content:space-between; gap:24px; border-top:1px solid var(--kq-line); padding-block:26px; font-size:12px; }
@media (max-width: 900px) {
  .kq-header { flex-direction:column; gap:20px; }
  .kq-nav { flex-wrap:wrap; justify-content:center; gap:12px 22px; }
  .kq-feature-row { gap:32px; }
  .kq-audience { flex-direction:column; gap:8px; text-align:center; }
}
@media (max-width: 600px) {
  .kq-wrap { width:calc(100% - 36px); }
  .kq-hero { padding-top:50px; }
  .kq-intro { font-size:16px; }
  .kq-home h1 { font-size:48px; }
  .kq-preview-bar { padding:14px; }
  .kq-preview-bar span:last-child { display:none; }
  .kq-preview-canvas { grid-template-columns:1fr; min-height:280px; }
  .kq-preview-sidebar { display:none; }
  .kq-features { padding-block:60px 20px; }
  .kq-feature-row { grid-template-columns:1fr; padding-block:40px; }
  .kq-feature-reverse .kq-feature-copy { order:0; }
  .kq-feature-visual { min-height:260px; }
  .kq-approach { padding-block:55px; }
  .kq-closing { padding-block:60px 35px; }
  .kq-footer { flex-direction:column; gap:8px; }
}

/* Shared pages and documentation. */
.kq-nav [aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; }
.kq-page-layout { padding-block:64px 90px; min-height:65vh; }
.kq-page-main { min-width:0; max-width:900px; margin-inline:auto; }
.kq-page-main > h1 { font-size:clamp(40px,6vw,70px); line-height:1.08; letter-spacing:-.045em; margin-bottom:32px; }
.kq-page-main .wp-block-post-content > * + * { margin-top:24px; }
.kq-page-main h2 { font-size:clamp(27px,3.4vw,38px); margin-top:48px; }
.kq-page-main h3 { font-size:24px; margin-top:24px; }
.kq-page-main li { margin-block:10px; }
.kq-page-main table { font-size:15px; width:100%; border-collapse:collapse; }
.kq-page-main td, .kq-page-main th { border:1px solid var(--kq-line); padding:16px; text-align:left; }
.kq-page-main thead { background:var(--kq-soft); }
.kq-page-main .wp-block-table { overflow-x:auto; }
.kq-page-main .kq-page-intro { font-size:21px; max-width:760px; }
.kq-page-layout:has(.kq-doc-nav) { display:grid; grid-template-columns:230px minmax(0,1fr); align-items:start; gap:64px; }
.kq-doc-nav { position:sticky; top:32px; border-right:1px solid var(--kq-line); padding-right:24px; max-height:calc(100vh - 64px); overflow-y:auto; }
body.admin-bar .kq-doc-nav { top:64px; max-height:calc(100vh - 96px); }
.kq-doc-nav ul { list-style:none; padding:0; margin:20px 0 0; }
.kq-doc-nav ul ul { padding-left:14px; margin-top:8px; }
.kq-doc-nav li { margin-block:12px; line-height:1.5; font-size:14px; }
.kq-doc-nav a { display:block; padding:5px 8px; border-radius:4px; text-decoration:none; }
.kq-doc-nav a:hover { background:var(--kq-soft); text-decoration:underline; }
.kq-doc-nav .current_page_item > a, .kq-doc-nav a[aria-current="page"] { background:var(--kq-soft); font-weight:700; border-left:3px solid var(--kq-accent); }
@media (max-width:780px) {
  .kq-page-layout:has(.kq-doc-nav) { display:block; }
  .kq-doc-nav, body.admin-bar .kq-doc-nav { position:static; max-height:none; border-right:0; border-bottom:1px solid var(--kq-line); padding:0 0 24px; margin-bottom:36px; }
  .kq-page-layout { padding-block:40px 60px; }
}

/* Twenty Twenty-Five pattern adaptations: preserve native blocks and theme presets. */
.kq-docs-intro { padding-block:48px 20px; text-align:center; }
.kq-docs-intro h1 { font-size:clamp(36px,5vw,60px); line-height:1.1; margin-bottom:20px; }
.kq-docs-intro .kq-note { margin-top:20px; }
.kq-page-main:has(.kq-themed-content) { max-width:none; width:100%; }
.kq-page-main:has(.kq-themed-content) > h1 {
  font-family:inherit; font-size:13px; letter-spacing:.14em; line-height:1.5;
  text-transform:uppercase; font-weight:600; margin-bottom:24px;
}
.kq-themed-content > * + * { margin-block-start:28px; }
.kq-themed-content .kq-pattern-hero,
.kq-themed-content .kq-pattern-contact {
  border-radius:16px;
  background:var(--kq-soft);
  border:1px solid var(--kq-line);
  padding:clamp(36px,6vw,80px) clamp(20px,4vw,56px) !important;
  text-align:center;
}
.kq-themed-content .kq-pattern-hero h2 {
  font-size:clamp(36px,5.5vw,68px); line-height:1.08; letter-spacing:-.045em;
  margin-block:24px; font-weight:500;
}
.kq-themed-content .kq-pattern-intro {
  font-size:18px; line-height:1.7; max-width:680px; margin-inline:auto;
}
.kq-themed-content .kq-pattern-hero .wp-block-buttons,
.kq-themed-content .kq-pattern-contact .wp-block-buttons { justify-content:center; margin-top:28px; }
.kq-themed-content .kq-pattern-grid { padding-block:48px !important; }
.kq-themed-content .kq-pattern-grid > h2 { margin-top:0; margin-bottom:28px; font-size:clamp(27px,3vw,38px); }
.kq-themed-content .kq-pattern-grid > .wp-block-columns { margin-top:28px !important; gap:24px; }
.kq-themed-content .kq-pattern-card {
  padding:28px !important; border:1px solid var(--kq-line); border-radius:10px;
  background:var(--kq-paper); min-width:0;
}
.kq-themed-content .kq-pattern-card:nth-child(2) { background:var(--kq-soft); }
.kq-themed-content .kq-pattern-card .kq-eyebrow { color:var(--kq-accent); font-size:11px; letter-spacing:.12em; }
.kq-themed-content .kq-pattern-card h3 { margin-block:24px 16px; font-size:27px; line-height:1.2; letter-spacing:-.025em; }
.kq-themed-content .kq-pattern-card p { font-size:15px; line-height:1.75; }
.kq-themed-content .kq-pattern-card > * + * { margin-top:18px; }
.kq-themed-content .kq-platform-arch { font-weight:600; }
.kq-themed-content .kq-pattern-card .wp-block-button__link { padding:12px 16px; font-size:13px; }
.kq-themed-content .kq-pattern-contact .is-style-text-display {
  font-family:var(--wp--preset--font-family--ubuntu, sans-serif);
  font-size:clamp(30px,4.6vw,58px); letter-spacing:-.035em; line-height:1.2; margin-block:28px;
}
.kq-themed-content .kq-pattern-contact .is-style-text-display a { font-size:clamp(21px,3.7vw,45px); overflow-wrap:anywhere; }
.kq-themed-content .kq-pattern-contact p:not(.is-style-text-display):not(.kq-eyebrow) { max-width:640px; margin-inline:auto; }
.kq-page-layout:has(.kq-doc-nav) .kq-pattern-hero h2 { font-size:clamp(32px,4vw,48px); }
.kq-page-layout:has(.kq-doc-nav) .kq-pattern-card { padding:22px !important; }
@media (max-width: 1000px) and (min-width: 782px) {
  .kq-page-layout:has(.kq-doc-nav) { grid-template-columns:190px minmax(0,1fr); gap:28px; }
  .kq-page-layout:has(.kq-doc-nav) .kq-pattern-grid > .wp-block-columns { flex-direction:column; }
}
@media (max-width: 600px) {
  .kq-themed-content .kq-pattern-card { padding:24px !important; }
  .kq-themed-content .kq-pattern-grid { padding-block:30px !important; }
}
