/*
Theme Name: Nomads Game Fishing Club
Theme URI: https://www.nomadsfishing.co.za/
Author: Nomads Game Fishing Club website rebuild
Description: Block theme implementing "Direction A: Roundel, beige header". Closed palette and locked type via theme.json. Review build.
Version: 0.1.0
Requires at least: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: nomads
*/

:root{
  --bone:#F7F3EC; --paper:#FFFFFF; --sand:#ECE4D6; --ink:#14212B; --drift:#55646E;
  --rope:#CFC2AB; --crest:#006FB9; --crest-deep:#005A99; --abyss:#0B2233;
  --spray:#9CC9EA; --flare:#B8481F; --flare-deep:#9C3C18; --sun:#E8B04B; --kelp:#4C7A52; --coral:#E0668A;
  --f-head:"Barlow Condensed","Arial Narrow",sans-serif;
  --f-body:Barlow,"Helvetica Neue",Arial,sans-serif;
  --wide:1200px; --read:720px; --gut:clamp(16px,3vw,40px);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--crest);outline-offset:2px}
h1,h2,h3,h4{text-wrap:balance;margin:0}
.wp-site-blocks{padding:0}
.wp-site-blocks > *{margin-block:0}

/* ---------- shared pieces ---------- */
.wrap{width:100%;max-width:calc(var(--wide) + 2*var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.label{font:600 14px/20px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--drift)}
.h2{font:600 clamp(30px,3.6vw,44px)/1.05 var(--f-head);margin:0}
.h2::before,.entry-content h2::before,.wp-block-post-content h2::before{content:"";display:block;width:48px;height:4px;background:var(--crest-deep);margin-bottom:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:2px;border:2px solid transparent;font:600 16px/1 var(--f-body);text-decoration:none;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.btn:hover{transform:translateY(-1px)}
.btn--action{background:var(--flare);color:#fff}.btn--action:hover{background:var(--flare-deep);color:#fff}
.btn--primary{background:var(--crest);color:#fff}.btn--primary:hover{background:var(--crest-deep);color:#fff}
.btn--ghost{border-color:#fff;color:#fff}.btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.btn--outline{background:var(--paper);border-color:var(--crest-deep);color:var(--crest-deep)}
.btn svg{width:18px;height:18px}

/* ---------- header ---------- */
.site-head{background:var(--sand);border-bottom:4px solid var(--crest);position:relative;z-index:30}
.site-head > .wrap{display:flex;align-items:center;gap:20px;min-height:206px;padding-block:8px}
.site-head .wp-block-group > *{margin:0}
.brand{display:flex;align-items:center;gap:18px;text-decoration:none;color:var(--abyss);flex-shrink:0}
.brand img{height:190px;width:auto;flex-shrink:0}
.brand b{display:block;font:700 36px/36px var(--f-head);letter-spacing:.03em;text-transform:uppercase}
.brand small{display:block;font:600 13px/18px var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--drift);margin-top:2px}
.head-right{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.util{display:flex;gap:24px;font:600 13px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase}
.util span{color:var(--drift)} .util a{color:var(--crest-deep);text-decoration:none}
.util a:hover{text-decoration:underline}
.util-affil{display:flex;align-items:center;gap:10px;text-transform:none;letter-spacing:0}
.util-affil img{display:block;height:36px;width:auto}
.util-affil img[alt="ILTTA"]{height:auto;max-width:64px}
.util-charity{margin-left:auto;display:flex;align-items:center;gap:10px;text-transform:none;letter-spacing:0;padding-left:20px;border-left:1px solid var(--rope)}
.util-charity span{color:var(--drift)}
.util-charity img{display:block;height:36px;width:auto}
.head-nav .wp-block-navigation__container{gap:4px;align-items:center}
.head-nav .wp-block-navigation-item__content{display:flex;align-items:center;height:40px;padding:0 12px;font:600 17px var(--f-body);color:var(--ink);text-decoration:none}
.head-nav .wp-block-navigation-item__content:hover{color:var(--crest-deep)}
.head-nav .current-menu-item > .wp-block-navigation-item__content,
.head-nav .nm-current > .wp-block-navigation-item__content{color:var(--abyss);box-shadow:inset 0 -3px 0 var(--crest)}
.head-nav .nm-cta .wp-block-navigation-item__content{height:40px;padding:0 16px;margin-left:12px;background:var(--paper);border:2px solid var(--crest-deep);border-radius:2px;color:var(--crest-deep)}
.head-nav .nm-cta .wp-block-navigation-item__content:hover{background:var(--crest-deep);color:#fff}
.head-nav .nm-mobile-only{display:none}
.head-nav .wp-block-navigation__submenu-container{background:var(--paper);border:1px solid var(--rope);border-radius:4px;padding:8px 0;min-width:260px;box-shadow:none;margin-top:0}
.head-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content{height:auto;min-height:40px;padding:8px 20px;font-weight:500;font-size:16px;color:var(--ink);box-shadow:none}
.head-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{background:var(--sand);color:var(--crest-deep)}
.head-nav .wp-block-navigation__submenu-icon{margin-left:2px}
.head-nav .wp-block-navigation__responsive-container-open{width:48px;height:48px;align-items:center;justify-content:center;background:var(--paper);border:1px solid var(--drift);border-radius:2px;color:var(--ink)}
@media (min-width:600px) and (max-width:1279px){
  .head-nav .wp-block-navigation__responsive-container-open{display:flex!important}
  .head-nav .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}
}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--bone);padding:24px var(--gut)}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-size:22px;height:auto;min-height:44px;padding:6px 0;color:var(--ink);box-shadow:none}
.wp-block-navigation__responsive-container.is-menu-open .nm-mobile-only{display:block}
.wp-block-navigation__responsive-container.is-menu-open .nm-cta .wp-block-navigation-item__content{margin:12px 0 0;display:inline-flex}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{border:0;background:transparent;padding:0 0 0 16px}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:18px}
@media (max-width:1279px){
  .site-head > .wrap{min-height:111px;gap:12px}
  .brand{gap:12px} .brand img{height:105px;width:auto}
  .brand b{font-size:26px;line-height:26px} .brand small{display:none}
  .util{display:none}
  .head-nav .nm-mobile-only{display:block}
}

/* ---------- footer ---------- */
.foot{background:var(--abyss);color:var(--bone);padding-block:56px 32px;border-top:4px solid var(--crest);margin:0}
.foot .grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.foot img{height:136px;width:auto;margin-bottom:16px}
.foot p{margin:0 0 6px;font-size:16px;line-height:1.5}
.foot .addr{color:var(--spray)}
.foot h4{margin:0 0 12px;font:600 14px/20px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--spray)}
.foot ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.foot a{color:var(--spray);text-decoration:none;font-size:16px}.foot a:hover{color:#fff}
.foot .base{margin-top:40px;padding-top:20px;border-top:1px solid #1E3A4F;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;color:var(--spray)}
@media (max-width:860px){.foot .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.foot .grid{grid-template-columns:1fr}}

/* ---------- inner pages ---------- */
.page-wrap{padding-inline:var(--gut);padding-block:48px 80px}
.page-wrap > .page-title{margin-bottom:8px}
.page-head{max-width:var(--read);margin-inline:auto;margin-bottom:32px}
.page-head .label{display:block;margin-bottom:8px}
.page-head h1{margin:0}
.page-head .meta{margin-top:12px;font-size:16px;color:var(--drift)}

/* Lyli House page: right sidebar sits beside the main content so the current fundraising
   event is visible the moment the page loads, not just further down in "How to help". */
.nm-sidebar-layout{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:start}
.nm-lyli-sidebar{background:var(--sand);border-radius:4px;padding:24px;position:sticky;top:24px}
.nm-lyli-sidebar h3{margin:0 0 14px;font:700 19px var(--f-head);text-transform:uppercase;letter-spacing:.02em}
.nm-lyli-sidebar img{width:100%;border-radius:4px;display:block;margin-bottom:14px}
.nm-lyli-sidebar p{margin:0 0 14px;font-size:15px;line-height:1.5;color:var(--ink)}
.nm-lyli-sidebar .btn{width:100%;margin-bottom:14px}
.nm-lyli-sidebar__meta{font-size:13px;color:var(--drift);margin-bottom:0!important}
@media (max-width:900px){.nm-sidebar-layout{grid-template-columns:1fr}.nm-lyli-sidebar{position:static}}
.entry-content > *{max-width:var(--read);margin-inline:auto}
.entry-content > .wp-block-table,.entry-content > figure.wp-block-table,
.entry-content > .alignwide,.entry-content > details.wide,.entry-content > iframe,
.entry-content > .wp-block-gallery{max-width:var(--wide)}
.entry-content > .alignfull{max-width:none}
.entry-content > * + *{margin-top:1.25rem}
.entry-content h2{margin-top:2.5rem}
.entry-content h3{margin-top:2rem}
.entry-content ul,.entry-content ol{padding-left:1.4em}
.entry-content li + li{margin-top:.35em}

/* Constitution page: clause numbers are printed literally (not auto-numbered via <ol>) so
   they can never drift from the signed original; indentation alone shows the hierarchy. */
.nm-constitution-clause{font-size:16px;line-height:1.6}
.nm-constitution-clause--L2{padding-left:0}
.nm-constitution-clause--L3{padding-left:28px}
.nm-constitution-clause--L4{padding-left:56px}
.nm-constitution-clause--L5{padding-left:84px}
.entry-content figure{margin-inline:auto}
.entry-content img{border-radius:2px}
.entry-content figcaption,.entry-content .wp-element-caption{font-size:16px;color:var(--drift);margin-top:8px}

/* tables: records / results look (spec nm-table) */
.entry-content table,.wp-block-post-content table{width:100%;border-collapse:collapse;background:var(--paper);font:500 16px/24px var(--f-body);font-variant-numeric:tabular-nums;color:var(--ink)}
.entry-content table th,.wp-block-post-content table th{background:var(--abyss);color:#fff;font:600 13px/18px var(--f-body);letter-spacing:.08em;text-transform:uppercase;text-align:left;padding:12px 16px;vertical-align:bottom}
.entry-content table td,.wp-block-post-content table td{padding:10px 16px;border-bottom:1px solid var(--rope);vertical-align:top}
.entry-content table tbody tr:nth-child(even) td{background:var(--sand)}
.entry-content table thead th a,.entry-content table th a{color:var(--spray)}
.entry-content table caption{caption-side:top;text-align:left;padding:0 0 8px;color:var(--drift)}
@media (max-width:700px){
  .entry-content table{display:block;overflow-x:auto;white-space:nowrap!important}
  .entry-content table[style*="width"]{width:auto!important}
}

/* collapsible sections (VHF page) */
.entry-content details{background:var(--paper);border:1px solid var(--rope);border-radius:4px;padding:0}
.entry-content details > summary{cursor:pointer;padding:14px 20px;font:600 22px/1.2 var(--f-head);list-style:none;display:flex;justify-content:space-between;gap:12px}
.entry-content details > summary::after{content:"+";color:var(--crest-deep)}
.entry-content details[open] > summary::after{content:"–"}
.entry-content details > :not(summary){padding-inline:20px}
.entry-content details > :last-child{padding-bottom:16px}
.entry-content details + details{margin-top:12px}

/* notice banners already in content (red border) -> notice panel look */
.entry-content [style*="border"][style*="red"],.entry-content [style*="border:"][style*="#c"]{border-radius:4px}

/* notice panel (spec: surface-alt panel, used for callouts/banking details) */
.entry-content .nm-panel{background:var(--sand);border-radius:4px;padding:16px 24px;margin-top:20px;margin-bottom:20px}
.entry-content .nm-panel p{margin:0}
.entry-content .nm-panel p + p{margin-top:12px}

/* document links */
.entry-content a[href$=".pdf"],.entry-content a[href$=".doc"],.entry-content a[href$=".docx"]{font-weight:600}

/* lists of posts (archives, blog) */
.nm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.nm-list > li{margin:0;padding:14px 0;border-bottom:1px solid var(--rope)}
.nm-list .wp-block-post-title{font:600 24px/1.2 var(--f-head);margin:0}
.nm-list .wp-block-post-title a{color:var(--ink);text-decoration:none}
.nm-list .wp-block-post-title a:hover{color:var(--crest-deep)}
.nm-list .wp-block-post-date,.nm-list .wp-block-post-terms{font-size:16px;color:var(--drift)}
.nm-meta{font-size:16px;color:var(--drift)}
.wp-block-query-pagination{margin-top:32px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;font:600 16px var(--f-body)}
.wp-block-query-pagination a,.wp-block-query-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border:1px solid var(--rope);border-radius:2px;background:var(--paper);text-decoration:none;color:var(--ink)}
.wp-block-query-pagination .page-numbers.current{background:var(--crest);border-color:var(--crest);color:#fff}

/* forms (Ninja Forms etc.) */
.entry-content input[type=text],.entry-content input[type=email],.entry-content input[type=tel],.entry-content input[type=number],.entry-content input[type=date],.entry-content input[type=password],.entry-content select,.entry-content textarea{min-height:48px;padding:0 12px;border:1px solid var(--drift);border-radius:2px;background:#fff;font:400 18px/28px var(--f-body);color:var(--ink);max-width:100%}
.entry-content textarea{padding:10px 12px}
.entry-content input[type=submit],.entry-content button[type=submit],.entry-content .nf-form-content input[type=button]{min-height:48px;padding:0 24px;border:0;border-radius:2px;background:var(--flare);color:#fff;font:600 16px/1 var(--f-body);cursor:pointer}
.entry-content input[type=submit]:hover,.entry-content button[type=submit]:hover{background:var(--flare-deep)}
.entry-content label{font:600 16px/24px var(--f-body)}

/* buttons from the block editor */
.wp-block-button__link{border-radius:2px}
.wp-block-button.is-style-action .wp-block-button__link{background:var(--flare);color:#fff}
.wp-block-button.is-style-action .wp-block-button__link:hover{background:var(--flare-deep)}
.wp-block-button.is-style-outline .wp-block-button__link{background:#fff;border:2px solid var(--crest-deep);color:var(--crest-deep)}

/* Events Calendar pages sit in the page frame */
#tribe-events-pg-template,.tribe-events-pg-template{max-width:var(--wide);margin:0 auto;padding:48px var(--gut) 80px}

/* search */
.wp-block-search__input{min-height:48px;padding:0 12px;border:1px solid var(--drift);border-radius:2px;font:400 18px var(--f-body)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* ---------- legacy content clean-up: old pages carry inline fonts/colours/borders ---------- */
.entry-content [style*="font-family"]:not(h1,h2,h3,h4,h5,h6){font-family:inherit!important}
.entry-content :is(h1,h2,h3,h4,h5,h6)[style*="font"]{font-family:var(--f-head)!important}
.entry-content [style*="font-size"]:not(h1,h2,h3,h4,h5,h6){font-size:inherit!important}
.entry-content :is(h1,h2,h3,h4,h5,h6)[style*="font-size"]{font-size:revert-layer!important}
.entry-content [style*="color"]:not(a,h1,h2,h3,h4,h5,h6,[class*="has-"]){color:inherit!important}
.entry-content [style*="line-height"]:not(h1,h2,h3,h4,h5,h6){line-height:inherit!important}
.entry-content [style*="font-weight"]:not(strong,b,th,h1,h2,h3,h4,h5,h6,summary){font-weight:inherit!important}
.entry-content font{font-family:inherit!important;font-size:inherit!important;color:inherit!important}
.entry-content table,.entry-content th,.entry-content td{border-left:0;border-right:0;border-top:0}
.entry-content table{border:0}
.entry-content td[style*="border"],.entry-content th[style*="border"]{border-color:var(--rope)!important}
.entry-content table[width],.entry-content td[width]{width:auto}
.entry-content table[style*="width"]{width:100%!important}
.entry-content p:empty{display:none}

/* record-type pages: dates are publish dates, not meaningful */
.post-type-archive:not(.post-type-archive-tribe_events) .nm-list .wp-block-post-date,
.tax-tournament_year .nm-list .wp-block-post-date,.tax-tournament_venue .nm-list .wp-block-post-date,
.tax-award_year .nm-list .wp-block-post-date,.tax-club_record_species .nm-list .wp-block-post-date,.tax-roster_category .nm-list .wp-block-post-date{display:none}
body[class*="single-"]:not(.single-post) .page-head .meta{display:none}

/* The Events Calendar: use the club fonts and colours */
:root{
  --tec-font-family-sans-serif:Barlow,"Helvetica Neue",Arial,sans-serif;
  --tec-font-family-base:Barlow,"Helvetica Neue",Arial,sans-serif;
  --tec-color-accent-primary:#006FB9;
  --tec-color-accent-primary-hover:#005A99;
  --tec-color-accent-primary-active:#005A99;
  --tec-color-link-accent:#006FB9;
  --tec-color-link-accent-hover:#005A99;
  --tec-color-button-primary:#006FB9;
  --tec-color-button-primary-hover:#005A99;
  --tec-color-text-primary:#14212B;
  --tec-color-text-secondary:#55646E;
  --tec-color-border-default:#CFC2AB;
}
.tribe-common,.tribe-events,.tribe-events-view{font-family:var(--f-body)}
.tribe-common h1,.tribe-common h2,.tribe-common h3,.tribe-common h4,
.tribe-common .tribe-events-calendar-list__event-title,.tribe-common .tribe-events-header__title-text,
.tribe-common .tribe-events-calendar-list__month-separator-text{font-family:var(--f-head)!important;font-weight:600!important;letter-spacing:0}
.tribe-common .tribe-events-calendar-list__event-title{font-size:26px;line-height:1.2}
.tribe-events-view{padding-top:32px}

/* mobile menu: left-aligned, tighter */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{align-items:flex-start!important;justify-content:flex-start!important;text-align:left;gap:2px}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:6px}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{padding:0 0 8px 16px!important;margin:0!important}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{width:100%}

/* Events Calendar buttons and month heading */
.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{background-color:var(--crest)!important;border-radius:2px}
.tribe-common .tribe-common-c-btn:hover{background-color:var(--crest-deep)!important}
.tribe-common .tribe-events-c-top-bar__datepicker-button,.tribe-common .tribe-events-c-top-bar__datepicker-desktop{font-family:var(--f-head)!important;font-weight:600!important;font-size:34px!important;color:var(--ink)!important}

/* mobile menu alignment: core takes this from the block's right-justified desktop layout */
.head-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.head-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{--navigation-layout-align:flex-start;--navigation-layout-justify:flex-start;--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:column;--navigation-layout-wrap:nowrap;align-items:flex-start!important;justify-content:flex-start!important}
.head-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{align-items:flex-start!important}
.head-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{justify-content:flex-start!important;text-align:left!important}
.head-nav .wp-block-navigation__responsive-container.is-menu-open{padding:16px 20px 40px!important}

/* structured record pages (output of the mu-plugin display filters) */
.nm-record{max-width:var(--wide);margin-inline:auto}
.nm-record > p{max-width:var(--read);margin-inline:auto}
.nm-record > h3,.nm-record > ul,.nm-record > img{max-width:var(--read);margin-inline:auto}
.nm-record > .nm-event-gallery,.nm-record > .nm-event-sponsors{max-width:var(--read);margin-inline:auto}
.nm-record h3{margin-top:2rem}
.nm-record > table{margin-top:.5rem}

/* ---------- archive tables (results, records) ---------- */
.nm-archive{max-width:var(--wide);margin-inline:auto}
.nm-archive h1{font:600 clamp(34px,4vw,48px)/1.08 var(--f-head);text-transform:uppercase;letter-spacing:.01em;margin:8px 0 12px}
.nm-intro{max-width:var(--read);color:var(--ink);margin:0 0 24px}
.nm-filter{display:flex;flex-wrap:wrap;gap:16px 20px;align-items:flex-end;background:var(--sand);border-radius:4px;padding:20px 24px;margin-bottom:20px}
.nm-filter label{display:flex;flex-direction:column;gap:6px;font:600 14px/20px var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--drift)}
.nm-filter input[type=search],.nm-filter select{min-height:48px;min-width:180px;padding:0 12px;border:1px solid var(--drift);border-radius:2px;background:#fff;font:400 18px/28px var(--f-body);color:var(--ink);text-transform:none;letter-spacing:0}
.nm-filter .nm-check{flex-direction:row;align-items:center;gap:8px;min-height:48px;text-transform:none;letter-spacing:0;font-size:16px;color:var(--ink)}
.nm-filter .nm-check input{width:20px;height:20px}
.nm-filter .btn{border:0}
.nm-clear{align-self:center;font-weight:600}
.nm-count{font-size:16px;color:var(--drift);margin:0 0 12px}
.nm-legend{margin-left:16px}.nm-legend .nm-record-dot{margin:0 4px 0 0}
.nm-tablewrap{overflow-x:auto;border-radius:4px}
.nm-table{width:100%;border-collapse:collapse;background:#fff;font:500 16px/24px var(--f-body);font-variant-numeric:tabular-nums;color:var(--ink)}
.nm-table th{background:var(--abyss);color:#fff;font:600 13px/18px var(--f-body);letter-spacing:.08em;text-transform:uppercase;text-align:left;padding:12px 16px;white-space:nowrap;position:sticky;top:0}
.nm-table tbody th{position:static;background:transparent;color:var(--ink);font:600 17px/24px var(--f-body);letter-spacing:0;text-transform:none;white-space:normal}
.nm-table tbody th a{text-decoration:none}.nm-table tbody th a:hover{text-decoration:underline}
.nm-table td,.nm-table tbody th{padding:10px 16px;border-bottom:1px solid var(--rope);vertical-align:top}
.nm-table tbody tr:nth-child(even) td,.nm-table tbody tr:nth-child(even) th{background:var(--sand)}
.nm-table .num{text-align:right;white-space:nowrap;font-weight:600}
.nm-table .muted,.nm-table td.muted{color:var(--drift)}
.nm-record-dot{display:inline-block;width:10px;height:10px;border-radius:999px;background:var(--sun);box-shadow:0 0 0 1px #9A7424;margin-left:8px;vertical-align:middle}
.nm-tag{display:inline-block;padding:4px 8px;border-radius:2px;font:600 13px/16px var(--f-body);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.nm-tag--results{background:var(--abyss);color:var(--spray)}
.nm-tag--nomads{background:var(--sand);color:var(--crest-deep);margin-left:8px;vertical-align:middle;font-size:11px}
.nm-tag--closed{background:var(--sand);color:var(--drift)}
.nm-table tbody tr:nth-child(even) .nm-tag--closed{background:#fff}
@media (max-width:700px){
  .nm-filter{flex-direction:column;align-items:stretch}.nm-filter input[type=search],.nm-filter select{width:100%}
  .nm-table{display:table;width:auto;min-width:100%}
}

.nm-scroll-hint{display:none;margin:0 0 8px;font:600 12px/16px var(--f-body);letter-spacing:.04em;text-transform:uppercase;color:var(--drift)}
@media (max-width:700px){.nm-scroll-hint{display:block}}

/* long unbreakable links/words must wrap on phones */
.entry-content a,.entry-content p,.entry-content li,.entry-content td{overflow-wrap:anywhere}
.entry-content table a,.nm-table a{overflow-wrap:normal}
.tribe-events-view,.tribe-common .tribe-events-l-container{overflow-x:clip}

/* embeds: unresolved embed URLs and WordPress's own post-embed iframe must not force page width */
.entry-content .wp-block-embed__wrapper{overflow-wrap:anywhere;max-width:100%}
.entry-content .wp-block-embed__wrapper iframe,.entry-content iframe.wp-embedded-content{max-width:100%}

/* Standardise event poster/media size: a fixed-ratio frame crops whatever size image is
   uploaded via WP-Admin, so every event looks consistent regardless of the source file. */
.tribe-events-calendar-list__event-featured-image-wrapper,
.tribe-events-calendar-day__event-featured-image-wrapper,
.tribe-events-event-image{aspect-ratio:3/2;overflow:hidden;border-radius:2px}
.tribe-events-calendar-list__event-featured-image,
.tribe-events-calendar-day__event-featured-image,
.tribe-events-event-image img{width:100%;height:100%;object-fit:cover;display:block}

/* The poster/flyer committee members paste into an event's Description field (not the
   Featured Image above) comes in at whatever size and orientation the source file happens
   to be - one event's was a 300x200 crop, another a 1024x1536 full-size upload, rendering
   wildly different sizes. Cap the display width instead of cropping (unlike the card images
   above): a flyer usually carries real info right to its edges, so it must stay whole and
   readable on its own details page. Same .nm-poster class reused for the Tournament Results
   entry flyer field and the Provincial & National Representation "Congratulations" posters,
   so every "poster" on the site is sized the same way regardless of which feature it comes
   from. ".nm-record > img" (below) targets plain inline images at --read width (720px) -
   ".nm-record > img.nm-poster" needs the extra class in its selector to win on specificity. */
.nm-poster,
.nm-record > img.nm-poster,
.tribe-events-single-event-description img{display:block;max-width:400px;width:100%;height:auto;margin:20px 0;border-radius:4px;border:1px solid var(--rope)}

/* header search */
.head-search{display:inline-flex;align-items:center;margin:0 0 0 8px;background:#fff;border:1px solid var(--drift);border-radius:2px;height:30px}
.head-search input{border:0;background:transparent;height:28px;width:150px;padding:0 8px;font:500 14px var(--f-body);letter-spacing:0;text-transform:none;color:var(--ink)}
.head-search input:focus-visible{outline:2px solid var(--crest);outline-offset:1px}
.head-search button{border:0;background:transparent;color:var(--crest-deep);height:28px;width:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.head-search-row{display:none;background:var(--bone);padding:10px var(--gut);border-bottom:1px solid var(--rope)}
.head-search--mobile{display:flex;margin:0;height:44px;width:100%}
.head-search--mobile input{height:42px;width:100%;font-size:16px;padding:0 12px}
.head-search--mobile button{height:42px;width:46px}
@media (max-width:1279px){.head-search-row{display:block}}
.nm-years{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.nm-years a{display:flex;align-items:center;justify-content:center;min-height:48px;background:#fff;border:1px solid var(--rope);border-radius:4px;font:700 24px var(--f-head);text-decoration:none;color:var(--ink)}
.nm-years a:hover{border-color:var(--crest);color:var(--crest-deep)}

/* keep the desktop header on two rows even with Photos + search */
@media (min-width:1280px){
  .head-nav .wp-block-navigation__container{gap:0;flex-wrap:nowrap}
  .head-nav .wp-block-navigation-item__content{padding:0 9px;font-size:16px}
  .head-nav .nm-cta .wp-block-navigation-item__content{padding:0 14px;margin-left:8px}
  .head-right{flex:none}
  .brand small{white-space:nowrap}
}
@media (min-width:1280px) and (max-width:1280px){
  .brand img{height:145px;width:auto}.brand b{font-size:30px}.brand small{font-size:12px;letter-spacing:.06em}
  .site-head > .wrap{min-height:165px}
}

/* ---------- Ninja Forms ----------
   Ninja Forms makes every input/select/textarea fill its container at 100%
   width with no cap of its own — on a page up to 1200px wide that stretches
   each field into a long thin strip. Capping the form's own width fixes that
   without touching Ninja Forms' markup, and the rest here matches each
   field to the site's normal input styling instead of the plugin default. */
.nf-form-cont{max-width:600px}
.nf-field-label label,.nf-field-label .nf-label-span{font:600 15px var(--f-body);color:var(--ink)}
.nf-field-element input[type=text],.nf-field-element input[type=email],
.nf-field-element input[type=tel],.nf-field-element input[type=number],
.nf-field-element input[type=password],.nf-field-element select,.nf-field-element textarea{
  height:48px;padding:0 14px;border:1px solid var(--rope);border-radius:2px;
  font:400 16px var(--f-body);color:var(--ink);background:#fff;width:100%
}
.nf-field-element textarea{height:120px;padding:12px 14px}
.nf-field-element select{height:48px}
.nf-field-description{color:var(--drift);font-size:14px}
.ninja-forms-req-symbol{color:var(--flare)}
.nf-error-msg{color:var(--flare);font-size:14px}
.nf-error .nf-field-element input,.nf-error .nf-field-element select,.nf-error .nf-field-element textarea{border-color:var(--flare)}
.listradio-wrap .nf-field-element li,.listcheckbox-wrap .nf-field-element li{margin-bottom:8px!important}
.nf-form-cont .html-wrap{background:var(--sand);border-radius:4px;padding:16px 20px;margin-bottom:20px}
.submit-wrap input[type=submit]{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;
  border:none;border-radius:2px;background:var(--crest);color:#fff;font:600 16px var(--f-body);cursor:pointer
}
.submit-wrap input[type=submit]:hover{background:var(--crest-deep)}

/* ---------- Past events (preliminary browse-by-event) ---------- */
.nm-events-page .nm-intro{color:var(--drift);font-size:1.0625rem;max-width:640px;margin:8px 0 28px}
.nm-events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.nm-event-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--rope);border-radius:4px;overflow:hidden;transition:border-color .2s}
.nm-event-card:hover{border-color:var(--crest)}
.nm-event-card__photo{aspect-ratio:16/9;background:var(--sand);display:flex;align-items:center;justify-content:center}
.nm-event-card__photo span{color:var(--drift);font:italic 400 14px var(--f-body)}
.nm-event-card__body{padding:20px;display:flex;flex-direction:column;flex:1}
.nm-event-card__year{font:700 13px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--crest-deep)}
.nm-event-card__body h3{font:700 22px var(--f-head);line-height:1.15;margin:6px 0 8px;text-transform:none}
.nm-event-card__body h3 a{color:var(--ink);text-decoration:none}
.nm-event-card__body h3 a:hover{color:var(--crest-deep)}
.nm-event-card__meta{color:var(--drift);font-size:14px;margin:0 0 10px}
.nm-event-card__excerpt{color:var(--ink);font-size:15px;line-height:1.5;margin:0 0 16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nm-event-card__link{margin-top:auto;align-self:flex-start;min-height:40px;padding:0 18px;font-size:14px}

/* ---------- Sponsors page ---------- */
.nm-sponsor-tier{font:700 15px var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--crest-deep);margin:36px 0 16px}
.nm-sponsor-tier:first-of-type{margin-top:8px}
.nm-sponsor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}
.nm-sponsor-card{display:flex;flex-direction:column;gap:12px;background:var(--paper);border:1px solid var(--rope);border-radius:4px;padding:20px;transition:border-color .2s}
.nm-sponsor-card:hover{border-color:var(--crest)}
.nm-sponsor-card__logo{display:flex;align-items:center;justify-content:center;height:90px}
.nm-sponsor-card__logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.nm-sponsor-card__blurb{margin:0;color:var(--drift);font-size:14px;line-height:1.5}
.nm-sponsor-cta{margin-top:56px;padding:32px;background:var(--sand);border-radius:4px;text-align:center}
.nm-sponsor-cta h2{margin:0 0 8px;font:700 24px var(--f-head)}
.nm-sponsor-cta p{margin:0 0 20px;color:var(--drift);max-width:48ch;margin-left:auto;margin-right:auto}

/* ---------- Event photos + event-specific sponsors (on a single Tournament Result page) ---------- */
.nm-event-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:0 0 24px;padding:0;list-style:none}
.nm-event-photo{margin:0;display:flex;flex-direction:column;gap:6px}
.nm-event-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
.nm-event-photo--portrait img{aspect-ratio:3/4;object-fit:contain;background:var(--ink)}
.nm-event-photo figcaption{font-size:13px;color:var(--drift)}
/* Deliberately plain/flat (no card border) so this reads differently from the club-wide
   Sponsors page cards — this list is specific to one event, not a club sponsor directory. */
.nm-event-sponsors{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin:0 0 24px}
.nm-event-sponsor{display:flex;align-items:center;justify-content:center;width:140px;height:80px}
.nm-event-sponsor img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.nm-event-more-photos{display:inline-block;margin:0 0 24px}

/* ---------- Photo galleries (archive grid + single-gallery back-link) ---------- */
.nm-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.nm-gallery-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--rope);border-radius:4px;overflow:hidden;transition:border-color .2s;text-decoration:none;color:inherit}
.nm-gallery-card:hover{border-color:var(--crest)}
.nm-gallery-card__img{display:block;aspect-ratio:4/3;background:var(--sand)}
.nm-gallery-card__img img{width:100%;height:100%;object-fit:cover;display:block}
.nm-gallery-card__title{font:700 18px var(--f-head);padding:16px 16px 0;color:var(--ink)}
.nm-gallery-card__event{font-size:13px;color:var(--drift);padding:4px 16px 16px}

/* ---------- Provincial & National Representation (tier tabs + poster showcase) ---------- */
.nm-tier-switch{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.nm-tier-tab{display:inline-flex;align-items:center;padding:8px 18px;border:1px solid var(--rope);border-radius:999px;font:600 14px/1 var(--f-body);letter-spacing:.04em;text-transform:uppercase;color:var(--crest-deep);text-decoration:none;background:#fff}
.nm-tier-tab:hover{background:var(--sand)}
.nm-tier-tab.is-active{background:var(--abyss);border-color:var(--abyss);color:#fff}
.nm-accolades-heading{font:700 22px var(--f-head);text-transform:uppercase;letter-spacing:.02em;margin:0 0 16px}
.nm-accolades-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px;margin:0 0 32px;padding:0;list-style:none}
.nm-accolade-card a{display:block;color:inherit;text-decoration:none}
.nm-accolade-card img{width:100%;aspect-ratio:2/3;object-fit:cover;object-position:top;border-radius:4px;border:1px solid var(--rope);display:block;margin-bottom:8px}
.nm-accolade-card__name{display:block;font:700 15px/1.3 var(--f-body);color:var(--ink)}
.nm-accolade-card__meta{display:block;font-size:13px;color:var(--drift)}
.nm-accolade-card a:hover .nm-accolade-card__name{text-decoration:underline}

/* Back-link shown above the plain data dump on single record pages (Tournament
   Results, Club Records, Annual Awards, Honours Boards) — mainly for visitors
   arriving via a direct/shared link, who have no browser-back path to the
   relevant archive. */
.nm-back-link{margin:0 0 16px}
.nm-back-link a{display:inline-flex;align-items:center;gap:6px;color:var(--crest-deep);font:600 14px var(--f-body);text-decoration:none}
.nm-back-link a:hover{text-decoration:underline}
