/*
Theme Name: Onezega
Theme URI: https://onezega.com
Author: Onezega
Author URI: https://onezega.com
Description: A light, welcoming, bilingual (Indonesian / English) block theme for onezega.com — the friendly gateway of the Onezega ecosystem. Warm, editorial, spacious. Designed for seekers, new readers, and global audiences. Full Site Editing. No build step required. Polylang-friendly.
Version: 1.5.0
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: onezega
Tags: full-site-editing, block-patterns, translation-ready, wide-blocks, custom-colors, custom-logo, custom-menu, editor-style, featured-images, one-column, two-columns, three-columns, four-columns
*/

/* -----------------------------------------------------------
   Onezega — base front-end styles
   Most design tokens live in theme.json. This file adds
   progressive enhancement on top of block styles.
   ----------------------------------------------------------- */

:root {
  --oz-radius-sm: 6px;
  --oz-radius-md: 14px;
  --oz-radius-lg: 22px;
  --oz-shadow-sm: 0 1px 2px rgba(31, 36, 40, 0.04), 0 2px 8px rgba(31, 36, 40, 0.04);
  --oz-shadow-md: 0 2px 6px rgba(31, 36, 40, 0.05), 0 12px 32px rgba(31, 36, 40, 0.07);
  --oz-transition: 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Reset edges */
html { scroll-behavior: smooth; }
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}


/* Safer global sizing / overflow guards */
html, body { max-width: 100%; overflow-x: hidden; }
*, *::before, *::after { box-sizing: border-box; }
.wp-site-blocks, main, header, footer, .wp-block-group, .wp-block-columns, .wp-block-column, .oz-home-section, .oz-page-intro, .oz-card { min-width: 0; }
img, svg, video, iframe, canvas { max-width: 100%; height: auto; }
.entry-content, .wp-block-post-content, p, h1, h2, h3, h4, h5, h6 { overflow-wrap: anywhere; }

/* Generous, editorial measure for long-form content */
.entry-content p,
.wp-block-post-content p {
  max-width: 68ch;
}

/* Headings: warm tracking */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
  letter-spacing: -0.01em;
}

/* Light, airy links in body copy */
.entry-content a,
.wp-block-post-content a {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  transition: color var(--oz-transition);
}

/* Card surfaces (used by patterns) */
.oz-card {
  background: var(--wp--preset--color--surface, #ffffff);
  border: 1px solid var(--wp--preset--color--border, #e8e2d6);
  border-radius: var(--oz-radius-md);
  padding: clamp(1.25rem, 2.5vw, 2rem);
  transition: transform var(--oz-transition), box-shadow var(--oz-transition), border-color var(--oz-transition);
  height: 100%;
}
.oz-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--oz-shadow-md);
  border-color: var(--wp--preset--color--accent, #c8794b);
}
.oz-card__eyebrow {
  font-family: var(--wp--preset--font-family--sans, inherit);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent, #c8794b);
  margin-bottom: 0.75rem;
  display: inline-block;
}
.oz-card__title {
  font-family: var(--wp--preset--font-family--serif, serif);
  font-size: clamp(1.35rem, 1.2rem + 0.6vw, 1.75rem);
  font-weight: 500;
  line-height: 1.2;
  margin: 0 0 0.6rem;
  color: var(--wp--preset--color--ink, #1f2428);
}
.oz-card__body {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--wp--preset--color--ink-soft, #6b6460);
  margin: 0 0 1rem;
}
.oz-card__link {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--wp--preset--color--accent, #c8794b);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.oz-card__link::after {
  content: "→";
  transition: transform var(--oz-transition);
  display: inline-block;
}
.oz-card__link:hover::after {
  transform: translateX(3px);
}

/* Grid for cards (fallback; FSE columns also work) */
.oz-grid {
  display: grid;
  gap: clamp(1rem, 2vw, 1.75rem);
}
.oz-grid--2 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.oz-grid--3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.oz-grid--4 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

/* Hero */
.oz-hero {
  padding: clamp(3rem, 6vw, 6rem) 0 clamp(2.5rem, 5vw, 4.5rem);
  text-align: center;
}
.oz-hero__eyebrow {
  display: inline-block;
  font-size: 0.8rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent, #c8794b);
  margin-bottom: 1.25rem;
  font-weight: 600;
}
.oz-hero__title {
  font-family: var(--wp--preset--font-family--serif, serif);
  font-weight: 400;
  font-size: clamp(2.25rem, 1.4rem + 3.2vw, 4.25rem);
  line-height: 1.08;
  letter-spacing: -0.015em;
  margin: 0 auto 1.25rem;
  max-width: 18ch;
  color: var(--wp--preset--color--ink, #1f2428);
}
.oz-hero__subtitle {
  font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.2rem);
  line-height: 1.55;
  max-width: 56ch;
  margin: 0 auto 2rem;
  color: var(--wp--preset--color--ink-soft, #6b6460);
}
.oz-hero__buttons {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}

/* Buttons */
.oz-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.85rem 1.5rem;
  font-size: 0.97rem;
  font-weight: 600;
  border-radius: 999px;
  text-decoration: none;
  transition: transform var(--oz-transition), background-color var(--oz-transition), color var(--oz-transition), box-shadow var(--oz-transition);
  border: 1px solid transparent;
  line-height: 1;
}
.oz-btn--primary {
  background: var(--wp--preset--color--accent, #c8794b);
  color: #fff !important;
  box-shadow: var(--oz-shadow-sm);
}
.oz-btn--primary:hover {
  transform: translateY(-1px);
  box-shadow: var(--oz-shadow-md);
  background: var(--wp--preset--color--accent-dark, #a5613a);
}
.oz-btn--ghost {
  background: transparent;
  color: var(--wp--preset--color--ink, #1f2428) !important;
  border-color: var(--wp--preset--color--border, #e8e2d6);
}
.oz-btn--ghost:hover {
  border-color: var(--wp--preset--color--ink, #1f2428);
}

/* Section eyebrow label */
.oz-eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent, #c8794b);
  font-weight: 600;
  margin-bottom: 0.75rem;
}

/* Section heading */
.oz-section-heading {
  font-family: var(--wp--preset--font-family--serif, serif);
  font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.75rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 0.75rem;
  color: var(--wp--preset--color--ink, #1f2428);
}
.oz-section-lede {
  font-size: 1.08rem;
  line-height: 1.55;
  color: var(--wp--preset--color--ink-soft, #6b6460);
  max-width: 58ch;
  margin: 0 0 2rem;
}

.oz-home-section > .has-global-padding,
.oz-home-section > div,
.oz-ecosystem > div {
  max-width: var(--oz-max-content-width, 1180px);
  margin-inline: auto;
}
.oz-home-section .oz-section-heading,
.oz-home-section .oz-section-lede {
  max-width: min(18ch, 100%);
}
.oz-home-section .oz-section-lede {
  max-width: min(58ch, 100%);
}



/* Section breathing room */
.oz-home-section{
  padding-inline: clamp(1.25rem, 2.8vw, 2.25rem);
}
.oz-home-section > div:first-child{
  padding-inline: clamp(.15rem, .6vw, .35rem);
}
.oz-faq{
  margin-top: .75rem;
}
.oz-faq details{
  padding-inline: clamp(1rem, 2vw, 1.5rem);
}
.oz-faq__body{
  padding-right: .25rem;
}

/* FAQ / Questions */
.oz-faq {
  border-top: 1px solid var(--wp--preset--color--border, #e8e2d6);
}
.oz-faq details {
  border-bottom: 1px solid var(--wp--preset--color--border, #e8e2d6);
  padding: 1.25rem 0;
}
.oz-faq summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--wp--preset--font-family--serif, serif);
  font-size: clamp(1.1rem, 1rem + 0.4vw, 1.35rem);
  font-weight: 500;
  color: var(--wp--preset--color--ink, #1f2428);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.oz-faq summary::-webkit-details-marker { display: none; }
.oz-faq summary::after {
  content: "+";
  font-size: 1.4rem;
  color: var(--wp--preset--color--accent, #c8794b);
  transition: transform var(--oz-transition);
}
.oz-faq details[open] summary::after { transform: rotate(45deg); }
.oz-faq .oz-faq__body {
  padding-top: 0.9rem;
  color: var(--wp--preset--color--ink-soft, #6b6460);
  line-height: 1.65;
  max-width: 68ch;
}

/* Ecosystem bridge */
.oz-ecosystem {
  padding: clamp(2.5rem, 4vw, 4rem) 0;
}
.oz-ecosystem__links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
}
.oz-ecosystem__link {
  display: block;
  padding: 1.25rem 1.4rem;
  border: 1px solid var(--wp--preset--color--border, #e8e2d6);
  border-radius: var(--oz-radius-md);
  text-decoration: none;
  background: var(--wp--preset--color--surface, #fff);
  transition: border-color var(--oz-transition), transform var(--oz-transition);
}
.oz-ecosystem__link:hover {
  border-color: var(--wp--preset--color--accent, #c8794b);
  transform: translateY(-2px);
}
.oz-ecosystem__link-domain {
  font-family: var(--wp--preset--font-family--mono, ui-monospace, monospace);
  font-size: 0.82rem;
  color: var(--wp--preset--color--accent, #c8794b);
  font-weight: 600;
  display: block;
  margin-bottom: 0.35rem;
}
.oz-ecosystem__link-title {
  font-family: var(--wp--preset--font-family--serif, serif);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--wp--preset--color--ink, #1f2428);
  margin: 0 0 0.25rem;
}
.oz-ecosystem__link-desc {
  font-size: 0.9rem;
  color: var(--wp--preset--color--ink-soft, #6b6460);
  line-height: 1.5;
  margin: 0;
}

/* Language switcher */
.oz-lang {
  display: inline-flex;
  gap: 0.25rem;
  align-items: center;
  font-size: 0.85rem;
  font-weight: 600;
}
.oz-lang a, .oz-lang span {
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
  text-decoration: none;
  color: var(--wp--preset--color--ink-soft, #6b6460);
  transition: background-color var(--oz-transition), color var(--oz-transition);
  line-height: 1;
}
.oz-lang .is-current,
.oz-lang a:hover {
  background: var(--wp--preset--color--soft, #f5f1ea);
  color: var(--wp--preset--color--ink, #1f2428);
}

/* Small chip */
.oz-chip {
  display: inline-block;
  padding: 0.3rem 0.7rem;
  background: var(--wp--preset--color--soft, #f5f1ea);
  color: var(--wp--preset--color--ink, #1f2428);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  border-radius: 999px;
}

/* Mobile polish */
@media (max-width: 600px) {
  .oz-hero { padding: 2.5rem 0 2rem; }
  .oz-hero__title { max-width: 14ch; }
  .oz-btn { padding: 0.75rem 1.2rem; font-size: 0.92rem; }
}

/* Accessibility: focus */
a:focus-visible,
button:focus-visible,
.oz-btn:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent, #c8794b);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Post lists */
.oz-post-list .wp-block-post-title a {
  text-decoration: none;
}
.oz-post-list .wp-block-post-title a:hover {
  color: var(--wp--preset--color--accent, #c8794b);
}

/* Admin bar offset fix */
.admin-bar .wp-site-blocks { min-height: calc(100vh - 32px); }


/* Inline buttons inside starter pages */
.oz-inline-buttons{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0 0;}
.oz-page-intro > div{margin:0 0 2rem;}
.oz-page-intro h2{font-family:var(--wp--preset--font-family--serif,serif);font-size:clamp(1.75rem,1.3rem + 1.8vw,2.75rem);line-height:1.15;margin:0 0 1rem;}
.oz-page-intro h3{font-family:var(--wp--preset--font-family--serif,serif);font-size:clamp(1.2rem,1.05rem + .8vw,1.7rem);line-height:1.2;margin:2rem 0 .75rem;}
.oz-page-intro ul{max-width:68ch;line-height:1.65;}

/* Site navigation */
.oz-site-nav{display:flex;align-items:center;justify-content:flex-end;position:relative;width:100%;}
.oz-site-nav__toggle{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--wp--preset--color--border,#e8e2d6);border-radius:999px;background:#fff;color:var(--wp--preset--color--ink,#1f2428);box-shadow:var(--oz-shadow-sm);cursor:pointer;position:relative;z-index:61;}
.oz-site-nav__toggle-box{display:inline-flex;flex-direction:column;gap:4px;}
.oz-site-nav__toggle-box span{display:block;width:18px;height:2px;background:currentColor;border-radius:999px;transition:transform var(--oz-transition),opacity var(--oz-transition);}
.oz-site-nav::before{content:"";position:fixed;inset:0;background:rgba(15,23,42,.16);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity var(--oz-transition);z-index:58;}
.oz-site-nav__panel{display:block;position:fixed;top:clamp(4.25rem,8vw,5.5rem);right:1rem;left:auto;width:min(calc(100vw - 2rem),360px);max-width:calc(100vw - 2rem);max-height:calc(100dvh - clamp(4.25rem,8vw,5.5rem) - 1rem);overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid var(--wp--preset--color--border,#e8e2d6);box-shadow:var(--oz-shadow-md);border-radius:18px;padding:1rem;z-index:60;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(1.25rem) translateY(-.25rem);transition:opacity var(--oz-transition),transform var(--oz-transition),visibility 0s linear var(--oz-transition);}
.oz-site-nav.is-open::before{opacity:1;pointer-events:auto;}
.oz-site-nav.is-open .oz-site-nav__panel{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity var(--oz-transition),transform var(--oz-transition),visibility 0s;}
.oz-site-nav.is-open .oz-site-nav__toggle-box span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.oz-site-nav.is-open .oz-site-nav__toggle-box span:nth-child(2){opacity:0;}
.oz-site-nav.is-open .oz-site-nav__toggle-box span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
.oz-site-nav__list{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;list-style:none;margin:0;padding:0;}
.oz-site-nav__item{width:100%;}
.oz-site-nav__item>a,.oz-site-nav__details>summary{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0;font-size:1.04rem;font-weight:600;color:var(--wp--preset--color--ink,#1f2428);text-decoration:none;cursor:pointer;list-style:none;}
.oz-site-nav__details>summary{gap:.25rem;}
.oz-site-nav__details>summary::-webkit-details-marker{display:none;}
.oz-site-nav__details>summary::after{content:"▾";font-size:.8rem;color:var(--wp--preset--color--ink-soft,#6b6460);}
.oz-site-nav__details{position:relative;width:100%;}
.oz-site-nav__submenu{position:static;min-width:0;display:none;box-shadow:none;border:0;padding:.35rem 0 0 .35rem;background:transparent;list-style:none;margin:0;}
.oz-site-nav__details[open]>.oz-site-nav__submenu{display:block;}
.oz-site-nav__submenu a{display:block;padding:.5rem .35rem;color:var(--wp--preset--color--ink,#1f2428);text-decoration:none;line-height:1.4;}
.oz-site-nav__submenu a:hover,.oz-site-nav__item>a:hover,.oz-site-nav__details>summary:hover{color:var(--wp--preset--color--accent,#c8794b);}
.oz-site-nav__mobile-lang{display:flex;gap:.6rem;flex-wrap:wrap;border-top:1px solid var(--wp--preset--color--border,#e8e2d6);margin-top:.9rem;padding-top:.9rem;}
.oz-site-nav__mobile-lang a,.oz-site-nav__mobile-lang span{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.55rem .9rem;border:1px solid var(--wp--preset--color--border,#e8e2d6);border-radius:999px;text-decoration:none;color:var(--wp--preset--color--ink,#1f2428);font-weight:600;background:#fff;}
.oz-site-nav__mobile-lang .is-current{background:var(--wp--preset--color--soft,#f6f1ea);}

@media (min-width: 1180px){
  header.wp-block-group.alignfull .oz-lang{display:inline-flex;}
  .oz-site-nav{width:auto;}
  .oz-site-nav::before{display:none;}
  .oz-site-nav__toggle{display:none;}
  .oz-site-nav__panel{display:block;position:static;width:auto;max-width:none;max-height:none;overflow:visible;background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:none;}
  .oz-site-nav__list{flex-direction:row;flex-wrap:wrap;gap:.9rem var(--oz-nav-gap,1.1rem);align-items:center;}
  .oz-site-nav__item{width:auto;}
  .oz-site-nav__item>a,.oz-site-nav__details>summary{display:flex;align-items:center;justify-content:flex-start;padding:0;font-size:.96rem;}
  .oz-site-nav__details{width:auto;}
  .oz-site-nav__submenu{display:none;position:absolute;top:calc(100% + .5rem);left:0;min-width:240px;background:#fff;border:1px solid var(--wp--preset--color--border,#e8e2d6);box-shadow:var(--oz-shadow-md);border-radius:14px;padding:.75rem;}
  .oz-site-nav__details[open]>.oz-site-nav__submenu{display:block;}
  .oz-site-nav__mobile-lang{display:none;}
}

/* Footer links */
.oz-footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;}
.oz-footer-links h4{font-size:.85rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--wp--preset--color--ink-soft,#6b6460);margin:0 0 .85rem;}
.oz-footer-links ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;}
.oz-footer-links a{text-decoration:none;color:var(--wp--preset--color--ink,#1f2428);font-size:.95rem;}
.oz-footer-links a:hover{color:var(--wp--preset--color--accent,#c8794b);}
@media (max-width: 900px){.oz-footer-links{grid-template-columns:1fr;}}


/* v1.4.5 mobile drawer + spacing fixes */
@media (max-width: 1179px){
  .oz-site-nav{position:static;}
  .oz-site-nav::before{z-index:58;}
  .oz-site-nav__toggle{z-index:62;}
  .oz-site-nav__panel{
    top:0;
    right:0;
    left:auto;
    bottom:0;
    width:min(86vw, 360px);
    max-width:86vw;
    height:100dvh;
    max-height:100dvh;
    margin:0;
    padding:5.25rem 1rem 1.25rem;
    border-radius:24px 0 0 24px;
    transform:translateX(100%);
    overflow:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .oz-site-nav.is-open .oz-site-nav__panel{transform:none;}
  .oz-site-nav__list{gap:.5rem;}
  .oz-site-nav__item>a, .oz-site-nav__details>summary{padding:.45rem 0; line-height:1.35;}
  .oz-site-nav__submenu{padding:.25rem 0 0 .6rem;}
  .oz-site-nav__submenu a{padding:.55rem .15rem; line-height:1.45;}
}
@media (max-width: 900px){
  .wp-site-blocks, .wp-site-blocks > *{overflow-x: clip;}
  main.wp-block-group.alignfull > .oz-home-section:not(.oz-home-section--hero):not(.oz-home-section--ecosystem){margin-inline:.75rem;}
  .oz-home-section{padding-inline:1.25rem;}
  .oz-faq details{padding-inline:1rem;}
}
@media (max-width: 600px){
  header.wp-block-group.alignfull{padding-inline:.75rem !important;}
  .wp-site-blocks .has-global-padding{padding-left:18px !important; padding-right:18px !important;}
  .oz-page-intro{padding:1rem;}
  .oz-card{padding:1rem;}
  .oz-home-section{padding-inline:1rem;}
  .oz-section-lede, .oz-card__body{font-size:.98rem;}
  .oz-site-nav__panel{width:min(88vw, 340px); max-width:88vw; padding:5rem .9rem 1rem;}
}

/* v1.5 header/homepage polish */
header.wp-block-group.alignfull.has-background-background-color{background:rgba(248,245,240,.94);}
header.wp-block-group.alignfull .wp-block-group.alignwide{max-width:var(--oz-max-content-width,1180px);margin-inline:auto;}
header.wp-block-group.alignfull .wp-block-site-title{line-height:1.05;}
.oz-site-nav__panel{backdrop-filter:blur(8px);}
.oz-site-nav__toggle:focus-visible{outline:2px solid var(--wp--preset--color--accent,#c8794b);outline-offset:3px;}
.oz-home-section .oz-card{border-radius:20px;}
.oz-home-section--hero .oz-hero__subtitle{max-width:min(56ch,100%);}
@media (min-width: 901px){
  main.wp-block-group.alignfull > .oz-home-section:not(.oz-home-section--hero):not(.oz-home-section--ecosystem){padding-inline:clamp(1.4rem,2vw,2rem);}
}
