
/*
Theme Name: Polar Wave
Theme URI: https://www.rickgouin.com
Author: Rick Gouin
Author URI: https://www.rickgouin.com
Description: Clean, responsive blog theme with right sidebar, accent thumbnails, and refined typography.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: polar-wave
Tags: blog, two-columns, right-sidebar, responsive-layout, accessibility-ready, custom-logo, editor-style, blue, minimal
*/

* { box-sizing: border-box; }

:root {
  --bb-bg: #f9fbff;
  --bb-surface: #ffffff;
  --bb-text: #1a1e27;
  --bb-muted: #607598;
  --bb-link: #3478d4;
  --bb-accent: #6aa8ff;
  --bb-border: #dce5f6;
}

html, body {
  margin: 0; padding: 0;
  background: var(--bb-bg); color: var(--bb-text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.6;
}

a { color: var(--bb-link); text-decoration: none; }
a:hover, a:focus { color: var(--bb-accent); text-decoration: underline; }

.container { width: 100%; margin: 0 auto; padding: 1.5rem 2rem; }

.site-header { background: linear-gradient(180deg, #fff, #f1f5ff); border-bottom: 1px solid #d6e0f5; position: sticky; top: 0; z-index: 10; }
.site-branding { display: flex; align-items: center; gap: 1rem; }

.nav-primary ul { list-style: none; padding: 0; margin: 0; display: flex; gap: .75rem; flex-wrap: wrap; }
.nav-primary a { display: inline-block; padding: .5rem .75rem; border-radius: .6rem; background: rgba(0,0,0,.03); border: 2px solid var(--bb-border); text-decoration: none; transition: all .25s ease; }
.nav-primary a:hover, .nav-primary a:focus { background: var(--bb-accent); color: #fff; border-color: var(--bb-accent); text-decoration: none; outline: none; }

.grid { display: grid; grid-template-columns: 1fr 320px; gap: 1.25rem; }
@media (max-width: 900px) { .grid { grid-template-columns: 1fr; } }

.card { background: var(--bb-surface); border: 1px solid #e1e8f5; border-radius: 12px; padding: 1.25rem; box-shadow: 0 4px 16px rgba(0,0,0,.05); }
.post-card { margin-bottom: 1rem; }
.post-meta { color: var(--bb-muted); font-size: .9rem; }

.sidebar .widget { margin-bottom: 1rem; background: #f7faff; border: 1px solid #e1e8f5; border-radius: 12px; padding: .9rem; }
.sidebar .widget-title,
.sidebar .widget h2,
.sidebar .widget h3,
.sidebar .wp-block-heading { margin: 0 0 .5rem 0; font-size: 1rem; font-weight: 700; color: var(--bb-accent); line-height: 1.3; border-bottom: 1px solid var(--bb-border); padding-bottom: .25rem; }

.site-footer { margin-top: 2rem; padding: 2rem 0; border-top: 1px solid var(--bb-border); color: var(--bb-muted); background: #f0f5ff; }

/* Global outline buttons */
button, input[type="submit"], input[type="button"], input[type="reset"], .button {
  border: 2px solid var(--bb-accent);
  background: transparent;
  color: var(--bb-accent);
  padding: 0.45rem 0.9rem;
  border-radius: 0.5rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.25s ease;
}
button:hover, input[type="submit"]:hover, input[type="button"]:hover, input[type="reset"]:hover, .button:hover,
button:focus, input[type="submit"]:focus, input[type="button"]:focus, input[type="reset"]:focus, .button:focus {
  background: var(--bb-accent); color: #fff; outline: none;
}

/* Read More right aligned */
.post-card footer { display: flex; justify-content: flex-end; margin-top: .5rem; }
.post-card .button { display: inline-block; }

/* Accent-sized preview images for lists */
.post-card::after { content: ""; display: block; clear: both; }
.post-card .post-thumb { width: 240px; float: left; margin: 0 1rem .5rem 0; }
.post-card .post-thumb img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; border-radius:10px; }
@media (max-width:700px){ .post-card .post-thumb{ float:none; width:100%; margin:0 0 .75rem 0; } }

/* WordPress content alignment helpers */
.entry-content .alignleft { float: left; margin: 0 1rem .75rem 0; }
.entry-content .alignright { float: right; margin: 0 0 .75rem 1rem; }
.entry-content .aligncenter { display: block; margin-left: auto; margin-right: auto; text-align: center; }
.entry-content .wp-block-image img, .entry-content img { max-width: 100%; height: auto; }
@media (max-width:700px){ .entry-content .alignleft, .entry-content .alignright { float:none; margin:0 0 .75rem 0; } }

.branding-logo img { display:block; max-height:64px; height:auto; width:auto; }
.screen-reader-text { position:absolute!important; height:1px; width:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }

/* Pagination styling */
.pagination { text-align:center; margin-top: 1rem; }
.pagination a, .pagination span { margin: 0 .25rem; }


/* --- Align logo and menu left edges exactly --- */
.site-header .container { padding-left: 2rem; padding-right: 2rem; } /* keep existing container padding */
.site-branding, .nav-primary { margin-left: 0; padding-left: 0; }

/* Strip any default margins/padding from the custom logo wrapper and image */
.branding-logo,
.custom-logo-link { display: inline-flex; align-items: center; margin: 0; padding: 0; }
.custom-logo,
.branding-logo img { display: block; margin: 0; padding: 0; }

/* Ensure nav list has no left indent */
.nav-primary ul { margin-left: 0; padding-left: 0; list-style: none; }

/* Optional: put logo and menu on one line for precise alignment on wide screens */
@media (min-width: 900px) {
  .site-header .container { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; }
}
