/*
  Bluff Bluzz Components
  Shared layout + design tokens for Custom HTML blocks and plugin modules.

  Goals:
  - Keep styles scoped to .ahts-shell to avoid fighting the theme.
  - Provide a consistent, colorful look that still reads clean on mobile.
*/

:root{
  --ahts-primary-blue:#1e3a6c;
  --ahts-primary-green:#2a8a4a;
  --ahts-accent-gold:#e0aa20;

  --ahts-bg:#f5f5f5;
  --ahts-surface:#ffffff;
  --ahts-text:#1f2937;
  --ahts-muted:#556070;
  --ahts-border:rgba(16,24,40,.12);

  --ahts-radius-lg:16px;
  --ahts-radius-md:12px;
  --ahts-radius-sm:10px;

  --ahts-shadow:0 8px 24px rgba(16,24,40,.08);
  --ahts-shadow-sm:0 4px 14px rgba(16,24,40,.08);

  --ahts-max:1100px;
}

/* Base shell and safe typography */
.ahts-shell{
  width:100%;
  margin:0;
  padding:0;
  color:var(--ahts-text);
}

.ahts-shell,
.ahts-shell *{
  box-sizing:border-box;
}

.ahts-shell p{
  margin:0 0 14px 0;
  line-height:1.65;
  color:var(--ahts-text);
}

.ahts-shell p:last-child{
  margin-bottom:0;
}

/*
  Link defaults inside AHTS pages.
  Important: do NOT let this override button and pill components, which are links too.
*/
.ahts-shell a:not(.ahts-btn):not(.ahts-pill){
  color:var(--ahts-primary-blue);
  text-underline-offset:2px;
}

.ahts-shell a:not(.ahts-btn):not(.ahts-pill):hover{
  opacity:.92;
}

/* Ensure button links always keep their intended contrast */
.ahts-shell a.ahts-btn,
.ahts-shell a.ahts-btn:visited{
  text-decoration:none;
}

.ahts-shell a.ahts-btn--primary,
.ahts-shell a.ahts-btn--primary:visited{
  color:#ffffff;
}

.ahts-shell a.ahts-btn--secondary,
.ahts-shell a.ahts-btn--secondary:visited{
  color:var(--ahts-primary-blue);
}

.ahts-shell h1,
.ahts-shell h2,
.ahts-shell h3{
  color:var(--ahts-primary-blue);
  line-height:1.2;
}

.ahts-shell h1{
  margin:0 0 10px 0;
  font-size:clamp(28px, 3.4vw, 42px);
  letter-spacing:-.02em;
}

.ahts-shell h2{
  margin:0 0 12px 0;
  font-size:clamp(20px, 2.2vw, 28px);
}

.ahts-shell h3{
  margin:18px 0 10px 0;
  font-size:18px;
}

/* Constrain sections to the same readable width */
.ahts-hero,
.ahts-modules,
.ahts-footer{
  width:100%;
  max-width:var(--ahts-max);
  margin:0 auto;
  padding:28px 18px;
}

/* Hero */
.ahts-hero{
  padding-top:22px;
}

.ahts-hero__card{
  border:1px solid var(--ahts-border);
  border-radius:var(--ahts-radius-lg);
  background:var(--ahts-surface);
  box-shadow:var(--ahts-shadow-sm);
  padding:24px 22px;
}

.ahts-kicker{
  display:inline-block;
  font-size:12.5px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ahts-primary-blue);
  border:1px solid rgba(30,58,108,.18);
  background:rgba(30,58,108,.05);
  padding:8px 12px;
  border-radius:999px;
  margin:0 0 14px 0;
}

.ahts-hero__title span{
  color:var(--ahts-primary-green);
}

.ahts-hero__lede{
  margin:0 0 16px 0;
  max-width:72ch;
  font-size:18px;
  color:var(--ahts-text);
}

.ahts-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:0 0 14px 0;
}

.ahts-note{
  border-left:4px solid var(--ahts-accent-gold);
  padding:12px 14px;
  margin:0;
  background:rgba(224,170,32,.08);
  border-radius:var(--ahts-radius-sm);
  color:var(--ahts-text);
}

/* Optional photo hero variant */
.ahts-hero--photo{
  max-width:none;
  margin:0;
  padding:42px 18px;
  background:
    linear-gradient(rgba(30,58,108,.88), rgba(30,58,108,.94)),
    var(--ahts-hero-image, none);
  background-size:cover;
  background-position:center;
}

.ahts-hero--photo .ahts-hero__card{
  max-width:var(--ahts-max);
  margin:0 auto;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}

.ahts-hero--photo .ahts-kicker{
  color:#ffffff;
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.10);
}

.ahts-hero--photo h1,
.ahts-hero--photo h2,
.ahts-hero--photo h3,
.ahts-hero--photo p{
  color:#ffffff;
}

.ahts-hero--photo .ahts-hero__title span{
  color:var(--ahts-accent-gold);
}

.ahts-hero--photo a{
  color:#ffffff;
}

.ahts-hero--photo .ahts-note{
  background:rgba(255,255,255,.12);
  border-left-color:var(--ahts-accent-gold);
}

/* Banner */
.ahts-banner{
  width: 100%;
  max-width: var(--ahts-max);
  margin: 0 auto;
  padding: 18px 18px 0 18px;
}

.ahts-banner__inner{
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-radius: var(--ahts-radius-lg);
  background: var(--ahts-surface);
  border: 1px solid var(--ahts-border);
  border-left: 8px solid var(--ahts-primary-green);
  box-shadow: var(--ahts-shadow-sm);
}

.ahts-banner__text{
  display: grid;
  gap: 2px;
  min-width: 0;
}

.ahts-banner__text strong{
  color: var(--ahts-primary-blue);
  font-size: 1.05rem;
  line-height: 1.25;
}

.ahts-banner__text span{
  color: var(--ahts-muted);
  line-height: 1.35;
}

.ahts-banner .ahts-btn{
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 720px){
  .ahts-banner{
    padding: 14px 14px 0 14px;
  }

  .ahts-banner__inner{
    flex-direction: column;
    align-items: stretch;
  }

  .ahts-banner .ahts-btn{
    width: 100%;
    justify-content: center;
  }
}


/* Buttons */
.ahts-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border-radius:999px;
  padding:10px 14px;
  border:1px solid rgba(16,24,40,.22);
  line-height:1;
  font-weight:800;
  letter-spacing:.01em;
}

.ahts-btn--primary{
  background:var(--ahts-primary-green);
  border-color:rgba(42,138,74,.35);
  color:#ffffff;
}

.ahts-btn--secondary{
  background:var(--ahts-surface);
  color:var(--ahts-primary-blue);
  border-color:rgba(30,58,108,.25);
}

.ahts-hero--photo .ahts-btn--secondary{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.28);
  color:#ffffff;
}


/*
 * Third-party buttons (forums, widgets, etc.)
 * Some plugins output button links with a green background but do not set
 * a readable foreground color. Keep legibility high across mobile and desktop.
 */
.ahts-shell a.button,
.ahts-shell .button,
.ahts-shell a.wp-element-button,
.ahts-shell .wp-element-button,
.ahts-shell a.btn,
.ahts-shell .btn,
.ahts-shell a.btn-primary,
.ahts-shell .btn-primary,
.ahts-shell a.btn-success,
.ahts-shell .btn-success,
.ahts-shell a.wpf-button,
.ahts-shell .wpf-button,
.ahts-shell a.asgarosforum-button,
.ahts-shell .asgarosforum-button{
  color:#ffffff !important;
}

/* Some plugins wrap button text in spans with their own color. Force children to inherit. */
.ahts-shell a.button *,
.ahts-shell .button *,
.ahts-shell a.wp-element-button *,
.ahts-shell .wp-element-button *,
.ahts-shell a.btn *,
.ahts-shell .btn *,
.ahts-shell a.btn-primary *,
.ahts-shell .btn-primary *,
.ahts-shell a.btn-success *,
.ahts-shell .btn-success *,
.ahts-shell a.wpf-button *,
.ahts-shell .wpf-button *,
.ahts-shell a.asgarosforum-button *,
.ahts-shell .asgarosforum-button *{
  color:inherit !important;
}

/* If a plugin sets a background inline but forgets the foreground, force white for contrast. */
.ahts-shell a[style*="background"],
.ahts-shell button[style*="background"],
.ahts-shell input[type="submit"][style*="background"]{
  color:#ffffff !important;
}

/*
 * Some forum widgets render outside .ahts-shell (depending on editor markup).
 * Keep the same legibility rules inside common forum wrappers too.
 */
.wpforo-wrap a.button,
.wpforo-wrap .button,
.wpforo-wrap a.wp-element-button,
.wpforo-wrap .wp-element-button,
.wpforo-wrap a.wpf-button,
.wpforo-wrap .wpf-button,
.wpforo-wrap a.btn,
.wpforo-wrap .btn,
.wpforo-wrap a.btn-primary,
.wpforo-wrap .btn-primary,
.wpforo-wrap a.btn-success,
.wpforo-wrap .btn-success{
  color:#ffffff !important;
}

.wpforo-wrap a[style*="background"],
.wpforo-wrap button[style*="background"],
.wpforo-wrap input[type="submit"][style*="background"],
.wpforo-wrap a[style*="background-color"],
.wpforo-wrap button[style*="background-color"],
.wpforo-wrap input[type="submit"][style*="background-color"]{
  color:#ffffff !important;
}

.ahts-shell a[style*="background"] *,
.ahts-shell button[style*="background"] *,
.ahts-shell input[type="submit"][style*="background"] *{
  color:inherit !important;
}

/* Cards */
.ahts-card{
  /* Card theme tokens */
  --ahts-card-header-bg: var(--ahts-primary-blue);
  --ahts-card-header-fg: #ffffff;
  --ahts-card-header-muted: rgba(255,255,255,.84);

  border:1px solid var(--ahts-border);
  border-radius:var(--ahts-radius-lg);
  background:var(--ahts-surface);
  box-shadow:var(--ahts-shadow-sm);
  overflow:hidden;
}

.ahts-card + .ahts-card{
  margin-top:18px;
}

.ahts-card__header{
  background:var(--ahts-card-header-bg);
  color:var(--ahts-card-header-fg);
  padding:18px 18px;
}

.ahts-card__title{
  margin:0;
  font-size:20px;
  color:var(--ahts-card-header-fg) !important;
}

.ahts-card__dek{
  margin:8px 0 0 0;
  color:var(--ahts-card-header-muted) !important;
  line-height:1.5;
}

.ahts-card__header a{
  color:inherit !important;
  text-decoration:underline;
  text-decoration-color:rgba(255,255,255,.6);
  text-underline-offset:2px;
}

/* Optional header color variants */
.ahts-card--green{ --ahts-card-header-bg: var(--ahts-primary-green); }
.ahts-card--blue{ --ahts-card-header-bg: var(--ahts-primary-blue); }
.ahts-card--teal{ --ahts-card-header-bg: var(--ahts-accent-blue, #1e6fa8); }
.ahts-card--purple{ --ahts-card-header-bg: var(--ahts-accent-purple, #9c3d8f); }
.ahts-card--gold{
  --ahts-card-header-bg: var(--ahts-accent-gold);
  --ahts-card-header-fg: #1b1b1b;
  --ahts-card-header-muted: rgba(0,0,0,.72);
}
.ahts-card--gold .ahts-card__header a{
  text-decoration-color:rgba(0,0,0,.5);
}

/*
  Auto-cycle header colors for cards inside modules, unless a card variant class is explicitly set.
  This gives pages visual variety without needing custom markup.
*/
.ahts-modules .ahts-card:not(.ahts-card--green):not(.ahts-card--blue):not(.ahts-card--teal):not(.ahts-card--purple):not(.ahts-card--gold):nth-of-type(4n+1){
  --ahts-card-header-bg: var(--ahts-primary-blue);
}
.ahts-modules .ahts-card:not(.ahts-card--green):not(.ahts-card--blue):not(.ahts-card--teal):not(.ahts-card--purple):not(.ahts-card--gold):nth-of-type(4n+2){
  --ahts-card-header-bg: var(--ahts-primary-green);
}
.ahts-modules .ahts-card:not(.ahts-card--green):not(.ahts-card--blue):not(.ahts-card--teal):not(.ahts-card--purple):not(.ahts-card--gold):nth-of-type(4n+3){
  --ahts-card-header-bg: var(--ahts-accent-blue, #1e6fa8);
}
.ahts-modules .ahts-card:not(.ahts-card--green):not(.ahts-card--blue):not(.ahts-card--teal):not(.ahts-card--purple):not(.ahts-card--gold):nth-of-type(4n+4){
  --ahts-card-header-bg: var(--ahts-accent-purple, #9c3d8f);
}


.ahts-card__body{
  padding:18px 18px;
}

.ahts-card__footer{
  padding:14px 18px;
  border-top:1px solid var(--ahts-border);
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-start;
}

.ahts-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border:1px solid rgba(30,58,108,.25);
  color:var(--ahts-primary-blue);
  border-radius:999px;
  padding:8px 12px;
  font-weight:800;
  font-size:13px;
  background:#ffffff;
}

/* Layout helpers */
.ahts-grid{
  display:grid;
  gap:18px;
}

.ahts-grid--2{
  grid-template-columns:1fr;
}

/* Divider */
.ahts-divider{
  height:1px;
  background:var(--ahts-border);
  margin:18px 0;
}

/* FAQ */
.ahts-faq h3{
  margin:16px 0 8px 0;
  color:var(--ahts-primary-blue);
}

.ahts-faq p{
  color:var(--ahts-text);
}

/* Support page additions (scoped so other pages stay stable) */
.shell-support .ahts-support-section{
  background:var(--ahts-surface);
  border-radius:var(--ahts-radius-lg);
  box-shadow:var(--ahts-shadow-sm);
  border:1px solid var(--ahts-border);
  padding:22px;
}

.shell-support .ahts-support-section + .ahts-support-section{
  margin-top:18px;
}

.shell-support .ahts-support-section__title{
  display:inline-block;
  border-bottom:2px solid var(--ahts-accent-gold);
  padding-bottom:6px;
  margin-bottom:14px;
}

.shell-support .ahts-steps{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin-top:18px;
}

.shell-support .ahts-step{
  background:rgba(245,245,245,.85);
  border:1px solid var(--ahts-border);
  border-radius:var(--ahts-radius-md);
  padding:18px;
  position:relative;
}

.shell-support .ahts-step__num{
  position:absolute;
  top:-12px;
  left:-12px;
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--ahts-primary-blue);
  color:#ffffff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
}

.shell-support .ahts-step i{
  font-size:32px;
  color:var(--ahts-primary-blue);
  margin:8px 0 10px;
  display:block;
}

.shell-support .ahts-tiers{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  margin-top:18px;
}

.shell-support .ahts-tier{
  border:1px solid var(--ahts-border);
  border-radius:var(--ahts-radius-lg);
  overflow:hidden;
  box-shadow:var(--ahts-shadow-sm);
}

.shell-support .ahts-tier__head{
  padding:18px;
  color:#ffffff;
}

.shell-support .ahts-tier--1 .ahts-tier__head{ background:var(--ahts-primary-green); }
.shell-support .ahts-tier--2 .ahts-tier__head{ background:#1e6fa8; }
.shell-support .ahts-tier--3 .ahts-tier__head{ background:#9c3d8f; }

.shell-support .ahts-tier__body{
  padding:18px;
  background:#ffffff;
}

.shell-support .ahts-tier__price{
  font-size:34px;
  font-weight:900;
  color:var(--ahts-primary-blue);
  margin:4px 0 0;
}

.shell-support .ahts-tier__dur{
  color:var(--ahts-muted);
  margin:4px 0 12px;
}

.shell-support .ahts-tier__list{
  list-style:none;
  margin:0;
  padding:0;
}

.shell-support .ahts-tier__list li{
  padding:10px 0;
  border-bottom:1px solid rgba(16,24,40,.08);
  color:var(--ahts-text);
}

.shell-support .ahts-tier__list li:last-child{ border-bottom:none; }

.shell-support .ahts-tier__list i{
  color:var(--ahts-primary-green);
  margin-right:8px;
}

.shell-support .ahts-tier__btn{
  width:100%;
  margin-top:14px;
  padding:12px 14px;
  border-radius:12px;
  border:none;
  font-weight:900;
  cursor:pointer;
  color:#ffffff;
}

.shell-support .ahts-tier--1 .ahts-tier__btn{ background:var(--ahts-primary-green); }
.shell-support .ahts-tier--2 .ahts-tier__btn{ background:#1e6fa8; }
.shell-support .ahts-tier--3 .ahts-tier__btn{ background:#9c3d8f; }

.shell-support .ahts-tier__btn:hover{ opacity:.92; }

/* Donation options (radio tiles) */
.shell-support .donation-options{
  display:grid;
  grid-template-columns:repeat(1, minmax(0, 1fr));
  gap:12px;
  margin:10px 0 0;
}

.shell-support .donation-option{
  border:2px solid rgba(16,24,40,.14);
  border-radius:12px;
  padding:14px;
  cursor:pointer;
  background:#ffffff;
  transition:background .2s ease, border-color .2s ease;
}

.shell-support .donation-option:hover{
  border-color:rgba(30,58,108,.35);
  background:rgba(30,58,108,.04);
}

.shell-support .donation-option.selected{
  border-color:rgba(42,138,74,.55);
  background:rgba(42,138,74,.07);
}

.shell-support .donation-option input{ display:none; }

.shell-support .donation-option label{
  cursor:pointer;
  font-weight:900;
  display:block;
  color:var(--ahts-text);
}

.shell-support .donation-option .donation-amount{
  font-size:22px;
  font-weight:900;
  color:var(--ahts-primary-blue);
  margin:6px 0 4px;
}

/* Form inputs */
.shell-support .lfr-field{
  margin-bottom:14px;
}

.shell-support .lfr-field label{
  display:block;
  font-weight:800;
  margin-bottom:6px;
  color:var(--ahts-text);
}

.shell-support .lfr-field input[type="text"],
.shell-support .lfr-field input[type="email"],
.shell-support .lfr-field input[type="url"],
.shell-support .lfr-field textarea{
  width:100%;
  padding:12px 12px;
  border:1px solid rgba(16,24,40,.18);
  border-radius:12px;
  font-size:16px;
  background:#ffffff;
}

.shell-support .lfr-field textarea{
  min-height:140px;
  resize:vertical;
}

.shell-support .lfr-field input:focus,
.shell-support .lfr-field textarea:focus{
  outline:none;
  border-color:rgba(30,58,108,.45);
  box-shadow:0 0 0 3px rgba(30,58,108,.10);
}

.shell-support button[type="submit"]{
  background:var(--ahts-primary-green);
  color:#ffffff;
  padding:14px 16px;
  border:none;
  border-radius:12px;
  font-size:18px;
  font-weight:900;
  cursor:pointer;
  width:100%;
}

.shell-support button[type="submit"]:hover{ opacity:.92; }

.shell-support .ahts-callout,
.shell-support .file-requirements{
  border-left:4px solid var(--ahts-accent-gold);
  padding:14px;
  background:rgba(224,170,32,.08);
  border-radius:var(--ahts-radius-sm);
  margin:16px 0 0;
}

.shell-support .file-requirements ul{
  margin:10px 0 0;
  padding-left:18px;
}

/* Responsive */
@media (min-width: 860px){
  .ahts-grid--2{ grid-template-columns:1fr 1fr; }
  .shell-support .ahts-steps{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .shell-support .ahts-tiers{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .shell-support .donation-options{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 480px){
  .ahts-hero__card{ padding:18px 16px; }
  .ahts-card__header,
  .ahts-card__body,
  .ahts-card__footer{ padding-left:16px; padding-right:16px; }
}

/*
 * Third-party buttons (forums, widgets, etc.)
 * Some plugins output "button" links with a green background but do not set
 * a readable foreground color. Keep legibility high across mobile and desktop.
 */
.ahts-shell a.button,
.ahts-shell .button,
.ahts-shell a.wp-element-button,
.ahts-shell .wp-element-button,
.ahts-shell a.btn,
.ahts-shell .btn,
.ahts-shell a.btn-primary,
.ahts-shell .btn-primary,
.ahts-shell a.btn-success,
.ahts-shell .btn-success,
.ahts-shell a.wpf-button,
.ahts-shell .wpf-button,
.ahts-shell a.asgarosforum-button,
.ahts-shell .asgarosforum-button {
  color: #fff !important;
}

/* If a plugin sets a background inline on a link, force readable text. */
.ahts-shell a[style*="background"],
.ahts-shell a[style*="background-color"] {
  color: #fff !important;
}

/*
 * Some forum widgets render outside .ahts-shell (depending on block/editor markup).
 * Keep the same legibility rules inside common forum wrappers too.
 */
.wpforo-wrap a.button,
.wpforo-wrap .button,
.wpforo-wrap a.wp-element-button,
.wpforo-wrap .wp-element-button,
.wpforo-wrap a.wpf-button,
.wpforo-wrap .wpf-button,
.bbpress a.button,
.bbpress .button,
.bbp-wrapper a.button,
.bbp-wrapper .button,
.bbp-login-form a.button,
.bbp-login-form .button,
.bbp-register a.button,
.bbp-register .button {
  color: #fff !important;
}

.wpforo-wrap a[style*="background"],
.wpforo-wrap a[style*="background-color"],
.bbpress a[style*="background"],
.bbpress a[style*="background-color"] {
  color: #fff !important;
}

/*
 * Some forum widgets render outside .ahts-shell (depending on block/editor markup).
 * Keep the same legibility rules inside common forum wrappers too.
 */
.wpforo-wrap a.button,
.wpforo-wrap .button,
.wpforo-wrap a.wp-element-button,
.wpforo-wrap .wp-element-button,
.wpforo-wrap a.btn-success,
.wpforo-wrap .btn-success,
.wpforo-wrap a.wpf-button,
.wpforo-wrap .wpf-button,
.wpforo-wrap a[style*="background"],
.wpforo-wrap a[style*="background-color"] {
  color: #fff !important;
}

.wpforo-wrap a.button:hover,
.wpforo-wrap .button:hover,
.wpforo-wrap a.wp-element-button:hover,
.wpforo-wrap .wp-element-button:hover,
.wpforo-wrap a.btn-success:hover,
.wpforo-wrap .btn-success:hover,
.wpforo-wrap a.wpf-button:hover,
.wpforo-wrap .wpf-button:hover,
.wpforo-wrap a.button:focus,
.wpforo-wrap .button:focus,
.wpforo-wrap a.wp-element-button:focus,
.wpforo-wrap .wp-element-button:focus,
.wpforo-wrap a.btn-success:focus,
.wpforo-wrap .btn-success:focus,
.wpforo-wrap a.wpf-button:focus,
.wpforo-wrap .wpf-button:focus {
  color: #fff !important;
}

/* -------------------------------------------------------------------------
   A11Y and integration overrides
   Keep contrast high and focus states obvious, especially on mobile.
------------------------------------------------------------------------- */

/* Consistent focus ring */
.ahts-shell a:focus-visible,
.ahts-shell button:focus-visible,
.ahts-shell input:focus-visible,
.ahts-shell select:focus-visible,
.ahts-shell textarea:focus-visible,
.ahts-menu-toggle:focus-visible,
.ahts-btn:focus-visible,
.ahts-pill:focus-visible {
  outline: 3px solid rgba(224, 170, 32, 0.9);
  outline-offset: 3px;
}

/* Prevent generic link rule from punching through colored UI elements */
.ahts-shell a.ahts-btn,
.ahts-shell a.ahts-pill {
  text-decoration: none;
}

/* Links inside colored headers should inherit the header text color */
.ahts-card__header a,
.ahts-banner a,
.ahts-hero a {
  color: inherit;
}

/* Improve text rendering and spacing defaults inside modules */
.ahts-card__body p,
.ahts-card__body li {
  color: var(--ahts-ink);
}

/* Plugin output guardrails: keep form controls readable */
.ahts-shell .classifieds-panel-shortcode,
.ahts-shell .events-panel-shortcode,
.ahts-shell .ahts-embed {
  color: var(--ahts-ink);
}

.ahts-shell .classifieds-panel-shortcode input,
.ahts-shell .classifieds-panel-shortcode select,
.ahts-shell .classifieds-panel-shortcode textarea,
.ahts-shell .events-panel-shortcode input,
.ahts-shell .events-panel-shortcode select,
.ahts-shell .events-panel-shortcode textarea {
  max-width: 100%;
}

/* Make plugin buttons feel native */
.ahts-shell .classifieds-panel-shortcode button,
.ahts-shell .classifieds-panel-shortcode input[type="submit"],
.ahts-shell .events-panel-shortcode button,
.ahts-shell .events-panel-shortcode input[type="submit"] {
  appearance: none;
  border-radius: 999px;
  padding: 10px 14px;
  border: 1px solid rgba(16, 24, 40, 0.22);
  background: var(--ahts-primary-green);
  color: #fff;
  font-weight: 800;
  line-height: 1;
}

.ahts-shell .classifieds-panel-shortcode button:hover,
.ahts-shell .classifieds-panel-shortcode input[type="submit"]:hover,
.ahts-shell .events-panel-shortcode button:hover,
.ahts-shell .events-panel-shortcode input[type="submit"]:hover {
  filter: brightness(0.95);
}

/* Reduce motion when requested */
@media (prefers-reduced-motion: reduce) {
  .ahts-card,
  .ahts-hero__card,
  .ahts-btn,
  .ahts-pill {
    transition: none !important;
  }
}

/* Accessible helper: screen-reader only */
.ahts-sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Theme search form */
.ahts-search {
  width: 100%;
}

.ahts-search__row {
  display: flex;
  gap: 10px;
  align-items: center;
}

.ahts-search__field {
  flex: 1 1 auto;
  width: 100%;
  padding: 12px 14px;
  border-radius: 999px;
  border: 1px solid rgba(16, 24, 40, 0.22);
  background: #fff;
  color: var(--ahts-text);
  font-size: 16px;
}

.ahts-search__field:focus {
  outline: none;
  border-color: rgba(30, 58, 108, 0.55);
  box-shadow: 0 0 0 3px rgba(30, 58, 108, 0.12);
}

.ahts-search__btn {
  flex: 0 0 auto;
}

@media (max-width: 520px) {
  .ahts-search__row {
    flex-direction: column;
    align-items: stretch;
  }
}

.ahts-search__row {
  display: flex;
  gap: 10px;
  align-items: stretch;
}

.ahts-search__input {
  flex: 1;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid rgba(16, 24, 40, .22);
  border-radius: 999px;
  font: inherit;
  line-height: 1.2;
  background: #fff;
  color: var(--ahts-ink);
}

.ahts-search__input:focus {
  outline: none;
  border-color: rgba(30, 58, 108, .6);
  box-shadow: 0 0 0 4px rgba(30, 58, 108, .12);
}

@media (max-width: 520px) {
  .ahts-search__row {
    flex-direction: column;
  }

  .ahts-search__submit {
    width: 100%;
    justify-content: center;
  }
}
