/* ═══════════════════════════════════════════════════════════════
   GnosticWay — layout.css
   Grid, containers, header, footer, page shell
═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&family=Inter:wght@400;500;600;700&display=swap');

/* ─── PAGE SHELL ─────────────────────────────────────────────── */
.gw-page {
  display:        flex;
  flex-direction: column;
  min-height:     100vh;
}
.gw-page__main { flex: 1; }

/* ─── CONTAINERS ─────────────────────────────────────────────── */
.gw-container {
  width:       100%;
  max-width:   var(--max-w);
  margin:      0 auto;
  padding:     0 var(--sp-6);
}
@media (max-width: 640px) {
  .gw-container { padding: 0 var(--sp-4); }
}

/* Narrow (article body max-width) */
.gw-container--narrow {
  max-width: calc(var(--content-w) + var(--sp-12));
}

/* ─── HEADER ─────────────────────────────────────────────────── */
.gw-header {
  background:   var(--gw-bg-dark);
  border-bottom: 1px solid var(--gw-border-dark);
  position:     sticky;
  top:          0;
  z-index:      100;
  box-shadow:   0 2px 12px rgba(0,0,0,.3);
}

.gw-header__inner {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  height:          64px;
  gap:             var(--sp-6);
}

/* Logo */
.gw-logo {
  display:     flex;
  align-items: center;
  gap:         var(--sp-3);
  flex-shrink: 0;
  text-decoration: none;
}
.gw-logo__mark {
  width:            36px;
  height:           36px;
  background:       var(--gw-gold);
  border-radius:    50%;
  display:          flex;
  align-items:      center;
  justify-content:  center;
  font-family:      var(--font-heading);
  font-size:        1.1rem;
  font-weight:      700;
  color:            var(--gw-bg-dark);
  flex-shrink:      0;
}
.gw-logo__name {
  font-family: var(--font-heading);
  font-size:   1.2rem;
  font-weight: 700;
  color:       var(--gw-text-light);
  line-height: 1.1;
}
.gw-logo__name span {
  display:     block;
  font-size:   var(--text-xs);
  font-family: var(--font-ui);
  font-weight: 400;
  color:       var(--gw-gold-light);
  letter-spacing: .05em;
  text-transform: uppercase;
}

/* Nav */
.gw-nav { display: flex; align-items: center; gap: var(--sp-1); }
.gw-nav a {
  font-family:    var(--font-ui);
  font-size:      var(--text-sm);
  font-weight:    500;
  color:          var(--gw-text-light);
  text-decoration: none;
  padding:        var(--sp-2) var(--sp-3);
  border-radius:  var(--radius);
  transition:     background var(--transition), color var(--transition);
  white-space:    nowrap;
}
.gw-nav a:hover,
.gw-nav a.active {
  background: rgba(201,168,76,.15);
  color:      var(--gw-gold);
}

/* wp_nav_menu outputs ul > li > a — style to match flat design */
.gw-nav__links {
  list-style: none;
  padding:    0;
  margin:     0;
}
.gw-nav__links > li             { display: inline-block; position: relative; }
.gw-nav__links > li > a {
  font-family:     var(--font-ui);
  font-size:       var(--text-sm);
  font-weight:     500;
  color:           var(--gw-text-light);
  text-decoration: none;
  padding:         var(--sp-2) var(--sp-3);
  border-radius:   var(--radius);
  display:         block;
  transition:      background var(--transition), color var(--transition);
  white-space:     nowrap;
}
.gw-nav__links > li > a:hover,
.gw-nav__links > li.current-menu-item > a,
.gw-nav__links > li.current_page_item > a {
  background: rgba(201,168,76,.15);
  color:      var(--gw-gold);
}
/* Dropdown submenu */
.gw-nav__links .sub-menu {
  display:    none;
  position:   absolute;
  top:        100%;
  left:       0;
  min-width:  200px;
  background: var(--gw-bg-dark);
  border:     1px solid var(--gw-border-dark);
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: var(--shadow-md);
  list-style: none;
  padding:    var(--sp-2) 0;
  z-index:    200;
}
.gw-nav__links > li:hover > .sub-menu { display: block; }
.gw-nav__links .sub-menu li a {
  font-family:     var(--font-ui);
  font-size:       var(--text-sm);
  color:           var(--gw-text-light);
  text-decoration: none;
  display:         block;
  padding:         var(--sp-2) var(--sp-4);
  transition:      background var(--transition), color var(--transition);
}
.gw-nav__links .sub-menu li a:hover { background: rgba(201,168,76,.15); color: var(--gw-gold); }

/* Mobile menu toggle */
.gw-nav__toggle {
  display:          none;
  background:       none;
  border:           none;
  cursor:           pointer;
  padding:          var(--sp-2);
  color:            var(--gw-text-light);
  font-size:        1.4rem;
}

@media (max-width: 768px) {
  .gw-nav__toggle { display: flex; }
  .gw-nav { position: relative; }
  .gw-nav__links {
    display:        none !important;
    position:       absolute;
    top:            64px;
    left:           0;
    right:          0;
    background:     var(--gw-bg-dark);
    padding:        var(--sp-3) var(--sp-4);
    border-bottom:  1px solid var(--gw-border-dark);
    flex-direction: column !important;
    z-index:        99;
  }
  .gw-nav__links.is-open { display: flex !important; }
  .gw-nav__links > li   { display: block; }
  .gw-nav__links .sub-menu { display: none !important; } /* hide dropdowns on mobile */
}
@media (min-width: 769px) {
  .gw-nav__links { display: flex !important; align-items: center; gap: var(--sp-1); }
}

/* ─── HERO (article/page headers, not homepage) ──────────────── */
.gw-hero {
  background:  var(--gw-bg-dark);
  padding:     var(--sp-10) 0 var(--sp-8);
  position:    relative;
  overflow:    hidden;
}
.gw-hero::after {
  content:     '';
  position:    absolute;
  bottom:      0; left: 0; right: 0;
  height:      4px;
  background:  linear-gradient(90deg, var(--gw-gold) 0%, var(--gw-bg-mid) 100%);
}
.gw-hero__inner { position: relative; z-index: 1; }
.gw-hero__breadcrumb { margin-bottom: var(--sp-4); }
.gw-hero__title {
  color:        var(--gw-text-light);
  margin-bottom: var(--sp-4);
  max-width:    820px;
}
.gw-hero__meta {
  display:      flex;
  align-items:  center;
  gap:          var(--sp-5);
  flex-wrap:    wrap;
  font-family:  var(--font-ui);
  font-size:    var(--text-sm);
  color:        rgba(240,236,224,.65);
}
.gw-hero__meta-item {
  display:      flex;
  align-items:  center;
  gap:          var(--sp-1);
}
.gw-hero__meta-item strong { color: var(--gw-gold); font-weight: 600; }

/* ─── TWO-COLUMN LAYOUT (article + sidebar) ──────────────────── */
.gw-layout-cols {
  display: grid;
  grid-template-columns: 1fr var(--sidebar-w);
  gap:     var(--sp-10);
  padding: var(--sp-10) 0 var(--sp-16);
  align-items: start;
}
@media (max-width: 1024px) {
  .gw-layout-cols {
    grid-template-columns: 1fr;
  }
  .gw-sidebar { display: none; }   /* sidebar hidden on mobile — content first */
}

.gw-main  { min-width: 0; }
.gw-sidebar { min-width: 0; }

/* ─── SIDEBAR (sticky on scroll) ────────────────────────────── */
.gw-sidebar__inner {
  position:   sticky;
  top:        80px;
  display:    flex;
  flex-direction: column;
  gap:        var(--sp-5);
}

/* ─── FOOTER ─────────────────────────────────────────────────── */
.gw-footer {
  background:    var(--gw-bg-dark);
  color:         var(--gw-text-light);
  border-top:    4px solid var(--gw-gold);
  padding:       var(--sp-12) 0 var(--sp-8);
  margin-top:    auto;
}
.gw-footer__grid {
  display:               grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap:                   var(--sp-10);
  margin-bottom:         var(--sp-10);
}
@media (max-width: 768px) {
  .gw-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--sp-8); }
}
@media (max-width: 480px) {
  .gw-footer__grid { grid-template-columns: 1fr; }
}

.gw-footer__brand p {
  font-size: var(--text-sm);
  color:     rgba(240,236,224,.7);
  max-width: 280px;
  line-height: 1.6;
  margin-top: var(--sp-3);
  margin-bottom: 0;
}
.gw-footer__col h4 {
  font-family:    var(--font-ui);
  font-size:      var(--text-xs);
  font-weight:    700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color:          var(--gw-gold);
  margin-bottom:  var(--sp-4);
}
.gw-footer__col ul { display: flex; flex-direction: column; gap: var(--sp-2); }
.gw-footer__col ul li a {
  font-family:     var(--font-ui);
  font-size:       var(--text-sm);
  color:           rgba(240,236,224,.75);
  text-decoration: none;
  transition:      color var(--transition);
}
.gw-footer__col ul li a:hover { color: var(--gw-gold); }

.gw-footer__bottom {
  border-top:  1px solid var(--gw-border-dark);
  padding-top: var(--sp-6);
  display:     flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap:   wrap;
  gap:         var(--sp-4);
  font-family: var(--font-ui);
  font-size:   var(--text-xs);
  color:       rgba(240,236,224,.5);
}

/* ─── BREADCRUMBS ────────────────────────────────────────────── */
.gw-breadcrumbs ol {
  display:      flex;
  align-items:  center;
  flex-wrap:    wrap;
  gap:          var(--sp-1);
  font-family:  var(--font-ui);
  font-size:    var(--text-sm);
  list-style:   none;
}
.gw-breadcrumbs li { display: flex; align-items: center; gap: var(--sp-1); }
.gw-breadcrumbs a {
  color:           rgba(240,236,224,.7);
  text-decoration: none;
  transition:      color var(--transition);
}
.gw-breadcrumbs a:hover { color: var(--gw-gold); }
.gw-breadcrumbs span[aria-current] { color: var(--gw-gold-light); }
.gw-bc__sep { color: rgba(240,236,224,.35); font-size: 1rem; }

/* ─── SECTION SPACING ────────────────────────────────────────── */
.gw-section        { padding: var(--sp-12) 0; }
.gw-section--alt   { background: var(--gw-bg-alt); }
.gw-section--dark  { background: var(--gw-bg-dark); color: var(--gw-text-light); }
.gw-section--sm    { padding: var(--sp-8) 0; }
