/*
Theme Name: CampingAdvisory Child
Theme URI: https://campingadvisory.com/
Description: Child theme of GeneratePress for CampingAdvisory.com — backcountry-editorial design system (Fraunces + Hanken Grotesk, pine & ember palette).
Author: CampingAdvisory
Author URI: https://campingadvisory.com/
Template: generatepress
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: campingadvisory-child
*/

/* ============================================================
   Design tokens
   ============================================================ */
:root{
  --ca-pine:#16241d;   --ca-pine-2:#1d2e26;  --ca-forest:#2f4a3c;
  --ca-moss:#7e9265;   --ca-sage:#a9b894;    --ca-canvas:#f4efe6;
  --ca-canvas-2:#ece4d4; --ca-bark:#5a4632;  --ca-ember:#d9622b;
  --ca-ember-2:#e2823a; --ca-ink:#1d2922;    --ca-ink-soft:#46544a;
  --ca-disp:'Fraunces',Georgia,serif;
  --ca-body:'Hanken Grotesk',system-ui,-apple-system,sans-serif;
  --ca-mono:'Spline Sans Mono',ui-monospace,monospace;
}

/* ============================================================
   Base typography
   ============================================================ */
body{
  font-family:var(--ca-body);
  color:var(--ca-ink);
  background-color:var(--ca-canvas);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6,
.entry-title,.page-title,.widget-title{
  font-family:var(--ca-disp);
  letter-spacing:-.015em;
  color:var(--ca-pine);
  line-height:1.15;
}
a{ color:var(--ca-forest); }
a:hover,a:focus{ color:var(--ca-ember); }

.entry-content a{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }

/* ============================================================
   Buttons
   ============================================================ */
.button,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.wp-block-button__link,
.entry-content .button{
  background-color:var(--ca-ember);
  color:#fff;
  border:none;
  border-radius:999px;
  font-family:var(--ca-body);
  font-weight:700;
  letter-spacing:.01em;
  transition:background-color .2s ease, transform .2s ease;
}
.button:hover,
button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover{
  background-color:var(--ca-pine);
  color:#fff;
  transform:translateY(-1px);
}

/* ============================================================
   Header / primary navigation
   ============================================================ */
.main-navigation .main-nav ul li a{ font-family:var(--ca-body); font-weight:600; }
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item a,
.main-navigation .main-nav ul li.current-menu-item > a{ color:var(--ca-ember); }
.main-navigation .menu-toggle{ font-family:var(--ca-body); font-weight:600; }

/* ============================================================
   Footer
   ============================================================ */
.footer-widgets,
.site-footer{ background-color:var(--ca-pine); color:rgba(244,239,230,.72); }
.footer-widgets .widget-title{ color:var(--ca-canvas); font-family:var(--ca-mono); text-transform:uppercase; letter-spacing:.12em; font-size:.84rem; }
.site-info{ background-color:var(--ca-pine-2); color:rgba(244,239,230,.6); }
.site-footer a,.footer-widgets a,.site-info a{ color:rgba(244,239,230,.82); }
.site-footer a:hover,.footer-widgets a:hover,.site-info a:hover{ color:var(--ca-ember-2); }

/* ============================================================
   Selection + focus
   ============================================================ */
::selection{ background:var(--ca-ember); color:#fff; }
:focus-visible{ outline:2px solid var(--ca-ember); outline-offset:2px; }

/* ============================================================
   Site header (theme chrome)
   ============================================================ */
.ca-site-header{position:sticky; top:0; z-index:999; background:rgba(244,239,230,.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom:1px solid rgba(45,74,60,.12);}
.ca-header-inner{max-width:1180px; margin:0 auto; padding:13px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px;}
.ca-brand{display:flex; align-items:center; gap:11px; font-family:var(--ca-disp); font-weight:700; font-size:1.3rem; color:var(--ca-pine); letter-spacing:-.02em; text-decoration:none;}
.ca-brand:hover{color:var(--ca-pine);}
.ca-brand .ca-badge{width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--ca-ember); box-shadow:0 0 0 4px rgba(217,98,43,.18);}
.ca-brand .ca-badge svg{width:19px; height:19px;}
.ca-brand .acc{color:var(--ca-ember-2);}
.ca-site-nav{display:flex; align-items:center; gap:26px;}
.ca-site-menu{display:flex; align-items:center; gap:24px; list-style:none; margin:0; padding:0;}
.ca-site-menu li{margin:0; padding:0;}
.ca-site-menu a{font-family:var(--ca-body); font-weight:600; font-size:.93rem; color:var(--ca-pine); text-decoration:none;}
.ca-site-menu a:hover{color:var(--ca-ember);}
.ca-header-cta{background:var(--ca-ember); color:#fff; padding:10px 20px; border-radius:999px; font-weight:700; font-size:.9rem; text-decoration:none; white-space:nowrap; transition:background .2s ease, transform .2s ease;}
.ca-header-cta:hover{background:var(--ca-pine); color:#fff; transform:translateY(-1px);}
.ca-site-nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px; color:var(--ca-pine);}
.ca-site-nav-toggle svg{width:26px; height:26px; display:block;}
.ca-content-wrap{width:100%;}

@media(max-width:880px){
  .ca-site-nav-toggle{display:inline-flex;}
  .ca-site-nav{position:fixed; top:0; right:0; bottom:0; width:min(82vw,320px); background:var(--ca-canvas); flex-direction:column; align-items:flex-start; gap:0; padding:88px 28px 28px; transform:translateX(110%); transition:transform .3s ease; box-shadow:-20px 0 50px -20px rgba(13,32,26,.5); z-index:998;}
  .ca-site-nav.open{transform:translateX(0);}
  .ca-site-menu{flex-direction:column; align-items:flex-start; gap:0; width:100%;}
  .ca-site-menu a{display:block; padding:13px 0; font-size:1.05rem; width:100%; border-bottom:1px solid rgba(45,74,60,.08);}
  .ca-header-cta{margin-top:20px;}
}

/* ============================================================
   Site footer (theme chrome)
   ============================================================ */
.ca-site-footer{background:var(--ca-pine); color:rgba(244,239,230,.7); padding:62px 0 30px; position:relative; overflow:hidden;}
.ca-site-footer .foot-wrap{max-width:1180px; margin:0 auto; padding:0 24px; position:relative; z-index:2;}
.ca-site-footer .foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:34px;}
.ca-site-footer h4{color:var(--ca-canvas); font-size:.84rem; font-family:var(--ca-mono); letter-spacing:.12em; text-transform:uppercase; margin:0 0 14px;}
.ca-site-footer a{color:rgba(244,239,230,.7); font-size:.9rem; text-decoration:none;}
.ca-site-footer .foot-grid a{display:block; padding:5px 0; font-weight:500;}
.ca-site-footer a:hover{color:var(--ca-ember-2);}
.ca-site-footer .foot-brand{display:flex; align-items:center; gap:11px; font-family:var(--ca-disp); font-weight:700; font-size:1.2rem; color:var(--ca-canvas); text-decoration:none; margin-bottom:14px;}
.ca-site-footer .foot-brand .ca-badge{width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--ca-ember);}
.ca-site-footer .foot-brand .ca-badge svg{width:20px; height:20px;}
.ca-site-footer .foot-brand .acc{color:var(--ca-ember-2);}
.ca-site-footer .foot-about{font-size:.9rem; color:rgba(244,239,230,.7); line-height:1.6; max-width:34ch; margin:0;}
.ca-site-footer .foot-disc{font-size:.76rem; color:rgba(244,239,230,.5); max-width:820px; margin:30px auto 0; text-align:center; line-height:1.5;}
.ca-site-footer .foot-bottom{border-top:1px solid rgba(244,239,230,.12); margin-top:30px; padding-top:22px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; font-size:.8rem;}
.ca-site-footer .foot-legal{display:flex; gap:18px; flex-wrap:wrap;}
.ca-site-footer .foot-legal a{font-size:.8rem;}
.ca-site-foot-topo{position:absolute; inset:0; opacity:.22; pointer-events:none;}
@media(max-width:860px){ .ca-site-footer .foot-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .ca-site-footer .foot-grid{grid-template-columns:1fr;} .ca-site-footer .foot-bottom{justify-content:flex-start;} }
