/*
Theme Name: Koreograph
Theme URI: https://koreograph.com/pages/
Author: Koreograph
Description: Editorial help and information theme for Koreograph content pages.
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 7.2
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: koreograph
Tags: full-site-editing, block-styles, wide-blocks
*/

:root{
  --kg-bg:#f4efe6;
  --kg-bg-2:#ece5d6;
  --kg-paper:#fbf7ee;
  --kg-paper-elev:#ffffff;
  --kg-ink:#1a1612;
  --kg-ink-soft:#3d342a;
  --kg-ink-muted:#776a58;
  --kg-rule:#d4c8b0;
  --kg-rule-soft:#e3d9c4;
  --kg-accent:#c0421a;
  --kg-accent-deep:#8c2f12;
  --kg-accent-soft:rgba(192,66,26,.08);
  --kg-good:#3a6b4a;
  --kg-bad:#a83232;
  --kg-serif:'Fraunces', Georgia, serif;
  --kg-sans:'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --kg-mono:'JetBrains Mono', 'SF Mono', Menlo, monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  min-height:100vh;
  margin:0;
  background:var(--kg-bg);
  color:var(--kg-ink);
  font-family:var(--kg-sans);
  font-feature-settings:"ss01" 1, "cv11" 1;
  letter-spacing:-0.005em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background-image:
    radial-gradient(circle at 18% 12%, rgba(192,66,26,.04), transparent 38%),
    radial-gradient(circle at 88% 8%, rgba(60,40,20,.05), transparent 42%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='3'/><feColorMatrix values='0 0 0 0 0.1  0 0 0 0 0.08  0 0 0 0 0.05  0 0 0 0.04 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  mix-blend-mode:multiply;
  opacity:.7;
}
.wp-site-blocks{position:relative;z-index:1}

a{
  color:var(--kg-accent-deep);
  text-decoration-thickness:1px;
  text-underline-offset:.18em;
}
a:hover{color:var(--kg-accent)}

.kg-shell{
  width:min(100% - 2rem, 1180px);
  margin-inline:auto;
}
.kg-masthead{
  padding:1.15rem 0;
  border-bottom:1px solid var(--kg-rule);
}
.kg-masthead-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
}
.kg-brand{
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  color:var(--kg-ink);
  text-decoration:none;
}
.kg-brand svg{
  width:2rem;
  height:2rem;
  flex:0 0 auto;
}
.kg-brand-word{
  display:block;
  font-family:var(--kg-mono);
  font-size:.92rem;
  letter-spacing:.24em;
  font-weight:700;
  line-height:1;
}
.kg-brand-tagline{
  display:block;
  margin-top:.34rem;
  font-family:var(--kg-mono);
  color:var(--kg-accent-deep);
  font-size:.48rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
}
.kg-nav{
  display:flex;
  align-items:center;
  gap:.8rem;
  flex-wrap:wrap;
  justify-content:flex-end;
  font-size:.86rem;
}
.kg-nav a{
  color:var(--kg-ink-muted);
  text-decoration:none;
}
.kg-nav a:hover{color:var(--kg-accent-deep)}
.kg-nav .kg-app-link{
  min-height:2.45rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 .95rem;
  border:1px solid var(--kg-ink);
  background:var(--kg-ink);
  color:var(--kg-paper);
  text-decoration:none;
  border-radius:2px;
  font-weight:600;
}
.kg-nav .kg-app-link:hover{
  background:var(--kg-accent-deep);
  border-color:var(--kg-accent-deep);
  color:var(--kg-paper);
}

.kg-post-sticky-header{
  position:sticky;
  top:0;
  z-index:20;
  border-bottom:1px solid rgba(212,200,176,.86);
  background:rgba(244,239,230,.88);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.kg-post-sticky-inner{
  min-height:4rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.kg-post-ident{
  min-width:0;
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  color:var(--kg-ink);
  text-decoration:none;
}
.kg-post-ident svg{
  width:1.85rem;
  height:1.85rem;
  flex:0 0 auto;
}
.kg-post-ident .kg-brand-tagline{
  color:var(--kg-ink-muted);
}
.kg-post-app-link{
  min-height:2.45rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  padding:0 .95rem;
  border:1px solid var(--kg-ink);
  border-radius:2px;
  background:var(--kg-ink);
  color:var(--kg-paper);
  font-size:.86rem;
  font-weight:700;
  text-decoration:none;
}
.kg-post-app-link:hover{
  background:var(--kg-accent-deep);
  border-color:var(--kg-accent-deep);
  color:var(--kg-paper);
}

.kg-page-hero{
  padding:clamp(2.25rem,6vw,5rem) 0 clamp(1.75rem,5vw,3.5rem);
  border-bottom:1px solid var(--kg-ink);
}
.kg-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  color:var(--kg-accent-deep);
  font-family:var(--kg-mono);
  font-size:.68rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:.9rem;
}
.kg-eyebrow::before{
  content:"";
  width:1.5rem;
  height:1px;
  background:var(--kg-accent);
}
.kg-breadcrumb{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;
  color:var(--kg-accent-deep);
  font-family:var(--kg-mono);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1.4;
  margin:0 0 1rem;
  text-transform:uppercase;
}
.kg-breadcrumb::before{
  content:"";
  width:1.5rem;
  height:1px;
  background:var(--kg-accent);
}
.kg-breadcrumb a{
  color:inherit;
  text-decoration:none;
}
.kg-breadcrumb a:hover{
  color:var(--kg-ink);
}
.kg-breadcrumb-separator{
  color:var(--kg-ink-muted);
  margin:0 .45rem;
}
.kg-page-title,
h1.wp-block-post-title,
.wp-block-query-title{
  font-family:var(--kg-serif);
  font-size:clamp(2.8rem,7vw,5.6rem);
  line-height:.96;
  letter-spacing:-0.025em;
  font-weight:300;
  color:var(--kg-ink);
  margin:0;
  max-width:58rem;
  font-variation-settings:"opsz" 96, "SOFT" 50;
}
.kg-page-subtitle{
  max-width:42rem;
  margin:1.2rem 0 0;
  color:var(--kg-ink-soft);
  font-size:clamp(1rem,1.6vw,1.25rem);
  line-height:1.55;
}
.kg-content{
  padding:clamp(2rem,5vw,4rem) 0 clamp(3rem,7vw,6rem);
}
.kg-content-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(13rem,.28fr);
  gap:clamp(2rem,6vw,5rem);
  align-items:start;
}
.entry-content{
  font-size:1.02rem;
  line-height:1.72;
  color:var(--kg-ink-soft);
}
.entry-content > *{margin-top:0}
.entry-content h2,
.entry-content h3,
.entry-content h4{
  color:var(--kg-ink);
  font-family:var(--kg-serif);
  line-height:1.08;
  letter-spacing:-0.015em;
  font-weight:400;
  margin-top:2.2em;
  margin-bottom:.55em;
}
.entry-content h2{
  font-size:clamp(1.75rem,3vw,2.55rem);
  border-top:1px solid var(--kg-rule);
  padding-top:1rem;
}
.entry-content h3{font-size:clamp(1.35rem,2vw,1.8rem)}
.entry-content p,
.entry-content ul,
.entry-content ol{max-width:46rem}
.entry-content li{margin:.35rem 0}
.entry-content strong{color:var(--kg-ink)}
.entry-content blockquote{
  margin:2rem 0;
  padding:1.25rem 1.35rem;
  border-left:3px solid var(--kg-accent);
  background:rgba(255,255,255,.36);
  color:var(--kg-ink);
  font-family:var(--kg-serif);
  font-style:italic;
}
.entry-content code,
.entry-content pre{
  font-family:var(--kg-mono);
}
.entry-content pre{
  padding:1rem;
  background:var(--kg-ink);
  color:var(--kg-paper);
  overflow:auto;
}
.entry-content table{
  border-collapse:collapse;
  width:100%;
  margin:1.5rem 0;
  font-variant-numeric:tabular-nums lining-nums;
}
.entry-content th,
.entry-content td{
  padding:.75rem .8rem;
  border-bottom:1px solid var(--kg-rule);
  text-align:left;
}
.entry-content th{
  font-family:var(--kg-mono);
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--kg-ink-muted);
}

.kg-side-note{
  position:sticky;
  top:1.25rem;
  border:1px solid var(--kg-rule);
  background:rgba(251,247,238,.72);
  padding:1rem;
  color:var(--kg-ink-muted);
  font-size:.86rem;
  line-height:1.5;
}
.kg-side-note svg{
  width:2.2rem;
  height:2.2rem;
  color:var(--kg-ink);
  margin-bottom:.8rem;
}
.kg-side-note b{
  display:block;
  color:var(--kg-ink);
  font-family:var(--kg-mono);
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:.45rem;
}
.kg-side-note-list{
  display:grid;
  gap:.55rem;
  margin:.85rem 0 0;
  padding:0;
  list-style:none;
}
.kg-side-note-list li{
  position:relative;
  padding-left:1rem;
}
.kg-side-note-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.68em;
  width:.32rem;
  height:.32rem;
  border-radius:50%;
  background:var(--kg-accent);
}

.wp-block-button__link,
.wp-element-button{
  min-height:2.8rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:2px;
  border:1px solid var(--kg-ink);
  background:var(--kg-ink);
  color:var(--kg-paper);
  padding:.7rem 1rem;
  font-family:var(--kg-sans);
  font-weight:600;
  text-decoration:none;
}
.wp-block-button__link:hover,
.wp-element-button:hover{
  background:var(--kg-accent-deep);
  border-color:var(--kg-accent-deep);
  color:var(--kg-paper);
}
.wp-block-button.is-style-outline .wp-block-button__link{
  color:var(--kg-ink);
  background:transparent;
  border-color:var(--kg-rule);
}

.wp-block-post-featured-image img{
  border:1px solid var(--kg-rule);
  border-radius:2px;
}
.wp-block-separator{
  width:100%;
  height:1px;
  margin:clamp(1.75rem,4vw,3rem) 0;
  border:0;
  background:linear-gradient(90deg, transparent, var(--kg-rule) 14%, var(--kg-rule) 86%, transparent);
  opacity:1;
}
.wp-block-separator.is-style-wide{
  max-width:none;
}
.wp-block-separator.is-style-dots{
  height:auto;
  background:none;
  text-align:center;
  line-height:1;
}
.wp-block-separator.is-style-dots::before{
  color:var(--kg-accent-deep);
  font-size:1.2rem;
  letter-spacing:.7rem;
}
.wp-block-query .wp-block-post{
  border-top:1px solid var(--kg-rule);
  padding-top:1.25rem;
}
.wp-block-post-title a{
  color:var(--kg-ink);
  text-decoration:none;
}
.wp-block-post-title a:hover{color:var(--kg-accent-deep)}
.wp-block-post-date,
.wp-block-post-excerpt{
  color:var(--kg-ink-muted);
}

.wpcf7{
  max-width:46rem;
  margin:1.5rem 0 0;
}
.wpcf7-form{
  display:grid;
  gap:1rem;
  padding:clamp(1rem,3vw,1.35rem);
  border:1px solid var(--kg-rule);
  background:rgba(251,247,238,.72);
}
.wpcf7-form p{
  max-width:none;
  margin:0;
}
.wpcf7-form label{
  display:grid;
  gap:.45rem;
  color:var(--kg-ink-muted);
  font-family:var(--kg-mono);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.12em;
  line-height:1.35;
  text-transform:uppercase;
}
.wpcf7-form-control-wrap{
  display:block;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea{
  width:100%;
  border:1px solid var(--kg-rule);
  border-radius:2px;
  background:var(--kg-paper-elev);
  color:var(--kg-ink);
  font-family:var(--kg-sans);
  font-size:1rem;
  line-height:1.45;
  letter-spacing:0;
  outline:none;
  padding:.8rem .85rem;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.wpcf7 textarea{
  min-height:12rem;
  resize:vertical;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 textarea:focus{
  border-color:var(--kg-accent-deep);
  background:#fff;
  box-shadow:0 0 0 3px rgba(192,66,26,.12);
}
.wpcf7 input.wpcf7-not-valid,
.wpcf7 textarea.wpcf7-not-valid{
  border-color:var(--kg-bad);
  box-shadow:0 0 0 3px rgba(168,50,50,.1);
}
.wpcf7-not-valid-tip{
  display:block;
  margin-top:.35rem;
  color:var(--kg-bad);
  font-family:var(--kg-sans);
  font-size:.82rem;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
}
.wpcf7-submit{
  min-height:2.8rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  border:1px solid var(--kg-ink);
  border-radius:2px;
  background:var(--kg-ink);
  color:var(--kg-paper);
  cursor:pointer;
  font-family:var(--kg-sans);
  font-size:.95rem;
  font-weight:700;
  padding:.75rem 1.1rem;
  transition:background .18s ease, border-color .18s ease, transform .18s ease;
}
.wpcf7-submit:hover,
.wpcf7-submit:focus-visible{
  background:var(--kg-accent-deep);
  border-color:var(--kg-accent-deep);
  color:var(--kg-paper);
}
.wpcf7-submit:active{
  transform:translateY(1px);
}
.wpcf7-spinner{
  margin-left:.65rem;
}
.wpcf7-response-output{
  margin:.25rem 0 0 !important;
  padding:.8rem .9rem !important;
  border:1px solid var(--kg-rule) !important;
  background:var(--kg-paper-elev);
  color:var(--kg-ink-soft);
  font-size:.92rem;
  line-height:1.45;
}
.wpcf7 form.sent .wpcf7-response-output{
  border-color:rgba(58,107,74,.35) !important;
  background:rgba(58,107,74,.08);
  color:var(--kg-good);
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output{
  border-color:rgba(168,50,50,.35) !important;
  background:rgba(168,50,50,.08);
  color:var(--kg-bad);
}

.kg-footer{
  border-top:1px solid var(--kg-ink);
  padding:2rem 0;
  color:var(--kg-ink-muted);
  font-size:.88rem;
}
.kg-footer-inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
.kg-footer strong{
  display:block;
  color:var(--kg-ink);
  font-family:var(--kg-mono);
  letter-spacing:.18em;
  font-size:.75rem;
  margin-bottom:.4rem;
}

@media (max-width:760px){
  .kg-shell{
    width:min(100% - 2rem, 1180px);
  }
  .has-global-padding{
    padding-left:max(1rem, env(safe-area-inset-left));
    padding-right:max(1rem, env(safe-area-inset-right));
  }
  .kg-masthead-inner{
    align-items:flex-start;
    flex-direction:column;
  }
  .kg-nav{
    width:100%;
    justify-content:space-between;
  }
  .kg-nav .kg-app-link{
    width:100%;
  }
  .kg-post-sticky-inner{
    min-height:3.65rem;
    gap:.7rem;
  }
  .kg-post-ident{
    gap:.55rem;
  }
  .kg-post-ident svg{
    width:1.65rem;
    height:1.65rem;
  }
  .kg-post-ident .kg-brand-word{
    font-size:.78rem;
    letter-spacing:.18em;
  }
  .kg-post-ident .kg-brand-tagline{
    display:none;
  }
  .kg-post-app-link{
    min-height:2.3rem;
    padding:0 .8rem;
    font-size:.8rem;
  }
  .kg-content-grid{grid-template-columns:1fr}
  .kg-side-note{position:relative;top:auto}
  .kg-page-title,
  h1.wp-block-post-title,
  .wp-block-query-title{
    font-size:clamp(2.6rem,14vw,4.2rem);
  }
}
