/*
Theme Name: The Shrimpers-online Theme
Theme URI: https://theshrimpers-online.co.uk/
Author: The Shrimpers-online
Author URI: https://theshrimpers-online.co.uk/
Description: A standalone dark blue and gold WordPress theme built for The Shrimpers-online, with full-width plugin canvases, editable navigation and an integrated TSO footer.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: the-shrimpers-online
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  --tso-navy: #071d33;
  --tso-navy-deep: #031322;
  --tso-blue: #003087;
  --tso-gold: #ffd700;
  --tso-gold-dark: #d8b700;
  --tso-light: #f4f7fb;
  --tso-white: #ffffff;
  --tso-text: #1f2a44;
  --tso-muted: #b9c5d4;
  --tso-border: rgba(255, 215, 0, .28);
  --tso-radius: 18px;
  --tso-shadow: 0 16px 42px rgba(0, 0, 0, .24);
  --tso-width: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--tso-navy-deep);
  color: var(--tso-white);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.65;
}
a { color: var(--tso-gold); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover, a:focus { color: var(--tso-white); }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
.screen-reader-text { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.screen-reader-text:focus { width:auto; height:auto; clip:auto; margin:10px; padding:10px 14px; background:#fff; color:#000; z-index:100000; }

.tso-site { min-height: 100vh; display: flex; flex-direction: column; }
.tso-wrap { width: min(calc(100% - 32px), var(--tso-width)); margin-inline: auto; }
.tso-site-main { flex: 1; width: 100%; }

/* Header */
.tso-header { position:relative; z-index:1000; background:linear-gradient(135deg,#031322 0%,#071d33 58%,#003087 100%); border-bottom:3px solid var(--tso-gold); box-shadow:0 8px 28px rgba(0,0,0,.28); }
.tso-header__inner { min-height:72px; width:min(calc(100% - 24px),1800px); margin-inline:auto; display:flex; align-items:center; justify-content:center; }
.tso-menu-toggle { display:none; border:1px solid var(--tso-gold); background:var(--tso-gold); color:var(--tso-navy); border-radius:10px; padding:10px 16px; font-weight:800; cursor:pointer; }
.tso-primary-nav { width:100%; }
.tso-primary-nav ul { list-style:none; padding:0; margin:0; }
.tso-primary-nav > div > ul { display:flex; align-items:center; justify-content:center; gap:4px; flex-wrap:wrap; }
.tso-primary-nav li { position:relative; }
.tso-primary-nav a { display:block; padding:13px 12px; border-radius:9px; color:#fff; text-decoration:none; font-weight:700; line-height:1.2; white-space:nowrap; }
.tso-primary-nav a:hover,.tso-primary-nav a:focus,.tso-primary-nav .current-menu-item>a,.tso-primary-nav .current-menu-ancestor>a { background:var(--tso-gold); color:var(--tso-navy); }
.tso-primary-nav .sub-menu { display:none; position:absolute; top:100%; left:0; min-width:250px; padding:9px; background:#071d33; border:1px solid var(--tso-border); border-radius:12px; box-shadow:var(--tso-shadow); }
.tso-primary-nav li:hover>.sub-menu,.tso-primary-nav li:focus-within>.sub-menu { display:block; }
.tso-primary-nav .sub-menu .sub-menu { top:0; left:100%; }
.tso-primary-nav .menu-item-has-children>a::after { content:' ▾'; color:var(--tso-gold); }

/* Pages: no forced visible title and no white theme shell */
.tso-content { width:min(calc(100% - 24px), 1600px); margin:0 auto; padding:28px 0 54px; }
.tso-content--plugin { width:100%; max-width:none; margin:0; padding:0; }
.tso-content--wide { width:calc(100% - 12px); max-width:1900px; }
.tso-entry { min-width:0; }
.tso-entry__title { color:var(--tso-gold); font-size:clamp(2rem,4vw,3.7rem); line-height:1.08; margin:0 0 22px; }
.tso-entry-content::after { content:''; display:table; clear:both; }
.tso-entry-content > :first-child { margin-top:0; }
.tso-entry-content > :last-child { margin-bottom:0; }
.tso-entry-content .alignwide { width:min(1400px, calc(100vw - 32px)); max-width:none; margin-left:50%; transform:translateX(-50%); }
.tso-entry-content .alignfull { width:100vw; max-width:none; margin-left:50%; transform:translateX(-50%); }

/* Articles remain easy to read */
.tso-article-card { background:var(--tso-white); color:var(--tso-text); border-radius:var(--tso-radius); box-shadow:var(--tso-shadow); padding:clamp(22px,4vw,48px); }
.tso-article-card a { color:var(--tso-blue); }
.tso-article-card a:hover { color:#001f56; }
.tso-article-card .tso-entry__title { color:var(--tso-navy); }
.tso-meta { color:#62708a; font-size:.94rem; margin:-10px 0 24px; }

/* Forms and common controls */
button, .button, input[type=submit], .wp-element-button, .wp-block-button__link { border:2px solid var(--tso-gold); background:var(--tso-gold); color:var(--tso-navy); border-radius:10px; padding:.72em 1.1em; font-weight:800; text-decoration:none; cursor:pointer; }
button:hover, .button:hover, input[type=submit]:hover, .wp-element-button:hover, .wp-block-button__link:hover { background:var(--tso-navy); color:var(--tso-gold); }
input[type=text], input[type=email], input[type=url], input[type=password], input[type=search], input[type=number], input[type=tel], input[type=date], input[type=time], select, textarea { max-width:100%; border:1px solid #a9b5c5; border-radius:9px; padding:11px 12px; background:#fff; color:#162238; }

/* Archive/search cards */
.tso-archive-title { color:var(--tso-gold); margin:0 0 24px; }
.tso-post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.tso-post-card { overflow:hidden; background:#fff; color:var(--tso-text); border-radius:16px; box-shadow:var(--tso-shadow); }
.tso-post-card__image img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.tso-post-card__body { padding:20px; }
.tso-post-card__title { font-size:1.32rem; line-height:1.25; margin:0 0 10px; }
.tso-post-card__title a { color:var(--tso-navy); text-decoration:none; }
.tso-post-card__title a:hover { color:var(--tso-blue); }

/* Integrated TSO footer */
.tso-footer-new { --navy:#050033; --deep:#071d33; --blue:#002366; --gold:#FFD700; --red:#cc0000; --white:#fff; font-family:Arial,Helvetica,sans-serif; background:radial-gradient(circle at top left,rgba(255,215,0,.18),transparent 28%),linear-gradient(135deg,#071d33,#123d67,#1b4f85); color:#fff; margin-top:70px; padding:55px 20px 28px; border-top:3px solid var(--gold); }
.tso-footer-new * { box-sizing:border-box; }
.tso-footer-inner { max-width:1200px; margin:0 auto; }
.tso-footer-top { display:grid; grid-template-columns:1.15fr .85fr; gap:36px; align-items:center; padding-bottom:34px; border-bottom:1px solid rgba(255,255,255,.18); }
.tso-footer-brand { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.tso-footer-brand>img,.tso-footer-logo img { width:260px; max-width:100%; height:auto; filter:drop-shadow(0 0 10px rgba(255,255,255,.28)); }
.tso-footer-brand h2 { margin:0 0 10px; color:var(--gold); font-size:2rem; line-height:1.1; }
.tso-footer-brand p { margin:0; max-width:560px; line-height:1.65; color:#f2f6ff; }
.tso-footer-tag { display:inline-block; margin-top:12px; background:rgba(255,215,0,.12); border:1px solid rgba(255,215,0,.35); color:var(--gold); padding:8px 13px; border-radius:999px; font-weight:900; }
.tso-footer-social { text-align:right; }
.tso-footer-social h3 { margin:0 0 15px; color:var(--gold); font-size:1.5rem; }
.tso-social-icons { display:flex; justify-content:flex-end; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.tso-social-icons a { display:inline-flex; width:56px; height:56px; align-items:center; justify-content:center; border-radius:50%; transition:transform .2s ease,filter .2s ease; }
.tso-social-icons a:hover { transform:translateY(-3px) scale(1.04); filter:brightness(1.08); }
.tso-social-icons img { width:56px; height:56px; object-fit:contain; border-radius:50%; filter:drop-shadow(0 7px 9px rgba(0,0,0,.24)); }
.tso-social-icons .tso-social-x { background:#050a12; border:2px solid #ffd700; color:#fff!important; font-size:1.65rem; font-weight:950; text-decoration:none; box-shadow:0 7px 14px rgba(0,0,0,.24); }
.tso-contact-btn { display:inline-block; background:var(--red); color:#fff!important; text-decoration:none; padding:13px 24px; border-radius:999px; font-weight:900; box-shadow:0 10px 22px rgba(204,0,0,.25); }
.tso-footer-links { padding:38px 0; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; border-bottom:1px solid rgba(255,255,255,.18); }
.tso-footer-card { display:block; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:18px; padding:18px; text-decoration:none; color:#fff!important; min-height:112px; transition:transform .2s ease,background .2s ease; }
.tso-footer-card:hover { background:rgba(255,215,0,.16); transform:translateY(-3px); }
.tso-footer-card span { display:block; font-size:1.65rem; margin-bottom:8px; }
.tso-footer-card strong { display:block; color:var(--gold); font-size:1.05rem; margin-bottom:5px; }
.tso-footer-card em { display:block; color:#eef3ff; font-style:normal; line-height:1.45; font-size:.93rem; }
.tso-footer-main { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; padding:38px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.tso-footer-col h3 { margin:0 0 15px; color:var(--gold); font-size:1.45rem; }
.tso-footer-col ul { list-style:none; padding:0; margin:0; line-height:2.1; }
.tso-footer-col a { color:#fff!important; text-decoration:none; }
.tso-footer-col a:hover { color:var(--gold)!important; text-decoration:underline; }
.tso-footer-support { text-align:center; padding:34px 20px; margin:38px 0; border-radius:24px; background:linear-gradient(135deg,var(--gold),#fff1a8); color:var(--blue); border:3px solid rgba(255,255,255,.8); box-shadow:0 18px 35px rgba(0,0,0,.18); }
.tso-footer-support h3 { margin:0 0 10px; color:var(--blue); font-size:2rem; }
.tso-footer-support p { max-width:720px; margin:0 auto 20px; line-height:1.65; font-weight:700; }
.tso-footer-support a { display:inline-block; background:var(--blue); color:var(--gold)!important; text-decoration:none; padding:14px 30px; border-radius:999px; font-weight:950; }
.tso-footer-bottom { text-align:center; color:#e7edf8; font-size:.92rem; line-height:1.75; }
.tso-footer-bottom-links { margin-top:12px; display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }
.tso-footer-bottom-links a { color:var(--gold)!important; text-decoration:none; font-weight:800; }

.tso-pagination { margin-top:28px; }
.tso-pagination .nav-links { display:flex; flex-wrap:wrap; gap:8px; }
.tso-pagination a, .tso-pagination span { padding:8px 12px; border-radius:8px; background:#fff; color:var(--tso-navy); text-decoration:none; }
.tso-pagination .current { background:var(--tso-gold); font-weight:800; }

@media (max-width:980px) {
  .tso-menu-toggle { display:inline-block; margin-left:auto; }
  .tso-header__inner { min-height:72px; justify-content:flex-end; }
  .tso-primary-nav { display:none; position:absolute; left:0; right:0; top:100%; background:#071d33; border-bottom:3px solid var(--tso-gold); padding:12px 16px 20px; max-height:calc(100vh - 72px); overflow:auto; }
  .tso-primary-nav.is-open { display:block; }
  .tso-primary-nav>div>ul { display:block; }
  .tso-primary-nav a { padding:13px; white-space:normal; }
  .tso-primary-nav .sub-menu { display:block; position:static; min-width:0; margin:2px 0 5px 15px; padding:0 0 0 10px; background:transparent; border:0; border-left:2px solid rgba(255,215,0,.35); box-shadow:none; }
  .tso-post-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tso-footer-top,.tso-footer-main { grid-template-columns:1fr; text-align:center; }
  .tso-footer-brand { justify-content:center; }
  .tso-footer-social { text-align:center; }
  .tso-social-icons { justify-content:center; }
  .tso-footer-links { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:650px) {
  .tso-wrap,.tso-content { width:calc(100% - 16px); }
  .tso-content--wide { width:calc(100% - 8px); }
  .tso-post-grid { grid-template-columns:1fr; }
  .tso-footer-new { padding:42px 14px 24px; margin-top:44px; }
  .tso-footer-brand>img,.tso-footer-logo img { width:230px; }
  .tso-footer-brand h2 { font-size:1.7rem; }
  .tso-footer-links { grid-template-columns:1fr; }
  .tso-footer-card { min-height:auto; }
  .tso-footer-support { padding:28px 18px; }
  .tso-footer-support h3 { font-size:1.65rem; }
  .tso-social-icons a,.tso-social-icons img { width:50px; height:50px; }
}
