/*
Theme Name: Gregorio Tech
Theme URI: https://gregoriotech.com
Author: Gregorio Tech
Author URI: https://gregoriotech.com
Description: Minimalist landing theme for Gregorio Tech — data audit and analytics agency. Includes a front-page template and a Pricing page template matching gregoriotech.com's real tiers.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: gregoriotech
*/

:root{
  --paper:#F7F7F4;
  --panel:#FFFFFF;
  --ink:#14181C;
  --ink-soft:#565F68;
  --line:rgba(20,24,28,0.12);
  --flag:#037C69;
  --flag-soft:rgba(3,124,105,0.09);
  --alert:#C22B1E;
  --alert-soft:rgba(194,43,30,0.08);
  --sage-line: rgba(20,24,28,0.06);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%; text-size-adjust:100%;}
body{background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.55; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden;}
@media (prefers-reduced-motion: reduce){ *{animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important;} }
h1,h2,h3{font-family:'Space Grotesk',sans-serif; font-weight:600; letter-spacing:-0.01em; color:var(--ink);}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;}
img{max-width:100%; display:block; height:auto;}
button,input{font-family:inherit; -webkit-appearance:none; appearance:none;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }
@media (max-width:400px){ .wrap{padding:0 16px;} }
.screen-reader-text{position:absolute; left:-9999px;}

/* ===== header ===== */
header.site-header{position:sticky; top:0; z-index:50; background:rgba(247,247,244,0.92); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:18px 0; gap:16px; position:relative;}
.logo{display:flex; align-items:center; gap:11px; text-decoration:none; flex-shrink:0;}
.logo .mark{height:26px; width:auto; flex-shrink:0; display:block;}
.logo .word{font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:18px; letter-spacing:-0.01em; white-space:nowrap;}
@media (max-width:420px){ .logo .word{font-size:16px;} }

.navlinks{display:flex; gap:30px; font-size:14px; font-weight:500; list-style:none;}
.navlinks a{text-decoration:none; color:var(--ink-soft); border-bottom:1px solid transparent; padding-bottom:2px; transition:color .15s,border-color .15s;}
.navlinks a:hover, .navlinks a:focus-visible, .navlinks .current-menu-item a{color:var(--ink); border-color:var(--flag);}

.nav-cta{background:var(--ink); color:var(--paper); padding:10px 18px; font-size:13px; font-weight:600; text-decoration:none; letter-spacing:.01em; border:1px solid var(--ink); white-space:nowrap; flex-shrink:0;}
.nav-cta:hover{background:var(--flag); border-color:var(--flag); color:var(--paper);}

/* mobile menu toggle (hamburger) */
.menu-toggle{display:none; flex-direction:column; justify-content:center; gap:5px; width:38px; height:38px; background:none; border:1px solid var(--line); cursor:pointer; flex-shrink:0;}
.menu-toggle span{display:block; width:18px; height:2px; background:var(--ink); margin:0 auto; transition:transform .2s, opacity .2s;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:840px){
  .nav .navlinks{
    display:flex; flex-direction:column; gap:0; width:100%;
    position:absolute; left:0; right:0; top:100%;
    background:var(--paper); border-bottom:1px solid var(--line);
    max-height:0; overflow:hidden; transition:max-height .25s ease;
  }
  .nav.menu-open .navlinks{max-height:420px;}
  .navlinks a{display:block; padding:16px 20px; border-bottom:1px solid var(--line);}
  .navlinks a:hover, .navlinks a:focus-visible{border-color:var(--line); background:var(--flag-soft);}
  .menu-toggle{display:flex;}
  .nav-cta{display:none;}
}
@media (min-width:841px){
  .navlinks{position:static; max-height:none; overflow:visible;}
}

/* ===== hero ===== */
.hero{padding:96px 0 100px;}
.hero-inner{display:grid; grid-template-columns:1.05fr 0.95fr; gap:64px; align-items:center; min-width:0;}
.hero-inner > *{min-width:0;}
@media (max-width:960px){ .hero-inner{grid-template-columns:1fr;} }
.eyebrow{display:flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--flag); margin-bottom:22px;}
.eyebrow::before{content:""; width:18px; height:1px; background:var(--flag);}
.hero h1{font-size:clamp(34px,4.6vw,54px); line-height:1.08; margin-bottom:22px; max-width:12ch; overflow-wrap:break-word;}
.hero h1 .flagged{background:var(--flag-soft); padding:0 4px; border-radius:2px; -webkit-box-decoration-break:clone; box-decoration-break:clone;}
.hero p.lede{font-size:17px; color:var(--ink-soft); max-width:44ch; margin-bottom:34px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:13px 24px; font-size:14px; font-weight:600; text-decoration:none; border:1px solid var(--ink); transition:all .15s;}
.btn-solid{background:var(--ink); color:var(--paper);}
.btn-solid:hover{background:var(--flag); border-color:var(--flag); color:#fff;}
.btn-outline{background:transparent; color:var(--ink);}
.btn-outline:hover{border-color:var(--flag); color:var(--flag);}

/* discrepancy ledger visual */
.ledger{background:var(--panel); border:1px solid var(--line); box-shadow:0 30px 70px rgba(20,24,28,0.08);}
.ledger-head{display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid var(--line);}
.ledger-head .lt{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft); letter-spacing:.04em; text-transform:uppercase;}
.ledger-head .dots{display:flex; gap:6px;}
.ledger-head .dots span{width:8px; height:8px; border-radius:50%; background:var(--line);}
.ledger-row{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:10px; padding:13px 20px; border-bottom:1px solid var(--sage-line); font-family:'IBM Plex Mono',monospace; font-size:12.5px; align-items:center;}
.ledger-row.head{color:var(--ink-soft); font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; background:#FAFAF8;}
.ledger-row .val{text-align:right;}
.ledger-row.flagged{background:var(--alert-soft); position:relative;}
.ledger-row.flagged .val{color:var(--alert); font-weight:500;}
.ledger-row.flagged::before{content:"⚑"; position:absolute; left:-2px; top:50%; transform:translateY(-50%); color:var(--alert); font-size:11px;}
.ledger-foot{padding:16px 20px; font-size:12px; color:var(--ink-soft); line-height:1.6;}
.ledger-foot b{color:var(--alert);}

/* ===== section shell ===== */
section{padding:88px 0;}
.section-head{max-width:620px; margin-bottom:52px;}
.tag{font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--flag); margin-bottom:14px; display:block;}
.section-head h2{font-size:clamp(26px,3.2vw,36px); margin-bottom:14px;}
.section-head p{color:var(--ink-soft); font-size:16px; max-width:52ch;}
.divider{border:none; border-top:1px solid var(--line);}

/* ===== benefits ===== */
.benefits{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:760px){ .benefits{grid-template-columns:1fr;} }
.benefit{background:var(--panel); padding:34px 32px;}
.benefit .num{font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--flag); margin-bottom:14px;}
.benefit h3{font-size:19px; margin-bottom:10px;}
.benefit p{font-size:14.5px; color:var(--ink-soft);}

/* ===== services ===== */
.services-list{border-top:1px solid var(--line);}
.service-row{display:grid; grid-template-columns:60px 1fr auto; gap:24px; align-items:baseline; padding:26px 0; border-bottom:1px solid var(--line);}
.service-row .idx{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--flag);}
.service-row h3{font-size:19px; font-weight:600;}
.service-row p{font-size:14px; color:var(--ink-soft); margin-top:4px;}
.service-row .cat{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em; white-space:nowrap;}
@media (max-width:700px){ .service-row{grid-template-columns:40px 1fr;} .service-row .cat{grid-column:2; margin-top:6px;} }

/* ===== industry trends ===== */
.trends-strip{background:var(--ink); color:var(--paper);}
.trends-strip .section-head h2, .trends-strip .tag{color:var(--paper);}
.trends-strip .tag{color:#5FC3AE;}
.trends-strip .section-head p{color:rgba(247,247,244,0.6);}
.trend-cols{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(247,247,244,0.12); border:1px solid rgba(247,247,244,0.12);}
@media (max-width:760px){ .trend-cols{grid-template-columns:1fr;} }
.trend-col{background:#1B2026; padding:30px 28px;}
.trend-col h4{font-family:'Space Grotesk',sans-serif; font-size:18px; margin-bottom:20px; display:flex; align-items:center; gap:10px;}
.trend-col h4 .swatch{width:8px; height:8px; background:var(--flag);}
.trend-item{padding:14px 0; border-top:1px solid rgba(247,247,244,0.1);}
.trend-item:first-of-type{border-top:none;}
.trend-item .stat{font-family:'IBM Plex Mono',monospace; font-size:20px; color:#fff; margin-bottom:4px;}
.trend-item .desc{font-size:13.5px; color:rgba(247,247,244,0.62); line-height:1.5;}
.trends-source{font-size:11.5px; color:rgba(247,247,244,0.4); margin-top:18px; line-height:1.6;}

/* ===== CTA / contact (home) ===== */
.cta-section{text-align:left;}
.cta-inner{display:grid; grid-template-columns:1.2fr 0.8fr; gap:60px; border-top:1px solid var(--line); padding-top:56px;}
@media (max-width:820px){ .cta-inner{grid-template-columns:1fr;} }
.cta-inner h2{font-size:clamp(26px,3.4vw,38px); margin-bottom:18px; max-width:14ch;}
.cta-inner p{color:var(--ink-soft); font-size:16px; max-width:46ch; margin-bottom:28px;}
.cta-details{font-size:13.5px; color:var(--ink-soft); display:grid; gap:18px;}
.cta-details .block b{display:block; color:var(--ink); font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px;}

/* ===== pricing page ===== */
.page-head{padding:80px 0 48px;}
.page-head h1{font-size:clamp(32px,4.2vw,48px); line-height:1.1; max-width:14ch; margin-bottom:16px;}
.page-head p{color:var(--ink-soft); font-size:16.5px; max-width:56ch;}
.toggle-row{display:flex; align-items:center; gap:14px; margin:36px 0 8px; flex-wrap:wrap;}
.toggle{display:flex; background:var(--panel); border:1px solid var(--line); padding:4px; gap:2px;}
.toggle button{border:none; background:none; padding:9px 20px; font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:500; color:var(--ink-soft); cursor:pointer; letter-spacing:.02em;}
.toggle button.active{background:var(--ink); color:var(--paper);}
.toggle-note{font-size:12.5px; color:var(--ink-soft);}
.pricing-section{padding:24px 0 90px;}
.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:900px){ .plans{grid-template-columns:1fr;} }
.plans[data-period="monthly"] .annual, .plans[data-period="annual"] .monthly{display:none;}
.plan{background:var(--panel); padding:34px 30px; display:flex; flex-direction:column;}
.plan.highlight{background:var(--ink); color:var(--paper);}
.plan.highlight .plan-name, .plan.highlight h3{color:var(--paper);}
.plan.highlight .price-sub, .plan.highlight .plan-desc, .plan.highlight li{color:rgba(247,247,244,0.7);}
.plan.highlight ul li::before{color:#5FC3AE;}
.plan.highlight .plan-cta{background:var(--flag); border-color:var(--flag); color:#fff;}
.plan-name{font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--flag); margin-bottom:14px;}
.plan.highlight .plan-name{color:#5FC3AE;}
.plan h3{font-size:24px; margin-bottom:4px;}
.price-sub{font-size:13px; color:var(--ink-soft); margin-bottom:18px;}
.plan-desc{font-size:14px; color:var(--ink-soft); margin-bottom:22px; min-height:38px;}
.plan ul{list-style:none; margin-bottom:28px; flex-grow:1;}
.plan li{font-size:13.5px; color:var(--ink-soft); padding:8px 0 8px 20px; position:relative; border-top:1px solid var(--sage-line);}
.plan li:first-child{border-top:none;}
.plan li::before{content:"—"; position:absolute; left:0; color:var(--flag);}
.plan-cta{display:block; text-align:center; padding:13px; border:1px solid var(--ink); background:transparent; color:var(--ink); text-decoration:none; font-size:14px; font-weight:600; transition:all .15s;}
.plan-cta:hover{background:var(--flag); border-color:var(--flag); color:#fff;}
.pricing-note{max-width:720px; margin-top:44px; font-size:13.5px; color:var(--ink-soft); line-height:1.7;}
.pricing-note b{color:var(--ink);}
.faq{border-top:1px solid var(--line); margin-top:70px; padding-top:56px;}
.faq-head{max-width:560px; margin-bottom:40px;}
.faq-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:760px){ .faq-grid{grid-template-columns:1fr;} }
.faq-item{background:var(--panel); padding:26px 28px;}
.faq-item h4{font-size:15.5px; margin-bottom:8px; font-weight:600;}
.faq-item p{font-size:13.5px; color:var(--ink-soft);}
.cta-band{background:var(--ink); color:var(--paper); padding:64px 0; text-align:center;}
.cta-band h2{color:var(--paper); font-size:clamp(24px,3.2vw,32px); margin-bottom:16px;}
.cta-band p{color:rgba(247,247,244,0.65); max-width:52ch; margin:0 auto 28px;}
.btn-light{display:inline-block; padding:13px 26px; background:var(--flag); color:#fff; text-decoration:none; font-size:14px; font-weight:600;}
.btn-light:hover{background:#04967f;}

footer.site-footer{border-top:1px solid var(--line); padding:30px 0; font-size:13px; color:var(--ink-soft);}
.foot-inner{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;}
.foot-inner .logo .mark{height:22px;}
.foot-inner .tagline{font-family:'IBM Plex Mono',monospace; letter-spacing:.03em;}
