/* ============================================================
   TIME4BETS LANDING: WordPress additions.
   The original landing stylesheet ships UNCHANGED in style.css.
   Everything WordPress-specific (core Gutenberg block styles,
   the redirect loader, admin-bar fixes, section utilities)
   lives here and only builds on the existing design tokens.
   ============================================================ */

/* ---------- 1. Admin bar / sticky navbar ---------- */
body.admin-bar .navbar{top:32px;}
@media (max-width:782px){
  body.admin-bar .navbar{top:46px;}
}

/* ---------- 2. Section utilities for ACF blocks ---------- */
/* "Attach to previous section": removes the divider and gap between two
   adjacent .section blocks so several blocks can read as one screen. */
.section-attached{padding-block-start:0;}
.entry-content .section:has(+ .section-attached){
  border-block-end:none;
  padding-block-end:0;
}
.section-last{border-block-end:none;}

/* ---------- 3. Standard Gutenberg blocks ---------- */
/* Custom ACF sections are full-width; everything else the editor can
   produce (headings, paragraphs, lists, media & text, buttons, quotes,
   tables, images...) is constrained to the container width.
   ":not(<section> *)" guards keep these rules away from the markup
   inside the custom ACF blocks. */
.entry-content > :where(p,h1,h2,h3,h4,h5,h6,ul,ol,blockquote,pre,table,
  .wp-block-table,.wp-block-image,.wp-block-gallery,.wp-block-columns,
  .wp-block-buttons,.wp-block-separator,.wp-block-spacer,.wp-block-embed,
  .wp-block-cover,.wp-block-group,.wp-block-media-text,.wp-block-quote,
  .wp-block-pullquote,.wp-block-code,.wp-block-preformatted,.wp-block-details){
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--sp-5);
  box-sizing:border-box;
  width:100%;
}
.entry-content > :where(p,ul,ol,blockquote,pre,table,.wp-block-table,
  .wp-block-image,.wp-block-gallery,.wp-block-columns,.wp-block-buttons,
  .wp-block-embed,.wp-block-media-text,.wp-block-quote,.wp-block-pullquote,
  .wp-block-code,.wp-block-preformatted) + :where(p,ul,ol,blockquote,pre,table,
  .wp-block-table,.wp-block-image,.wp-block-gallery,.wp-block-columns,
  .wp-block-buttons,.wp-block-embed,.wp-block-media-text,.wp-block-quote,
  .wp-block-pullquote,.wp-block-code,.wp-block-preformatted){
  margin-block-start:var(--sp-5);
}
.entry-content > :where(h1,h2,h3,h4,h5,h6){margin-block-start:var(--sp-7);margin-block-end:var(--sp-5);}
.entry-content > :where(h1,h2,h3,h4,h5,h6):first-child{margin-block-start:var(--sp-8);}
.entry-content > :last-child:not(.section):not(.hero):not(.ticker):not(.t4l-redirect-overlay){margin-block-end:var(--sp-8);}

/* Headings: same voice as the landing titles. Only standard-content
   headings, never the ones inside custom ACF sections. */
.entry-content :where(h1,h2,h3,h4,h5,h6):not(:where(.section,.hero,.ticker,.footer,.t4l-redirect-overlay,.t4l-redirect-card) *):not(.hero-title):not(.section-title){
  font-family:var(--font-display);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.01em;
  line-height:1.05;
  color:var(--paper);
}
[dir="rtl"] .entry-content :where(h1,h2,h3,h4,h5,h6):not(:where(.section,.hero,.ticker,.footer,.t4l-redirect-overlay,.t4l-redirect-card) *){
  letter-spacing:normal;
  text-transform:none;
}
.entry-content h1:not(:where(.section,.hero) *):not(.hero-title){font-size:clamp(2.2rem,1.5rem + 3vw,3.6rem);}
.entry-content h2:not(:where(.section,.hero) *):not(.section-title){font-size:clamp(1.7rem,1.3rem + 2vw,2.6rem);}
.entry-content h3:not(:where(.section,.hero) *){font-size:clamp(1.3rem,1.1rem + 1vw,1.7rem);}
.entry-content h4:not(:where(.section,.hero) *){font-size:1.15rem;}
.entry-content h5:not(:where(.section,.hero) *){font-size:1rem;}
.entry-content h6:not(:where(.section,.hero) *){font-size:.85rem;font-family:var(--font-mono);color:var(--mint);letter-spacing:.06em;}

/* Paragraphs and inline links in standard content */
.entry-content p:not(:where(.section,.hero,.ticker,.t4l-redirect-overlay,.t4l-redirect-card) *){color:var(--muted);font-size:1.05rem;line-height:1.65;}
.entry-content p:not(:where(.section,.hero) *) strong{color:var(--paper);}
.entry-content :where(p,ul,ol,td,th,figcaption):not(:where(.section,.hero,.ticker,.footer) *) a:not(.wp-block-button__link){
  color:var(--mint);
  text-decoration:underline;
  text-underline-offset:3px;
}
.entry-content :where(p,ul,ol,td,th,figcaption):not(:where(.section,.hero) *) a:not(.wp-block-button__link):hover{color:var(--cyan);}

/* Lists: the landing reset strips markers (ul,ol{list-style:none}),
   so standard content lists get them back explicitly. */
.entry-content ul:not(.bullet-list):not(:where(.section,.hero,.ticker,.footer) *){
  list-style:disc;
  list-style-position:outside;
  color:var(--muted);
  line-height:1.65;
  padding-inline-start:calc(var(--sp-5) + 1.3em);
}
.entry-content ol:not(:where(.section,.hero,.ticker,.footer) *){
  list-style:decimal;
  list-style-position:outside;
  color:var(--muted);
  line-height:1.65;
  padding-inline-start:calc(var(--sp-5) + 1.6em);
}
.entry-content ul:not(.bullet-list) ul{list-style:circle;padding-inline-start:1.3em;}
.entry-content ol ol{list-style:lower-alpha;padding-inline-start:1.6em;}
.entry-content :where(ul:not(.bullet-list),ol):not(:where(.section,.hero) *) li + li{margin-block-start:var(--sp-2);}
.entry-content ul:not(.bullet-list):not(:where(.section,.hero) *) li::marker{color:var(--mint);}
.entry-content ol:not(:where(.section,.hero) *) li::marker{color:var(--mint);font-family:var(--font-mono);font-weight:700;}

/* Quotes */
.entry-content .wp-block-quote,
.entry-content > blockquote{
  border-inline-start:3px solid var(--mint);
  background:var(--elevated);
  border-radius:var(--radius-md);
  padding:var(--sp-5) var(--sp-6);
  color:var(--paper);
}
.entry-content .wp-block-quote cite,
.entry-content > blockquote cite{
  display:block;margin-block-start:var(--sp-3);
  font-family:var(--font-mono);font-size:.8rem;color:var(--muted);font-style:normal;
}
.entry-content .wp-block-pullquote{
  border-block:1px solid var(--line-strong);
  padding:var(--sp-6) var(--sp-5);
  text-align:center;color:var(--paper);
}
.entry-content .wp-block-pullquote blockquote{margin:0;}

/* Tables */
.entry-content table:not(:where(.section,.hero) *){border-collapse:collapse;width:100%;color:var(--muted);}
.entry-content .wp-block-table table{margin:0;}
.entry-content table:not(:where(.section,.hero) *) th,
.entry-content table:not(:where(.section,.hero) *) td{
  border:1px solid var(--line);
  padding:.75rem 1rem;text-align:start;
}
.entry-content table:not(:where(.section,.hero) *) th{
  background:var(--elevated);color:var(--paper);
  font-family:var(--font-mono);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;
}
[dir="rtl"] .entry-content table th{letter-spacing:normal;text-transform:none;}
.entry-content table:not(:where(.section,.hero) *) tr:nth-child(even) td{background:var(--elevated);}

/* Code / preformatted */
.entry-content pre:not(:where(.section,.hero) *),
.entry-content .wp-block-code,
.entry-content .wp-block-preformatted{
  font-family:var(--font-mono);font-size:.88rem;color:var(--paper);
  background:var(--elevated);border:1px solid var(--line);
  border-radius:var(--radius-md);padding:var(--sp-5);overflow-x:auto;
}
.entry-content code{font-family:var(--font-mono);color:var(--mint);}

/* Core buttons: mapped to the landing button system (no shadows) */
.entry-content .wp-block-buttons{display:flex;flex-wrap:wrap;gap:var(--sp-4);}
.entry-content .wp-block-button__link{
  display:inline-block;font-family:var(--font-body);font-weight:800;font-size:.92rem;
  letter-spacing:.02em;text-transform:uppercase;
  padding:.95em 1.9em;border-radius:var(--radius-pill);
  border:1px solid transparent;cursor:pointer;
  transition:all .25s var(--ease);
  background:linear-gradient(120deg,var(--mint),var(--deep));
  color:var(--void);box-shadow:none;text-decoration:none;
}
.entry-content .wp-block-button__link:hover{
  transform:translateY(-2px);
  box-shadow:none;
}
.entry-content .is-style-outline .wp-block-button__link,
.entry-content .wp-block-button.is-style-outline > .wp-block-button__link{
  background:transparent;color:var(--paper);border-color:var(--line-strong);box-shadow:none;
}
.entry-content .is-style-outline .wp-block-button__link:hover{
  border-color:var(--mint);color:var(--mint);background:var(--mint-soft);transform:none;
}
[dir="rtl"] .entry-content .wp-block-button__link{letter-spacing:normal;text-transform:none;}

/* Images, galleries, embeds, covers */
.entry-content .wp-block-image img,
.entry-content .wp-block-gallery img,
.entry-content .wp-block-embed iframe,
.entry-content .wp-block-cover{
  border-radius:var(--radius-lg);
}
.entry-content .wp-block-image img{border:1px solid var(--line);height:auto;}
.entry-content .wp-block-image figcaption,
.entry-content .wp-block-embed figcaption{
  font-family:var(--font-mono);font-size:.78rem;color:var(--muted);
  text-align:center;margin-block-start:var(--sp-3);
}

/* Media & Text */
.entry-content .wp-block-media-text{
  border-radius:var(--radius-lg);
  background:var(--elevated);border:1px solid var(--line);
  overflow:clip;gap:0;
}
.entry-content .wp-block-media-text .wp-block-media-text__content{padding:var(--sp-6);}
.entry-content .wp-block-media-text .wp-block-media-text__content p{color:var(--muted);}
.entry-content .wp-block-media-text .wp-block-media-text__content :where(h2,h3,h4){
  font-family:var(--font-display);font-weight:900;text-transform:uppercase;
  color:var(--paper);margin-block-end:var(--sp-4);
}
[dir="rtl"] .entry-content .wp-block-media-text .wp-block-media-text__content :where(h2,h3,h4){text-transform:none;}
.entry-content .wp-block-media-text img,
.entry-content .wp-block-media-text video{width:100%;height:100%;object-fit:cover;}

/* Separator / spacer */
.entry-content .wp-block-separator{
  border:none;border-block-start:1px solid var(--line);
  max-width:var(--container);
}
.entry-content .wp-block-separator.is-style-wide{max-width:100%;}

/* Columns */
.entry-content .wp-block-columns{gap:var(--sp-6);}
.entry-content .wp-block-column > :where(p,ul,ol){color:var(--muted);}
.entry-content .wp-block-column > :where(h2,h3,h4){margin-block-end:var(--sp-4);}

/* Details / summary */
.entry-content .wp-block-details{
  background:var(--elevated);border:1px solid var(--line);
  border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-5);color:var(--muted);
}
.entry-content .wp-block-details summary{color:var(--paper);font-weight:700;cursor:pointer;}

/* ---------- 3a. Landing fixes requested on top of the source CSS ---------- */
/* The source stylesheet stays untouched; overrides live here. */

/* No shadows on buttons (source .btn-primary carries a glow) */
.btn-primary,
.btn-primary:hover,
.btn-outline,
.btn-outline:hover{box-shadow:none;}

/* Footer social icons: in the source, ".footer-col a{display:block}" is
   declared after ".social-row a{display:flex}" and wins, so the icons sit
   in the top-left corner of their circles. Re-center them. */
.footer .social-row a{
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Mobile hardening: never allow page-level horizontal scroll to shift
   sections (overflow-x:clip keeps position:sticky working, unlike hidden). */
html,body{overflow-x:clip;}
@media (max-width:640px){
  .login-panel .btn{width:100%;}
}

/* ---------- 4. Redirect block (frontend overlay + editor preview) ---------- */
html.t4l-redirect-active{overflow:hidden;}
.t4l-redirect-overlay{
  position:fixed;inset:0;z-index:9999;
  display:grid;place-items:center;padding:var(--sp-5);
  background:
    radial-gradient(circle at 50% 16%,rgba(31,224,138,.22),transparent 30rem),
    radial-gradient(circle at 12% 82%,rgba(14,159,99,.16),transparent 24rem),
    var(--void);
  overflow:hidden;
}
.t4l-redirect-overlay::before{
  content:"";position:absolute;inset:-40%;
  background:linear-gradient(115deg,transparent 40%,rgba(31,224,138,.07) 50%,transparent 60%);
  animation:t4l-sweep 4s linear infinite;pointer-events:none;
}
.t4l-redirect-card{
  position:relative;width:min(540px,100%);
  padding:var(--sp-7) var(--sp-6);
  border:1px solid var(--line-strong);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,var(--elevated-2),var(--elevated));
  box-shadow:var(--shadow-card),var(--shadow-glow);
  text-align:center;
}
.t4l-redirect-card img{block-size:26px;width:auto;margin-block-end:var(--sp-6);}
.t4l-redirect-card h2{
  font-family:var(--font-display);font-weight:900;text-transform:uppercase;
  letter-spacing:.01em;font-size:clamp(1.4rem,1.1rem + 1.4vw,2rem);
  color:var(--paper);margin-block-end:var(--sp-3);
}
[dir="rtl"] .t4l-redirect-card h2{letter-spacing:normal;text-transform:none;}
.t4l-redirect-card p{color:var(--muted);max-width:40ch;margin-inline:auto;}
.t4l-redirect-orbit{
  position:relative;width:110px;height:110px;margin:0 auto var(--sp-6);
  border-radius:50%;
  background:radial-gradient(circle,var(--mint-soft),transparent 65%);
  box-shadow:0 0 44px rgba(31,224,138,.25);
}
.t4l-redirect-orbit::before,
.t4l-redirect-orbit::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  border:2px solid transparent;
  border-top-color:var(--mint);
  border-right-color:rgba(31,224,138,.5);
  animation:t4l-orbit 1.2s linear infinite;
}
.t4l-redirect-orbit::after{
  inset:16px;
  border-top-color:var(--cyan);
  border-right-color:rgba(77,239,224,.35);
  animation-duration:1.8s;animation-direction:reverse;
}
.t4l-redirect-dot{
  position:absolute;left:50%;top:50%;width:24px;height:24px;margin:-12px 0 0 -12px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--mint),var(--deep));
  box-shadow:0 0 26px rgba(31,224,138,.75);
  animation:t4l-pulse 1.1s ease-in-out infinite;
}
.t4l-redirect-progress{
  height:8px;margin-block-start:var(--sp-6);overflow:hidden;
  border-radius:var(--radius-pill);
  background:rgba(244,251,248,.08);
  box-shadow:inset 0 0 0 1px var(--line);
}
.t4l-redirect-progress span{
  display:block;height:100%;width:100%;border-radius:var(--radius-pill);
  background:linear-gradient(90deg,var(--mint),var(--deep),var(--cyan));
  transform-origin:left;transform:scaleX(0);
  animation:t4l-load var(--t4l-delay,1.5s) linear forwards;
}
[dir="rtl"] .t4l-redirect-progress span{transform-origin:right;}
.t4l-redirect-note{
  margin-block-start:var(--sp-4);
  font-family:var(--font-mono);font-size:.78rem;color:var(--muted);
}
.t4l-redirect-note a{color:var(--mint);font-weight:700;}
.t4l-redirect-note a:hover{color:var(--cyan);}
@keyframes t4l-orbit{to{transform:rotate(360deg);}}
@keyframes t4l-pulse{0%,100%{transform:scale(.82);opacity:.72;}50%{transform:scale(1.1);opacity:1;}}
@keyframes t4l-load{from{transform:scaleX(0);}to{transform:scaleX(1);}}
@keyframes t4l-sweep{from{transform:translateX(-30%);}to{transform:translateX(30%);}}
@media (prefers-reduced-motion:reduce){
  .t4l-redirect-orbit::before,
  .t4l-redirect-orbit::after,
  .t4l-redirect-dot,
  .t4l-redirect-overlay::before{animation-duration:8s;}
}

/* Editor-only preview of the redirect card (not fixed, not full-screen) */
.t4l-redirect-editor{margin-inline:auto;}
.t4l-redirect-editor .t4l-redirect-meta{
  margin-block-start:var(--sp-4);
  font-family:var(--font-mono);font-size:.8rem;color:var(--muted);
}
.t4l-redirect-editor .t4l-redirect-meta code{color:var(--mint);word-break:break-all;}

/* Registration steps: centered when stacked on mobile
   (the source stacks .steps into a column at 900px) */
@media (max-width:900px){
  .steps .step{
    text-align:center;
  }
}

/* Footer column titles are plain text, not <h4> headings (keeps the heading
   outline clean for SEO). Visual styling below mirrors the original
   .footer-col h4 rule from style.css so the footer looks unchanged. */
.footer-col .footer-col-title{
  font-family:var(--font-mono);text-transform:uppercase;font-size:.74rem;
  letter-spacing:.12em;color:var(--muted);margin:0 0 var(--sp-4);
}
[dir="rtl"] .footer-col .footer-col-title{letter-spacing:normal;}

/* Slot cards: .thumb is an <a>, i.e. display:inline by default - which
   silently disables aspect-ratio and overflow clipping and lets tall custom
   artwork render at natural height, painting over the title/provider strip.
   (Invisible with the square 700x700 demo images.) Make the card layout
   explicit: any uploaded thumbnail is center-cropped to a square, and the
   meta strip is always its own layer below the image. */
.slot-card{display:flex;flex-direction:column;}
.slot-card .thumb{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;flex:none;}
.slot-card .thumb img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;}
.slot-card .meta{position:relative;z-index:1;background:var(--elevated);flex:1;}

/* Content: Text + image split - feature card titles are plain bold text, not
   <h3> headings (keeps the heading outline clean). Mirrors the original
   .feature-card h3 look; the color override beats .feature-card p (muted). */
.feature-card .feature-title{font-weight:800;font-size:1.08rem;margin:0 0 .45rem;color:var(--paper);}

/* Optional link around the split image: block-level so the image keeps its
   radius/shadow with no inline baseline gap. */
.split-media-link{display:block;}
.split-media-link:hover img{border-color:var(--mint);}

/* Tables on narrow screens: scroll horizontally instead of crushing columns.
   Core WP gives .has-fixed-layout tables equal fixed columns + break-word,
   which shreds words on mobile ("Matc / h and cap"). The scroll wrapper is
   added by t4l_wrap_tables_scroll(); the figure rule covers block tables
   even if the filter is bypassed. */
.t4l-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;}
.entry-content .wp-block-table{overflow-x:auto;-webkit-overflow-scrolling:touch;}
@media (max-width:820px){
  .entry-content .wp-block-table table,
  .entry-content .wp-block-table.has-fixed-layout table,
  .entry-content .t4l-table-scroll > table{
    table-layout:auto;width:auto;min-width:560px;
  }
  .entry-content table:not(:where(.section,.hero) *) th,
  .entry-content table:not(:where(.section,.hero) *) td,
  .entry-content .wp-block-table.has-fixed-layout th,
  .entry-content .wp-block-table.has-fixed-layout td{
    word-break:normal;overflow-wrap:normal;hyphens:none;white-space:normal;
  }
}

/* ---------- Yoast SEO FAQ block ---------- */
/* Frontend markup: .schema-faq > .schema-faq-section >
   strong.schema-faq-question + p.schema-faq-answer. Styled as theme cards;
   faq.js upgrades it to an accordion (without JS everything stays open). */
.entry-content > .schema-faq{
  max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-5);
  box-sizing:border-box;width:100%;margin-block:var(--sp-6);
  display:grid;gap:var(--sp-4);
}
.schema-faq-section{
  background:var(--elevated);border:1px solid var(--line);border-radius:var(--radius-lg);
  transition:border-color .3s var(--ease);
}
.schema-faq-section:hover{border-color:var(--line-strong);}
.schema-faq-question{
  display:flex;align-items:flex-start;gap:var(--sp-4);
  padding:var(--sp-5);
  font-weight:800;color:var(--paper);font-size:1.02rem;line-height:1.45;
}
.schema-faq-question:focus-visible{outline:2px solid var(--mint);outline-offset:-2px;border-radius:var(--radius-lg);}
.schema-faq-answer{
  display:block;margin:0;padding:0 var(--sp-5) var(--sp-5);
  color:var(--muted);line-height:1.65;font-size:1rem;
}
/* Accordion state (added by faq.js as progressive enhancement) */
html.t4l-faq-js .schema-faq-question{cursor:pointer;-webkit-user-select:none;user-select:none;}
html.t4l-faq-js .schema-faq-question::after{
  content:"+";margin-inline-start:auto;flex:none;
  font-family:var(--font-mono);font-weight:700;font-size:1.2rem;line-height:1.2;
  color:var(--mint);transition:transform .3s var(--ease);
}
html.t4l-faq-js .t4l-faq-open > .schema-faq-question::after{transform:rotate(45deg);}
html.t4l-faq-js .t4l-faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease);}
html.t4l-faq-js .t4l-faq-open > .t4l-faq-a{grid-template-rows:1fr;}
html.t4l-faq-js .t4l-faq-a-inner{overflow:hidden;min-block-size:0;}
@media (prefers-reduced-motion:reduce){
  html.t4l-faq-js .t4l-faq-a,
  html.t4l-faq-js .schema-faq-question::after{transition:none;}
}
