/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/* ============================================================
   Header extras — phone + "Free site review" CTA placed after
   the primary menu via the generate_after_primary_menu hook
   (see functions.php). Loaded site-wide (this stylesheet is
   enqueued by GeneratePress on every page). These defaults suit
   the white inner-page header; the homepage template overrides
   the phone colour for its navy header (assets/css/homepage.css).
   ============================================================ */
.tn-header-extras{display:flex;align-items:center;gap:18px;margin-left:24px;}
.tn-header-phone{display:inline-flex;align-items:center;gap:8px;color:#031530;font-weight:600;font-size:15px;line-height:1;white-space:nowrap;text-decoration:none;transition:color .18s ease;}
.tn-header-phone__i{flex:none;width:17px;height:17px;}
.tn-header-phone:hover{color:#1565c4;}
.tn-header-cta{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ffd95c 0%,#ffc921 100%);color:#031530;font-weight:700;font-size:14.5px;line-height:1;padding:11px 20px;border-radius:10px;white-space:nowrap;text-decoration:none;box-shadow:0 2px 10px rgba(255,201,33,.18);transition:transform .18s ease,box-shadow .18s ease;}
.tn-header-cta:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(255,201,33,.32);color:#031530;}

/* Mobile: hide the extras so they don't crowd the hamburger toggle.
   (The hero still carries the phone + CTA.) Revisit if a mobile
   click-to-call in the header is wanted. */
@media (max-width:768px){
  .tn-header-extras{display:none;}
}

/* ============================================================
   Site footer — custom navy footer (replaces GP's footer bar),
   output via the generate_footer hook (see functions.php) and
   rendered site-wide inside GP's full-width .site-footer.
   Brand fonts resolve on the homepage (where homepage.css loads
   the @font-face); elsewhere they fall back to system-ui.
   ============================================================ */
.site-footer{padding:0;}
.tn-footer{background:#020c1f;color:#b9c8e2;border-top:1px solid rgba(255,255,255,.10);
  font-family:'Hanken Grotesk',system-ui,sans-serif;}
.tn-footer__inner{max-width:1200px;margin:0 auto;padding:64px 32px 0;}
.tn-footer__grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:40px;}
.tn-footer__brand{max-width:340px;}
.tn-footer__logo{display:inline-block;font-family:'Plus Jakarta Sans',system-ui,sans-serif;
  font-weight:800;font-size:24px;letter-spacing:-.02em;color:#fff;text-decoration:none;}
.tn-footer__logo span{color:#ffc921;}
.tn-footer__blurb{margin:16px 0 0;font-size:14.5px;line-height:1.6;color:#b9c8e2;}
.tn-footer__rating{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:13.5px;color:#b9c8e2;}
.tn-footer__rating strong{color:#fff;}
.tn-footer__stars{display:inline-flex;gap:2px;}
.tn-footer__stars svg{width:15px;height:15px;fill:#ffc921;}
.tn-footer__social{display:flex;gap:10px;margin-top:20px;}
.tn-footer__social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);color:#b9c8e2;
  transition:background .18s ease,color .18s ease,transform .18s ease;}
.tn-footer__social a:hover{background:#ffc921;color:#031530;transform:translateY(-2px);}
.tn-soc{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tn-footer__h{font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-weight:700;font-size:13px;
  letter-spacing:.1em;text-transform:uppercase;color:#7d90b4;margin:0 0 16px;}
.tn-footer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.tn-footer__list li{font-size:14.5px;color:#b9c8e2;line-height:1.4;}
.tn-footer__list a{color:#b9c8e2;text-decoration:none;transition:color .18s ease;}
.tn-footer__list a:hover{color:#ffc921;}
.tn-footer__contact{font-style:normal;display:flex;flex-direction:column;gap:12px;font-size:14.5px;color:#b9c8e2;}
.tn-footer__addr{line-height:1.5;}
.tn-footer__contact a{display:inline-flex;align-items:center;gap:9px;color:#b9c8e2;text-decoration:none;transition:color .18s ease;}
.tn-footer__contact a:hover{color:#ffc921;}
.tn-fi{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.tn-footer__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  margin-top:56px;padding:22px 0 26px;border-top:1px solid rgba(255,255,255,.10);font-size:13px;color:#7d90b4;}
.tn-footer__bar p{margin:0;}
.tn-footer__legal a{color:#7d90b4;text-decoration:none;transition:color .18s ease;}
.tn-footer__legal a:hover{color:#ffc921;}
.tn-footer__legal span{margin:0 8px;opacity:.5;}
@media (max-width:900px){
  .tn-footer__grid{grid-template-columns:1fr 1fr;gap:36px;}
  .tn-footer__brand{grid-column:1 / -1;max-width:none;}
}
@media (max-width:560px){
  .tn-footer__inner{padding:48px 24px 0;}
  .tn-footer__grid{grid-template-columns:1fr;gap:32px;}
  .tn-footer__bar{flex-direction:column;align-items:flex-start;gap:8px;}
}


/* ============================================================
   thenet.ie — universal inner-page shell
   Paste ONCE into the child theme style.css (it loads site-wide).
   It targets any page whose body contains <main class="tn-page">,
   so every tn- page now and in future goes full-bleed with the
   dark floating header automatically. No template edit, no body
   class, no functions.php change. It never touches normal pages.
   (:has() is fully supported in current browsers.)
   ============================================================ */

/* Full-bleed: drop GeneratePress's container cap + padding */
body:has(.tn-page) #page.grid-container{max-width:100%; padding-left:0; padding-right:0;}
body:has(.tn-page) .site-content{padding:0;}
body:has(.tn-page) main.tn-page{width:100%;}

/* Navy around the whole design so no white shows behind it */
body:has(.tn-page){background-color:#031530;}

/* Float the existing header transparently over the navy hero */
body:has(.tn-page) .site-header{
  background-color:transparent;
  position:fixed; top:0; left:0; right:0; z-index:20;
  transition:background-color .3s ease, box-shadow .3s ease, backdrop-filter .3s ease;
}

/* Frosted navy once scrolled. Needs the .tn-scrolled body class that
   homepage.js adds; harmless if that JS isn't on the page, the header
   just stays transparent over the navy. */
body.tn-scrolled:has(.tn-page) .site-header{
  background-color:rgba(3,21,48,.72);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
  box-shadow:0 1px 0 rgba(255,255,255,.10), 0 18px 40px rgba(0,0,0,.28);
}

/* Light nav + title over the navy, gold on hover / current */
body:has(.tn-page) .main-navigation{background-color:transparent;}
body:has(.tn-page) .main-navigation ul ul{background-color:#051a3a;}
body:has(.tn-page) .main-title a,
body:has(.tn-page) .main-navigation .main-nav ul li a,
body:has(.tn-page) .main-navigation .menu-toggle,
body:has(.tn-page) .main-navigation .menu-bar-items{color:#ffffff;}
body:has(.tn-page) .main-navigation .main-nav ul li:hover > a,
body:has(.tn-page) .main-navigation .main-nav ul li.sfHover > a,
body:has(.tn-page) .main-navigation .main-nav ul li[class*="current-menu-"] > a{color:#ffc921;}
body:has(.tn-page) .tn-header-phone{color:#ffffff;}
body:has(.tn-page) .tn-header-phone:hover{color:#ffc921;}

/* Mobile: opened menu panel needs a solid navy background */
@media (max-width:768px){
  body:has(.tn-page) .main-navigation .main-nav > ul{background-color:#051a3a;}
}
