/**
 * Theme Name: Generate Press - Child
 * Template:   generatepress
 */

/* Variables */
:root{
    --tsf-gap:16px;
    --tsf-radius:8px;
    --tsf-field-height:42px;
    --tsf-border:#847267;
    --tsf-text:#260F01;
    --tsf-muted:#847267;
    --tsf-bg:#FEFCF9;
    --tsf-primary:#9D3728;
    --tsf-secondary:#CB7A41;
    --tsf-accent:#411303;
  }
  
  /* Remove default padding inside main content group container */
  .site-main .wp-block-group__inner-container {
    padding: 0 !important;
  }
  
  /* Remove excess top margin after first content blocks */
  .entry-content:not(:first-child),
  .entry-summary:not(:first-child),
  .page-content:not(:first-child) {
    margin-top: 0 !important;
  }
  
  /* Layout wrapper */
  .tsf-register #wpmem_register_form{max-width:900px;margin:0 auto;}
  .tsf-register #wpmem_register_form fieldset{
    border:1px solid var(--tsf-border);
    border-radius:var(--tsf-radius);
    padding:20px;background:#fff;
  }
  #wpmem_login,#wpmem_msg,#wpmem_reg,.wpmem_msg {
    width: 100% !important;
  }
  
  /* Center the registration form - multiple approaches */
  #wpmem_reg {
    margin: 0 auto !important;
    max-width: 900px;
    display: block !important;
  }
  
  #wpmem_reg .form {
    margin: 0 auto !important;
    max-width: 900px;
    display: block !important;
  }
  
  /* Override WordPress block constraints */
  .tsf-register .wp-block-group__inner-container {
    max-width: none !important;
    width: 100% !important;
  }
  
  .tsf-register .is-layout-constrained {
    max-width: none !important;
  }
  
  /* Force registration text to break out of form constraints and center properly */
  .tsf-register #wpmem_register_form .registration-text {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    justify-self: stretch !important;
  }
  
  /* Alternative centering method using flexbox */
  body .tsf-register {
    display: flex !important;
    justify-content: center !important;
    align-items: flex-start !important;
  }
  
  /* Force override any conflicting styles */
  #wpmem_reg,
  #wpmem_reg .form,
  #wpmem_reg .form * {
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .tsf-register #wpmem_register_form legend{
    padding:0 6px;font-weight:600;color:var(--tsf-text);
    position:relative;
    background:#fff;
    width:fit-content !important;
  }
  .tsf-register #wpmem_register_form legend::before{
    content:'';
    position:absolute;
    top:50%;
    left:0;
    right:100%;
    height:1px;
    background-color:var(--tsf-border);
    transform:translateY(-50%);
  }
  .tsf-register #wpmem_register_form legend::after{
    content:'';
    position:absolute;
    top:50%;
    right:6px;
    left:100%;
    height:1px;
    background-color:var(--tsf-border);
    transform:translateY(-50%);
  }
  
  /* Label / input base styles */
  .tsf-register #wpmem_register_form label.text{
    display:block;margin-top:14px;margin-bottom:6px;
    font-size:14px;font-weight:600;color:var(--tsf-text);width:100%;max-width:none;
  }
  .tsf-register #wpmem_register_form .div_text{
    display:block;
    margin-bottom:8px;width:100%;max-width:none;
  }
  .tsf-register #wpmem_register_form input.textbox,
  .tsf-register #wpmem_register_form input[type="email"],
  .tsf-register #wpmem_register_form input[type="text"]{
    width:100% !important;
    max-width:none !important;
    min-width:0;
    height:var(--tsf-field-height);
    border:1px solid var(--tsf-border);border-radius:6px;
    padding:0 12px;background:var(--tsf-bg);color:var(--tsf-text);
    outline:none;transition:box-shadow .15s ease,border-color .15s ease;
    box-sizing:border-box;display:block;
  }
  .tsf-register #wpmem_register_form input.textbox:focus,
  .tsf-register #wpmem_register_form input[type="email"]:focus,
  .tsf-register #wpmem_register_form input[type="text"]:focus{
    border-color:#9ca3af;box-shadow:0 0 0 3px rgba(59,130,246,.15);background:#fff;
  }
  
  /* Buttons */
  .tsf-register #wpmem_register_form .button_div{margin-top:8px;} /* Reduced top margin */
  .tsf-register #wpmem_register_form .buttons[type="submit"],
  .tsf-register #wpmem_register_form input[type="submit"].buttons{
    appearance:none;border:none;border-radius:10px;
    padding:12px 16px;font-weight:600;cursor:pointer;background:var(--tsf-primary);color:#FEFCF9;
    text-align:center !important;display:inline-block;min-width:120px;
    line-height:1.2;vertical-align:middle;
  }
  .tsf-register #wpmem_register_form .buttons:hover{opacity:.92;}
  
  /* Mobile: Center register button */
  @media (max-width: 759px) {
    .tsf-register #wpmem_register_form .button_div {
      display: flex !important;
      justify-content: center !important;
      align-items: center !important;
      width: 100% !important;
    }
    .tsf-register #wpmem_register_form .button_div input[type="submit"] {
      margin: 0 auto !important;
      display: block !important;
    }
  }
  
  /* Helper text */
  .tsf-register #wpmem_register_form .req-text{margin-top:6px;font-size:12px;color:var(--tsf-muted);}
  .tsf-register #wpmem_register_form .req{color:#ef4444;}
  
  /* Radio button styles */
  .tsf-register #wpmem_register_form label.radio{
    display:block;margin-top:14px;margin-bottom:6px;
    font-size:14px;font-weight:600;color:var(--tsf-text);width:100%;max-width:none;
  }
  .tsf-register #wpmem_register_form .div_radio{
    display:block;margin-bottom:8px;width:100%;max-width:none;
  }
  .tsf-register #wpmem_register_form .div_radio input[type="radio"]{
    margin-right:8px;
  }
  .tsf-register #wpmem_register_form .div_radio label.radio{
    display:inline;margin:0;font-size:14px;font-weight:400;color:var(--tsf-text);
  }
  
  /* Checkbox styles */
  .tsf-register #wpmem_register_form label.multicheckbox{
    display:block;margin-top:14px;margin-bottom:6px;
    font-size:14px;font-weight:600;color:var(--tsf-text);width:100%;max-width:none;
  }
  .tsf-register #wpmem_register_form .div_multicheckbox{
    display:block;margin-bottom:8px;width:100%;max-width:none;
  }
  .tsf-register #wpmem_register_form .div_multicheckbox input[type="checkbox"]{
    margin-right:8px;
  }
  .tsf-register #wpmem_register_form .div_multicheckbox label.multicheckbox{
    display:inline;margin:0;font-size:14px;font-weight:400;color:var(--tsf-text);
  }
  
  /* Textarea styles */
  .tsf-register #wpmem_register_form label.textarea{
    display:block;margin-top:14px;margin-bottom:6px;
    font-size:14px;font-weight:600;color:var(--tsf-text);width:100%;max-width:none;
  }
  .tsf-register #wpmem_register_form .div_textarea{
    display:block;margin-bottom:8px;width:100%;max-width:none;
  }
  .tsf-register #wpmem_register_form textarea.textarea{
    width:100% !important;
    max-width:none !important;
    min-width:0;
    min-height:120px;
    border:1px solid var(--tsf-border);border-radius:6px;
    padding:12px;background:var(--tsf-bg);color:var(--tsf-text);
    outline:none;transition:box-shadow .15s ease,border-color .15s ease;
    box-sizing:border-box;display:block;
    font-family:inherit;font-size:14px;line-height:1.5;
    resize:vertical;
  }
  .tsf-register #wpmem_register_form textarea.textarea:focus{
    border-color:#9ca3af;box-shadow:0 0 0 3px rgba(59,130,246,.15);background:#fff;
  }
  
  /* Registration blurb at top of page */
  .tsf-reg-blurb {
    margin: 0 auto 32px auto;
    padding: 24px;
    background: #FEFCF9;
    border: 1px solid var(--tsf-secondary);
    border-radius: var(--tsf-radius);
    max-width: 900px;
    box-sizing: border-box;
  }
  
  .tsf-reg-blurb h2 {
    margin: 0 0 16px 0;
    font-size: 20px;
    font-weight: 600;
    color: var(--tsf-accent);
    text-align: center;
  }
  
  .tsf-reg-blurb p {
    margin: 0 0 12px 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--tsf-text);
  }
  
  .tsf-reg-blurb p:last-child {
    margin-bottom: 0;
  }
  
  .tsf-reg-blurb strong {
    color: var(--tsf-accent);
    font-weight: 600;
  }
  
  .tsf-reg-blurb a {
    color: var(--tsf-primary);
    text-decoration: none;
    font-weight: 500;
  }
  
  .tsf-reg-blurb a:hover {
    text-decoration: underline;
  }

  /* --- Logged-in Status on Register Page --- */
  
  /* Style the container for the logged-in message */
  .tsf-register .wp-block-group__inner-container:has(.register_status) {
    padding: 32px;
    background: var(--tsf-bg);
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
  }

  /* Style the status message text */
  .tsf-register .register_status {
    font-size: 16px;
    color: var(--tsf-text);
    margin: 0 0 16px 0;
  }

  /* Style the links list */
  .tsf-register .register_links,
  .tsf-register .register_links ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .tsf-register .register_links li {
    display: inline;
    margin: 0 10px;
    font-size: 14px;
  }

  .tsf-register .register_links a {
    color: var(--tsf-primary);
    text-decoration: none;
    font-weight: 500;
  }

  .tsf-register .register_links a:hover {
    text-decoration: underline;
  }

  /* --- Logged-in Status on Login Page --- */

  /* Style the container for the logged-in message */
  .tsf-login .wp-block-group__inner-container:has(.login_status) {
    padding: 32px;
    background: var(--tsf-bg);
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
  }

  /* Style the status message text */
  .tsf-login .login_status {
    font-size: 16px;
    color: var(--tsf-text);
    margin: 0;
    line-height: 1.6;
  }

  /* Hide the <br> and style the link to create separation */
  .tsf-login .login_status br {
    display: none;
  }

  .tsf-login .login_status a {
    display: block;
    margin-top: 16px;
    font-size: 14px;
    color: var(--tsf-primary);
    text-decoration: none;
    font-weight: 500;
  }

  .tsf-login .login_status a:hover {
    text-decoration: underline;
  }

  /* --- Member Sidebar Widget --- */

  /* Widget container - no extra box needed */
  .widget_block .tsf-member-widget {
    background: none;
    border: none;
    padding: 0; /* Rely on parent widget's padding */
  }

  /* Widget title */
  .tsf-member-widget .widget-title {
    font-size: 20px;
    font-weight: 600;
    color: var(--tsf-accent);
    margin: 0 0 16px 0;
    text-align: center;
    border-bottom: 1px solid var(--tsf-border);
    padding-bottom: 12px;
  }

  /* Links list */
  .tsf-member-widget .tsf-member-links {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .tsf-member-widget .tsf-member-links li {
    margin: 0;
  }

  /* Individual links */
  .tsf-member-widget .tsf-member-links a {
    display: block;
    padding: 12px 16px;
    color: var(--tsf-text);
    text-decoration: none;
    font-weight: 500;
    font-size: 15px;
    border-bottom: 1px solid #f0e9e4; /* Lighter border for links */
    transition: background-color 0.2s ease, color 0.2s ease;
    border-radius: 4px; /* Slight radius for hover effect */
  }

  /* Add a visual indicator (chevron) to the links */
  .tsf-member-widget .tsf-member-links a::before {
    content: '›';
    margin-right: 10px;
    font-weight: 600;
    color: var(--tsf-muted);
    transition: color 0.2s ease;
  }

  .tsf-member-widget .tsf-member-links li:last-child a {
    border-bottom: none; /* Remove border from the last item */
  }

  /* Hover and active states */
  .tsf-member-widget .tsf-member-links a:hover,
  .tsf-member-widget .tsf-member-links li.current-menu-item a {
    background-color: #f8f3ed; /* Slightly darker cream for hover */
    color: var(--tsf-primary);
  }

  /* Change chevron color on hover/active to match text */
  .tsf-member-widget .tsf-member-links a:hover::before,
  .tsf-member-widget .tsf-member-links li.current-menu-item a::before {
    color: var(--tsf-primary);
  }

  /* --- Stock WordPress Menu (Widget) styled like .tsf-member-widget --- */
  .widget_nav_menu .widget-title {
    font-size: 20px;
    font-weight: 600;
    color: var(--tsf-accent);
    margin: 0 0 16px 0;
    text-align: center;
    border-bottom: 1px solid var(--tsf-border);
    padding-bottom: 12px;
  }

  .widget_nav_menu .menu { list-style: none; margin: 0; padding: 0; }
  .widget_nav_menu .menu li { margin: 0; }
  .widget_nav_menu .menu a {
    display: block;
    padding: 12px 16px;
    color: var(--tsf-text);
    text-decoration: none;
    font-weight: 500;
    font-size: 15px;
    border-bottom: 1px solid #f0e9e4;
    transition: background-color 0.2s ease, color 0.2s ease;
    border-radius: 4px;
  }
  .widget_nav_menu .menu li:last-child a { border-bottom: none; }
  .widget_nav_menu .menu a::before {
    content: '›';
    margin-right: 10px;
    font-weight: 600;
    color: var(--tsf-muted);
    transition: color 0.2s ease;
  }
  .widget_nav_menu .menu a:hover,
  .widget_nav_menu .menu .current-menu-item > a {
    background-color: #f8f3ed;
    color: var(--tsf-primary);
  }
  .widget_nav_menu .menu a:hover::before,
  .widget_nav_menu .menu .current-menu-item > a::before { color: var(--tsf-primary); }

  /* --- User Profile Page Styles (Minimalist) --- */

  /* Style the main page title */
  body.page-id-38 .entry-title {
    font-size: 20px;
    font-weight: 600;
    color: var(--tsf-accent);
    margin: 0 0 16px 0;
    text-align: left;
  }

  /* Main container for the profile page links - no card */
  body.page-id-38 .entry-content ul {
    list-style: none;
    max-width: 600px;
    margin: 0; /* Align with title */
    padding: 0;
    border: none;
  }

  body.page-id-38 .entry-content li {
    margin: 0;
    padding: 0;
  }

  /* Profile action links - match sidebar */
  body.page-id-38 .entry-content a {
    display: block;
    padding: 12px 16px;
    color: var(--tsf-text);
    text-decoration: none;
    font-weight: 500;
    font-size: 15px;
    transition: background-color 0.2s ease, color 0.2s ease;
  }

  body.page-id-38 .entry-content li:last-child a {
    border-bottom: none;
  }

  /* Hover and active states */
  body.page-id-38 .entry-content a:hover {
    background-color: #f8f3ed; /* Slightly darker cream for hover */
    color: var(--tsf-primary);
  }

  /* --- Profile Page Forms (Edit/Password) --- */

  /* Apply shared styles to both profile forms - match registration page styling */
  body.page-id-38 #wpmem_profile_form,
  body.page-id-38 #wpmem_pwdchange_form {
    max-width: 900px;
    margin: 32px auto 0 auto;
  }
  
  body.page-id-38 #wpmem_profile_form fieldset,
  body.page-id-38 #wpmem_pwdchange_form fieldset {
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    padding: 20px;
    background: #fff;
  }

  body.page-id-38 #wpmem_profile_form legend,
  body.page-id-38 #wpmem_pwdchange_form legend {
    padding: 0 6px;
    font-weight: 600;
    color: var(--tsf-text);
    position: relative;
    background: #fff;
    width: fit-content !important;
  }

  /* Add the legend line styling from registration page */
  body.page-id-38 #wpmem_profile_form legend::before,
  body.page-id-38 #wpmem_pwdchange_form legend::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 100%;
    height: 1px;
    background-color: var(--tsf-border);
    transform: translateY(-50%);
  }

  body.page-id-38 #wpmem_profile_form legend::after,
  body.page-id-38 #wpmem_pwdchange_form legend::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 6px;
    left: 100%;
    height: 1px;
    background-color: var(--tsf-border);
    transform: translateY(-50%);
  }

  /* Text inputs, labels, buttons, etc. - match registration styling */
  body.page-id-38 #wpmem_profile_form label.text,
  body.page-id-38 #wpmem_pwdchange_form label.text {
    display: block;
    margin-top: 14px;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--tsf-text);
    width: 100%;
    max-width: none;
  }

  body.page-id-38 #wpmem_profile_form .div_text,
  body.page-id-38 #wpmem_pwdchange_form .div_text {
    display: block;
    margin-bottom: 8px;
    width: 100%;
    max-width: none;
  }

  body.page-id-38 #wpmem_profile_form input.textbox,
  body.page-id-38 #wpmem_profile_form input[type="email"],
  body.page-id-38 #wpmem_profile_form input[type="text"],
  body.page-id-38 #wpmem_profile_form input[type="password"],
  body.page-id-38 #wpmem_profile_form input[type="url"],
  body.page-id-38 #wpmem_pwdchange_form input[type="password"] {
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    height: var(--tsf-field-height);
    border: 1px solid var(--tsf-border);
    border-radius: 6px;
    padding: 0 12px;
    background: var(--tsf-bg);
    color: var(--tsf-text);
    outline: none;
    transition: box-shadow .15s ease, border-color .15s ease;
    box-sizing: border-box;
    display: block;
  }

  body.page-id-38 #wpmem_profile_form input.textbox:focus,
  body.page-id-38 #wpmem_profile_form input[type="email"]:focus,
  body.page-id-38 #wpmem_profile_form input[type="text"]:focus,
  body.page-id-38 #wpmem_profile_form input[type="password"]:focus,
  body.page-id-38 #wpmem_profile_form input[type="url"]:focus,
  body.page-id-38 #wpmem_pwdchange_form input[type="password"]:focus {
    border-color: #9ca3af;
    box-shadow: 0 0 0 3px rgba(59,130,246,.15);
    background: #fff;
  }

  /* Radio button styles - match registration page */
  body.page-id-38 #wpmem_profile_form label.radio {
    display: block;
    margin-top: 14px;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--tsf-text);
    width: 100%;
    max-width: none;
  }

  body.page-id-38 #wpmem_profile_form .div_radio {
    display: block;
    margin-bottom: 8px;
    width: 100%;
    max-width: none;
  }

  body.page-id-38 #wpmem_profile_form .div_radio input[type="radio"] {
    margin-right: 8px;
  }

  body.page-id-38 #wpmem_profile_form .div_radio label.radio {
    display: inline;
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    color: var(--tsf-text);
  }

  /* Checkbox styles - match registration page */
  body.page-id-38 #wpmem_profile_form label.multicheckbox {
    display: block;
    margin-top: 14px;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--tsf-text);
    width: 100%;
    max-width: none;
  }

  body.page-id-38 #wpmem_profile_form .div_multicheckbox {
    display: block;
    margin-bottom: 8px;
    width: 100%;
    max-width: none;
  }

  body.page-id-38 #wpmem_profile_form .div_multicheckbox input[type="checkbox"] {
    margin-right: 8px;
  }

  body.page-id-38 #wpmem_profile_form .div_multicheckbox label.multicheckbox {
    display: inline;
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    color: var(--tsf-text);
  }

  /* Textarea styles - match registration page */
  body.page-id-38 #wpmem_profile_form label.textarea {
    display: block;
    margin-top: 14px;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--tsf-text);
    width: 100%;
    max-width: none;
  }

  body.page-id-38 #wpmem_profile_form .div_textarea {
    display: block;
    margin-bottom: 8px;
    width: 100%;
    max-width: none;
  }

  body.page-id-38 #wpmem_profile_form textarea.textarea {
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    min-height: 120px;
    border: 1px solid var(--tsf-border);
    border-radius: 6px;
    padding: 12px;
    background: var(--tsf-bg);
    color: var(--tsf-text);
    outline: none;
    transition: box-shadow .15s ease, border-color .15s ease;
    box-sizing: border-box;
    display: block;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
    resize: vertical;
  }

  body.page-id-38 #wpmem_profile_form textarea.textarea:focus {
    border-color: #9ca3af;
    box-shadow: 0 0 0 3px rgba(59,130,246,.15);
    background: #fff;
  }

  /* Button styles - match registration page */
  body.page-id-38 #wpmem_profile_form .button_div {
    margin-top: 8px;
  }

  body.page-id-38 #wpmem_profile_form .buttons[type="submit"],
  body.page-id-38 #wpmem_profile_form input[type="submit"].buttons {
    appearance: none;
    border: none;
    border-radius: 10px;
    padding: 12px 16px;
    font-weight: 600;
    cursor: pointer;
    background: var(--tsf-primary);
    color: #FEFCF9;
    text-align: center !important;
    display: inline-block;
    min-width: 120px;
    line-height: 1.2;
    vertical-align: middle;
  }

  body.page-id-38 #wpmem_profile_form .buttons:hover {
    opacity: .92;
  }

  /* Helper text - match registration page */
  body.page-id-38 #wpmem_profile_form .req-text {
    margin-top: 6px;
    font-size: 12px;
    color: var(--tsf-muted);
  }

  body.page-id-38 #wpmem_profile_form .req {
    color: #ef4444;
  }

  /* Mobile: Center update button */
  @media (max-width: 759px) {
    body.page-id-38 #wpmem_profile_form .button_div {
      display: flex !important;
      justify-content: center !important;
      align-items: center !important;
      width: 100% !important;
    }
    body.page-id-38 #wpmem_profile_form .button_div input[type="submit"] {
      margin: 0 auto !important;
      display: block !important;
    }
  }

  /* Apply Grid to "Edit Info" form only, matching registration form */
  @media (min-width: 760px) {
    body.page-id-38 #wpmem_profile_form fieldset {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: var(--tsf-gap);
      row-gap: 8px;
      grid-auto-flow: row dense;
    }

    /* Default all labels and divs to full-width */
    body.page-id-38 #wpmem_profile_form fieldset > label,
    body.page-id-38 #wpmem_profile_form fieldset > div {
      grid-column: 1 / -1 !important;
      justify-self: stretch;
      min-width: 0;
    }

    /* --- Side-by-side fields --- */

    /* First Name | Last Name */
    body.page-id-38 #wpmem_profile_form label[for="first_name"],
    body.page-id-38 #wpmem_profile_form label[for="first_name"] + .div_text {
      grid-column: 1 !important;
    }
    body.page-id-38 #wpmem_profile_form label[for="last_name"],
    body.page-id-38 #wpmem_profile_form label[for="last_name"] + .div_text {
      grid-column: 2 !important;
    }

    /* Email | Phone */
    body.page-id-38 #wpmem_profile_form label[for="user_email"],
    body.page-id-38 #wpmem_profile_form label[for="user_email"] + .div_text {
      grid-column: 1 !important;
    }
    body.page-id-38 #wpmem_profile_form label[for="billing_phone"],
    body.page-id-38 #wpmem_profile_form label[for="billing_phone"] + .div_text {
      grid-column: 2 !important;
    }

    /* Contact Method: Radio buttons full width */
    body.page-id-38 #wpmem_profile_form label[for="contact_method"],
    body.page-id-38 #wpmem_profile_form label[for="contact_method"] + .div_radio {
      grid-column: 1 / -1 !important;
    }

    /* Address 1 and Address 2 full width */
    body.page-id-38 #wpmem_profile_form label[for="billing_address_1"],
    body.page-id-38 #wpmem_profile_form label[for="billing_address_1"] + .div_text,
    body.page-id-38 #wpmem_profile_form label[for="billing_address_2"],
    body.page-id-38 #wpmem_profile_form label[for="billing_address_2"] + .div_text {
      grid-column: 1 / -1 !important;
    }
    
    /* City | State */
    body.page-id-38 #wpmem_profile_form label[for="billing_city"],
    body.page-id-38 #wpmem_profile_form label[for="billing_city"] + .div_text {
      grid-column: 1 !important;
    }
    body.page-id-38 #wpmem_profile_form label[for="billing_state"],
    body.page-id-38 #wpmem_profile_form label[for="billing_state"] + .div_text {
      grid-column: 2 !important;
    }

    /* Zip: Full width */
    body.page-id-38 #wpmem_profile_form label[for="billing_postcode"],
    body.page-id-38 #wpmem_profile_form label[for="billing_postcode"] + .div_text {
      grid-column: 1 / -1 !important;
    }

    /* Days of Availability: Checkboxes full width */
    body.page-id-38 #wpmem_profile_form label[for="days_avail"],
    body.page-id-38 #wpmem_profile_form label[for="days_avail"] + .div_multicheckbox {
      grid-column: 1 / -1 !important;
    }
    
    /* Website | Confirm Email */
    body.page-id-38 #wpmem_profile_form label[for="user_url"],
    body.page-id-38 #wpmem_profile_form label[for="user_url"] + .div_text {
      grid-column: 1 !important;
    }
    body.page-id-38 #wpmem_profile_form label[for="confirm_email"],
    body.page-id-38 #wpmem_profile_form label[for="confirm_email"] + .div_text {
      grid-column: 2 !important;
    }

    /* Biographical Info: Textarea full width */
    body.page-id-38 #wpmem_profile_form label[for="description"],
    body.page-id-38 #wpmem_profile_form label[for="description"] + .div_textarea {
      grid-column: 1 / -1 !important;
    }

    /* Button and helper text full width */
    body.page-id-38 #wpmem_profile_form .button_div,
    body.page-id-38 #wpmem_profile_form .req-text {
      grid-column: 1 / -1 !important;
      justify-self: center;
      text-align: center;
    }

    /* Ensure the button itself is properly aligned */
    body.page-id-38 #wpmem_profile_form .button_div input[type="submit"] {
      margin: 0;
      height: 42px;
    }

    /* Ensure all grid items actually stretch to track width */
    body.page-id-38 #wpmem_profile_form fieldset > * {
      width: 100%;
      max-width: none;
      justify-self: stretch;
      min-width: 0;
    }
  }

  /* Small visual tweak - match registration page */
  body.page-id-38 #wpmem_profile_form label[for="last_name"],
  body.page-id-38 #wpmem_profile_form label[for="first_name"] {
    margin-top: 10px;
  }

  /* Login Page Styles */
  .tsf-login #wpmem_login_form {
    max-width: 380px;
    margin: 0 auto;
    padding: 32px;
    background: var(--tsf-bg);
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  }

  .tsf-login #wpmem_login_form fieldset {
    border: none;
    padding: 0;
    margin: 0;
  }

  .tsf-login #wpmem_login_form legend {
    font-size: 24px;
    font-weight: 600;
    color: var(--tsf-accent);
    text-align: center;
    margin-bottom: 24px;
    padding: 0;
    border: none;
  }

  /* Login form labels */
  .tsf-login #wpmem_login_form label {
    display: block;
    margin-top: 16px;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--tsf-text);
    width: 100%;
  }

  .tsf-login #wpmem_login_form label:first-child {
    margin-top: 0;
  }

  /* Login form inputs */
  .tsf-login #wpmem_login_form .div_text {
    display: block;
    margin-bottom: 8px;
    width: 100%;
  }

  .tsf-login #wpmem_login_form input.username,
  .tsf-login #wpmem_login_form input.password {
    width: 100% !important;
    height: var(--tsf-field-height);
    border: 1px solid var(--tsf-border);
    border-radius: 6px;
    padding: 0 12px;
    background: var(--tsf-bg);
    color: var(--tsf-text);
    outline: none;
    transition: box-shadow .15s ease, border-color .15s ease;
    box-sizing: border-box;
    display: block;
    font-size: 14px;
  }

  .tsf-login #wpmem_login_form input.username:focus,
  .tsf-login #wpmem_login_form input.password:focus {
    border-color: var(--tsf-primary);
    box-shadow: 0 0 0 3px rgba(157, 55, 40, 0.15);
    background: #fff;
  }

  /* Cloudflare Turnstile on login */
  .tsf-login #wpmem_login_form .cf-turnstile {
    margin: 20px 0 8px; /* Reduced bottom margin */
    display: flex;
    justify-content: center;
    align-items: center;
  }

  /* Hide the <br> tag added by the plugin */
  .tsf-login #wpmem_login_form .cf-turnstile-br {
      display: none;
  }

  .tsf-login #wpmem_login_form .cf-turnstile iframe {
    margin: 0 auto !important;
    display: block;
  }

  /* Login button and remember me */
  .tsf-login #wpmem_login_form .button_div {
    margin: 8px 0 20px; /* Reduced top margin */
    text-align: center;
  }

  .tsf-login #wpmem_login_form .button_div input[type="submit"] {
    appearance: none;
    border: none;
    border-radius: 10px;
    padding: 12px 24px;
    font-weight: 600;
    cursor: pointer;
    background: var(--tsf-primary);
    color: #FEFCF9;
    text-align: center;
    display: block;
    min-width: 120px;
    line-height: 1.2;
    font-size: 14px;
    margin: 12px auto 0;
  }

  .tsf-login #wpmem_login_form .button_div input[type="submit"]:hover {
    opacity: 0.92;
  }

  /* Remember me checkbox and label */
  .tsf-login #wpmem_login_form .button_div input[type="checkbox"] {
    margin-right: 4px;
    accent-color: var(--tsf-primary);
    vertical-align: middle;
  }

  .tsf-login #wpmem_login_form .button_div label[for="rememberme"] {
    display: inline-block;
    margin: 0;
    font-weight: 400;
    font-size: 14px;
    color: var(--tsf-text);
    cursor: pointer;
    width: auto;
    vertical-align: middle;
  }

  /* Login links */
  .tsf-login #wpmem_login_form .link-text {
    margin: 12px 0;
    text-align: center;
  }

  .tsf-login #wpmem_login_form .link-text span {
    font-size: 14px;
    color: var(--tsf-text);
  }

  .tsf-login #wpmem_login_form .link-text a {
    color: var(--tsf-primary);
    text-decoration: none;
    font-weight: 500;
  }

  .tsf-login #wpmem_login_form .link-text a:hover {
    text-decoration: underline;
  }

  /* Mobile login styles */
  @media (max-width: 759px) {
    .tsf-login #wpmem_login_form {
      margin: 16px;
      padding: 24px;
      max-width: none;
    }

    .tsf-login #wpmem_login_form .button_div {
      flex-direction: column;
      align-items: center;
      gap: 16px;
    }

    .tsf-login #wpmem_login_form .button_div input[type="submit"] {
      width: 100%;
      max-width: 200px;
    }
  }

  /* Registration text sections within form container */
  .tsf-register .registration-text{
    margin:24px 0;
    padding:20px;
    background:#f8f9fa;
    border-radius:var(--tsf-radius);
    border:1px solid var(--tsf-border);
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box;
  }
  
  .tsf-register .registration-text section{
    margin-bottom:16px;
  }
  
  .tsf-register .registration-text section:last-child{
    margin-bottom:0;
  }
  
  .tsf-register .registration-text p{
    margin-bottom:12px;
    line-height:1.6;
    color:var(--tsf-text);
    font-size:14px;
  }
  
  .tsf-register .registration-text p:last-child{
    margin-bottom:0;
  }
  
  .tsf-register .registration-text strong{
    color:var(--tsf-text);
    font-weight:600;
  }
  
  .tsf-register .registration-text em{
    color:var(--tsf-muted);
    font-style:italic;
  }
  
  .tsf-register .registration-text ol{
    margin:12px 0;
    padding-left:1.5rem;
    font-size:14px !important;
  }
  
  .tsf-register .registration-text li{
    margin-bottom:8px;
    line-height:1.5;
    font-size:14px !important;
  }
  
  .tsf-register .registration-text ol ol{
    margin:4px 0;
    padding-left:1.25rem;
    font-size:14px !important;
  }
  
  .tsf-register .registration-text ol ol li{
    font-size:14px !important;
  }

  /* Cloudflare Turnstile */
  .tsf-register #wpmem_register_form .cf-turnstile{margin-top:8px;}
  
  /* ==============
     Responsive grid - Better field arrangement
     ============== */
  @media (min-width:760px){
    .tsf-register #wpmem_register_form fieldset{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      column-gap:var(--tsf-gap);row-gap:8px;
      /* allow later items to backfill earlier empty cells */
      grid-auto-flow:row dense;
    }
  
    /* Default: full width for most elements */
    .tsf-register #wpmem_register_form fieldset > label.text,
    .tsf-register #wpmem_register_form fieldset > .div_text,
    .tsf-register #wpmem_register_form fieldset > .req-text{
      grid-column:1 / -1;justify-self:stretch;min-width:0;
    }
    
    /* SECURITY & SUBMIT: Cloudflare Turnstile centered above Register button */
    .tsf-register #wpmem_register_form fieldset > .cf-turnstile{
      grid-column:1 / -1 !important; justify-self:center; margin-bottom:8px; display:flex; justify-content:center; align-items:center; /* Reduced bottom margin */
    }

    /* Hide the <br> tag added by the plugin */
    .tsf-register #wpmem_register_form .cf-turnstile-br {
        display: none;
    }

    /* Center the Turnstile iframe within its container */
    .tsf-register #wpmem_register_form .cf-turnstile iframe{ margin:0 auto !important; display:block; }
    .tsf-register #wpmem_register_form fieldset > .button_div{
      grid-column:1 / -1 !important;
      justify-self:center;
      text-align:center;
    }
    
    /* Ensure the button itself is properly aligned */
    .tsf-register #wpmem_register_form .button_div input[type="submit"]{
      margin:0;
      height:42px;
    }
  
    /* USERNAME: Full width */
    .tsf-register #wpmem_register_form label[for="username"],
    .tsf-register #wpmem_register_form label[for="username"] + .div_text{
      grid-column:1 / -1 !important;
    }
  
    /* NAME FIELDS: First Name and Last Name side by side */
    .tsf-register #wpmem_register_form label[for="first_name"]{grid-column:1 !important;}
    .tsf-register #wpmem_register_form label[for="last_name"]{grid-column:2 !important;}
    .tsf-register #wpmem_register_form label[for="first_name"] + .div_text{grid-column:1 !important;}
    .tsf-register #wpmem_register_form label[for="last_name"] + .div_text{grid-column:2 !important;}
  
    /* CONTACT FIELDS: Email and Phone side by side */
    .tsf-register #wpmem_register_form label[for="user_email"]{grid-column:1 !important;}
    .tsf-register #wpmem_register_form label[for="billing_phone"]{grid-column:2 !important;}
    .tsf-register #wpmem_register_form label[for="user_email"] + .div_text{grid-column:1 !important;}
    .tsf-register #wpmem_register_form label[for="billing_phone"] + .div_text{grid-column:2 !important;}
  
    /* CONTACT METHOD: Radio buttons full width */
    .tsf-register #wpmem_register_form label[for="contact_method"],
    .tsf-register #wpmem_register_form label[for="contact_method"] + .div_radio{
      grid-column:1 / -1 !important;
    }
  
    /* ADDRESS FIELDS: Address 1 and Address 2 full width */
    .tsf-register #wpmem_register_form label[for="billing_address_1"],
    .tsf-register #wpmem_register_form label[for="billing_address_1"] + .div_text,
    .tsf-register #wpmem_register_form label[for="billing_address_2"],
    .tsf-register #wpmem_register_form label[for="billing_address_2"] + .div_text{
      grid-column:1 / -1 !important;
    }
  
    /* LOCATION FIELDS: City and State side by side */
    .tsf-register #wpmem_register_form label[for="billing_city"]{grid-column:1 !important;}
    .tsf-register #wpmem_register_form label[for="billing_state"]{grid-column:2 !important;}
    .tsf-register #wpmem_register_form label[for="billing_city"] + .div_text{grid-column:1 !important;}
    .tsf-register #wpmem_register_form label[for="billing_state"] + .div_text{grid-column:2 !important;}
  
    /* ZIP: Full width */
    .tsf-register #wpmem_register_form label[for="billing_postcode"],
    .tsf-register #wpmem_register_form label[for="billing_postcode"] + .div_text{
      grid-column:1 / -1 !important;
    }
  
    /* DAYS OF AVAILABILITY: Checkboxes full width */
    .tsf-register #wpmem_register_form label[for="days_avail"],
    .tsf-register #wpmem_register_form label[for="days_avail"] + .div_multicheckbox{
      grid-column:1 / -1 !important;
    }
  
    /* COMMENTS: Textarea full width */
    .tsf-register #wpmem_register_form label[for="reg_comments"],
    .tsf-register #wpmem_register_form label[for="reg_comments"] + .div_textarea{
      grid-column:1 / -1 !important;
    }
  
    /* Ensure all grid items actually stretch to track width */
    .tsf-register #wpmem_register_form fieldset > *{width:100%;max-width:none;justify-self:stretch;min-width:0;}
  }
  
  /* small visual tweak */
  .tsf-register #wpmem_register_form label[for="last_name"],
  .tsf-register #wpmem_register_form label[for="first_name"]{margin-top:10px;}

  /* ==============
     Page Heading Styles
     ============== */

  /* Main page titles - consistent styling across all pages */
  h1.entry-title,
  .entry-title {
    font-size: 28px !important;
    font-weight: 700 !important;
    color: var(--tsf-accent) !important;
    margin: 0 0 24px 0 !important;
    text-align: left !important;
    line-height: 1.3 !important;
    letter-spacing: -0.02em !important;
    position: relative !important;
    display: inline-block; /* ensure underline can span full text width */
  }

  /* Add subtle underline for main page titles */
  h1.entry-title::after,
  .entry-title::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--tsf-primary), var(--tsf-secondary));
    border-radius: 2px;
  }

  /* Page-specific heading adjustments */
  body.page-id-38 h1.entry-title,
  body.page-id-38 .entry-title {
    font-size: 24px !important;
    margin-bottom: 20px !important;
  }

  /* Archive and blog page headings */
  .archive h1.entry-title,
  .archive .entry-title,
  .blog h1.entry-title,
  .blog .entry-title,
  .search h1.entry-title,
  .search .entry-title {
    font-size: 32px !important;
    text-align: center !important;
    margin-bottom: 32px !important;
  }

  .archive h1.entry-title,
  .archive .entry-title,
  .blog h1.entry-title,
  .blog .entry-title,
  .search h1.entry-title,
  .search .entry-title {
    display: block; /* center full-width underline under centered titles */
    text-align: center !important;
  }

  .archive h1.entry-title::after,
  .archive .entry-title::after,
  .blog h1.entry-title::after,
  .blog .entry-title::after,
  .search h1.entry-title::after,
  .search .entry-title::after {
    left: 0;
    right: 0;
    transform: none;
    margin: 0 auto;
    width: 100%;
  }

  /* Single post/page headings */
  .single h1.entry-title,
  .single .entry-title,
  .page h1.entry-title,
  .page .entry-title {
    font-size: 36px !important;
    margin-bottom: 20px !important;
    line-height: 1.2 !important;
  }

  /* Mobile responsive adjustments */
  @media (max-width: 768px) {
    h1.entry-title,
    .entry-title {
      font-size: 24px !important;
      margin-bottom: 20px !important;
    }

    .single h1.entry-title,
    .single .entry-title,
    .page h1.entry-title,
    .page .entry-title {
      font-size: 28px !important;
    }

    .archive h1.entry-title,
    .archive .entry-title,
    .blog h1.entry-title,
    .blog .entry-title,
    .search h1.entry-title,
    .search .entry-title {
      font-size: 26px !important;
      margin-bottom: 24px !important;
    }

    body.page-id-38 h1.entry-title,
    body.page-id-38 .entry-title {
      font-size: 20px !important;
      margin-bottom: 16px !important;
    }
  }

  @media (max-width: 480px) {
    h1.entry-title,
    .entry-title {
      font-size: 22px !important;
      margin-bottom: 16px !important;
    }

    .single h1.entry-title,
    .single .entry-title,
    .page h1.entry-title,
    .page .entry-title {
      font-size: 24px !important;
    }

    .archive h1.entry-title,
    .archive .entry-title,
    .blog h1.entry-title,
    .blog .entry-title,
    .search h1.entry-title,
    .search .entry-title {
      font-size: 22px !important;
    }
  }

  /* Sub-headings within content */
  .entry-content h2 {
    font-size: 24px;
    font-weight: 600;
    color: var(--tsf-accent);
    margin: 32px 0 16px 0;
    line-height: 1.3;
    position: static;
    padding-left: 0;
  }

  /* Remove decorative before line previously applied to h2 */
  .entry-content h2::before { content: none !important; }

  .entry-content h3 {
    font-size: 20px;
    font-weight: 600;
    color: var(--tsf-text);
    margin: 24px 0 12px 0;
    line-height: 1.4;
  }

  .entry-content h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--tsf-text);
    margin: 20px 0 10px 0;
    line-height: 1.4;
  }

  .entry-content h5,
  .entry-content h6 {
    font-size: 16px;
    font-weight: 600;
    color: var(--tsf-text);
    margin: 16px 0 8px 0;
    line-height: 1.4;
  }

  /* Mobile adjustments for content headings */
  @media (max-width: 768px) {
    .entry-content h2 {
      font-size: 20px;
      margin: 24px 0 12px 0;
    }

    .entry-content h3 {
      font-size: 18px;
      margin: 20px 0 10px 0;
    }

    .entry-content h4 {
      font-size: 16px;
      margin: 16px 0 8px 0;
    }

    .entry-content h5,
    .entry-content h6 {
      font-size: 15px;
      margin: 12px 0 6px 0;
    }
  }
  
  /* --- Members Area Main Section --- */
  
  /* Outer group centers content and aligns with other forms/pages */
  .ts-members-main {
    margin: 0 auto 32px auto;
  }
  
  .ts-members-main .wp-block-group__inner-container {
    max-width: 900px;
    margin: 0 auto;
    padding: 0; /* match site forms */
  }
  
  /* Remove any decorative pseudo-elements that some block styles add */
  .ts-members-main .gb-text::before,
  .ts-members-main .gb-text::after {
    content: none !important;
  }
  
  /* Headings within members area use the same look as content headings */
  .ts-members-main h2.gb-text,
  .ts-members-main h2 {
    margin: 16px 0 20px 0;
    font-weight: 600;
    color: var(--tsf-accent);
    position: static;
    padding-left: 0;
  }
  
  /* Remove decorative before line in members area h2 */
  .ts-members-main h2.gb-text::before,
  .ts-members-main h2::before { content: none !important; }
  
  .ts-members-main h3 {
    font-weight: 600;
    color: var(--tsf-text);
    margin: 24px 0 12px 0;
  }
  
  /* Lists */
  .ts-members-main ul {
    margin: 0 0 24px 1.25rem;
    padding: 0;
  }
  
  .ts-members-main ul li {
    margin: 0 0 10px 0;
    line-height: 1.6;
  }
  
  /* Quote widget card */
  .ts-members-main .ts-quote-widget {
    background: #fff;
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    padding: 20px;
  }
  
  .ts-members-main .ts-quote-widget h4 {
    margin: 0 0 12px 0;
    color: var(--tsf-accent);
  }
  
  .ts-members-main .ts-quote-widget blockquote {
    margin: 0;
    padding-left: 16px;
    border-left: 4px solid var(--tsf-secondary);
    color: var(--tsf-text);
  }
  
  .ts-members-main .ts-quote-widget blockquote p {
    margin: 0 0 12px 0;
    font-style: italic;
  }
  
  .ts-members-main .ts-quote-widget blockquote cite {
    display: block;
    font-weight: 600;
    color: var(--tsf-muted);
  }

  /* --- Contact Page (Jetpack Form) --- */
  
  /* Constrain and center the form like other site forms */
  body.page-id-22 .wp-block-jetpack-contact-form-container {
    max-width: 900px;
    margin: 16px auto 0 auto;
    background: #fff;
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    padding: 16px;
    box-sizing: border-box;
  }
  
  /* Field wrappers */
  body.page-id-22 .wp-block-jetpack-contact-form .wp-block-jetpack-input-wrap,
  body.page-id-22 .wp-block-jetpack-contact-form .grunion-field-wrap,
  body.page-id-22 .wp-block-jetpack-contact-form .grunion-field,
  body.page-id-22 .wp-block-jetpack-contact-form .grunion-field-wrap + .grunion-field-wrap {
    display: block;
    margin: 2px 0 6px 0 !important; /* tighter spacing between fields */
  }
  
  /* Labels */
  body.page-id-22 .wp-block-jetpack-contact-form .wp-block-jetpack-label,
  body.page-id-22 .wp-block-jetpack-contact-form .grunion-field-label {
    display: block;
    margin: 2px 0 2px 0 !important; /* reduce space above labels */
    font-size: 14px;
    font-weight: 600;
    color: var(--tsf-text);
  }
  body.page-id-22 .grunion-label-required { color: #ef4444; }
  
  /* Inputs */
  body.page-id-22 .wp-block-jetpack-input.grunion-field[type="text"],
  body.page-id-22 .wp-block-jetpack-input.grunion-field[type="email"],
  body.page-id-22 .wp-block-jetpack-input.grunion-field[type="url"],
  body.page-id-22 .wp-block-jetpack-input.grunion-field[type="tel"],
  body.page-id-22 .wp-block-jetpack-input.grunion-field:not(textarea) {
    width: 100% !important;
    height: var(--tsf-field-height);
    border: 1px solid var(--tsf-border);
    border-radius: 6px;
    padding: 0 12px !important;
    background: var(--tsf-bg) !important;
    color: var(--tsf-text) !important;
    box-sizing: border-box;
    outline: none;
    transition: box-shadow .15s ease, border-color .15s ease;
    font-size: 14px !important;
  }
  body.page-id-22 .wp-block-jetpack-input.grunion-field { margin: 0 !important; }
  body.page-id-22 .wp-block-jetpack-input.grunion-field:focus {
    border-color: #9ca3af !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,.15) !important;
    background: #fff !important;
  }
  
  /* Textarea */
  body.page-id-22 .wp-block-jetpack-input.grunion-field.textarea,
  body.page-id-22 textarea.wp-block-jetpack-input.grunion-field {
    width: 100% !important;
    min-height: 160px !important;
    border: 1px solid var(--tsf-border) !important;
    border-radius: 6px !important;
    padding: 12px !important;
    background: var(--tsf-bg) !important;
    color: var(--tsf-text) !important;
    box-sizing: border-box;
    outline: none;
    transition: box-shadow .15s ease, border-color .15s ease;
    font-family: inherit !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    resize: vertical;
  }
  body.page-id-22 .wp-block-jetpack-input.grunion-field.textarea,
  body.page-id-22 textarea.wp-block-jetpack-input.grunion-field { margin: 0 !important; }
  body.page-id-22 .wp-block-jetpack-input.grunion-field.textarea:focus,
  body.page-id-22 textarea.wp-block-jetpack-input.grunion-field:focus {
    border-color: #9ca3af !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,.15) !important;
    background: #fff !important;
  }
  
  /* Button */
  body.page-id-22 .wp-block-jetpack-button .wp-block-button__link {
    appearance: none;
    border: none !important;
    border-radius: 10px !important;
    padding: 12px 16px !important;
    font-weight: 600 !important;
    cursor: pointer;
    background: var(--tsf-primary) !important;
    color: #FEFCF9 !important;
    text-align: center !important;
    min-width: 140px;
    line-height: 1.2;
  }
  body.page-id-22 .wp-block-jetpack-button .wp-block-button__link:hover { opacity: .92; }
  body.page-id-22 .wp-block-jetpack-button { margin: 8px 0 8px 0 !important; }
  
  /* Errors */
  body.page-id-22 .contact-form__input-error { display: none !important; margin-top: 6px; color: var(--tsf-accent); }
  body.page-id-22 .contact-form__input-error.has-errors { display: block !important; }
  body.page-id-22 .contact-form__error { color: var(--tsf-accent); }
  
  /* Cloudflare Turnstile spacing and centering */
  body.page-id-22 .wp-block-jetpack-contact-form-container .cf-turnstile {
    margin: 8px 0 4px !important;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  body.page-id-22 .wp-block-jetpack-contact-form-container .cf-turnstile-br { display: none; }

  /* Reduce default block gaps inside the form caused by theme block spacing */
  /* Remove theme block-gap margins between direct children; let wrappers control spacing */
  body.page-id-22 .wp-block-jetpack-contact-form > * { margin: 0 !important; }

  /* --- Church Partnership (ts-churchpart) --- */
  .ts-churchpart .wp-block-group__inner-container {
    max-width: 900px;
    margin: 0 auto;
    padding: 0; /* keep it clean */
  }

  .ts-churchpart p {
    margin: 0 0 12px 0;
    line-height: 1.6;
    color: var(--tsf-text);
    font-size: 15px;
  }
  .ts-churchpart p:first-child { margin-top: 24px; }

  .ts-churchpart p:last-child { margin-bottom: 0; }

  .ts-churchpart a {
    color: var(--tsf-primary);
    text-decoration: none;
    font-weight: 600;
  }

  .ts-churchpart a:hover { text-decoration: underline; }

  /* --- Register page after success (showing login) --- */
  /* Hide the top registration blurb and the About block when success message is present */
  .tsf-register:has(.wpmem_msg) .tsf-reg-blurb,
  .tsf-register:has(.wpmem_msg) .registration-text { display: none !important; }

  /* Style the success message */
  .tsf-register .wpmem_msg {
    max-width: 900px;
    margin: 0 auto 16px auto;
    padding: 16px;
    background: var(--tsf-bg);
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    color: var(--tsf-text);
  }

  /* Style the login form that appears after success like our login page */
  .tsf-register:has(.wpmem_msg) #wpmem_login_form {
    max-width: 380px;
    margin: 0 auto;
    padding: 32px;
    background: var(--tsf-bg);
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
  }

  .tsf-register:has(.wpmem_msg) #wpmem_login_form fieldset { border: none; padding: 0; margin: 0; }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form legend {
    font-size: 20px; font-weight: 600; color: var(--tsf-accent); text-align: center; margin-bottom: 16px; padding: 0; border: none;
  }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form label { display: block; margin: 12px 0 6px 0; font-size: 14px; font-weight: 600; color: var(--tsf-text); }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form .div_text { margin-bottom: 8px; }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form input.username,
  .tsf-register:has(.wpmem_msg) #wpmem_login_form input.password { width: 100% !important; height: var(--tsf-field-height); border: 1px solid var(--tsf-border); border-radius: 6px; padding: 0 12px; background: var(--tsf-bg); color: var(--tsf-text); outline: none; transition: box-shadow .15s ease, border-color .15s ease; font-size: 14px; }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form input.username:focus,
  .tsf-register:has(.wpmem_msg) #wpmem_login_form input.password:focus { border-color: var(--tsf-primary); box-shadow: 0 0 0 3px rgba(157,55,40,.15); background: #fff; }

  .tsf-register:has(.wpmem_msg) #wpmem_login_form .cf-turnstile { margin: 12px 0 8px; display: flex; justify-content: center; align-items: center; }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form .cf-turnstile-br { display: none; }

  .tsf-register:has(.wpmem_msg) #wpmem_login_form .button_div { margin: 8px 0 16px; text-align: center; }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form .button_div input[type="submit"] { appearance:none;border:none;border-radius:10px;padding:12px 24px;font-weight:600;cursor:pointer;background:var(--tsf-primary);color:#FEFCF9;display:inline-block;min-width:120px;line-height:1.2;font-size:14px; }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form .button_div input[type="submit"]:hover { opacity:.92; }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form .button_div input[type="checkbox"] { margin-right: 6px; accent-color: var(--tsf-primary); }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form .button_div label[for="rememberme"] { display:inline-block; margin:0; font-weight:400; font-size:14px; color:var(--tsf-text); }

  .tsf-register:has(.wpmem_msg) #wpmem_login_form .link-text { margin: 8px 0 0; text-align: center; }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form .link-text a { color: var(--tsf-primary); text-decoration: none; font-weight: 500; }
  .tsf-register:has(.wpmem_msg) #wpmem_login_form .link-text a:hover { text-decoration: underline; }

  /* --- Password Reset Form (pwdreset) --- */
  .tsf-register #wpmem_pwdreset_form {
    max-width: 380px;
    margin: 0 auto;
    padding: 32px;
    background: var(--tsf-bg);
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
  }

  .tsf-register #wpmem_pwdreset_form fieldset { border: none; padding: 0; margin: 0; }
  .tsf-register #wpmem_pwdreset_form legend {
    font-size: 20px;
    font-weight: 600;
    color: var(--tsf-accent);
    text-align: center;
    margin-bottom: 16px;
    padding: 0;
    border: none;
  }

  .tsf-register #wpmem_pwdreset_form label {
    display: block;
    margin: 12px 0 6px 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--tsf-text);
  }

  .tsf-register #wpmem_pwdreset_form .div_text {
    margin-bottom: 8px;
  }

  .tsf-register #wpmem_pwdreset_form input.username {
    width: 100% !important;
    height: var(--tsf-field-height);
    border: 1px solid var(--tsf-border);
    border-radius: 6px;
    padding: 0 12px;
    background: var(--tsf-bg);
    color: var(--tsf-text);
    outline: none;
    transition: box-shadow .15s ease, border-color .15s ease;
    font-size: 14px;
  }

  .tsf-register #wpmem_pwdreset_form input.username:focus {
    border-color: var(--tsf-primary);
    box-shadow: 0 0 0 3px rgba(157,55,40,.15);
    background: #fff;
  }

  .tsf-register #wpmem_pwdreset_form .button_div {
    margin: 8px 0 16px;
    text-align: center;
  }

  .tsf-register #wpmem_pwdreset_form .button_div input[type="submit"] {
    appearance: none;
    border: none;
    border-radius: 10px;
    padding: 12px 24px;
    font-weight: 600;
    cursor: pointer;
    background: var(--tsf-primary);
    color: #FEFCF9;
    display: inline-block;
    min-width: 120px;
    line-height: 1.2;
    font-size: 14px;
  }

  .tsf-register #wpmem_pwdreset_form .button_div input[type="submit"]:hover {
    opacity: .92;
  }

  .tsf-register #wpmem_pwdreset_form .link-text {
    margin: 8px 0 0;
    text-align: center;
  }

  .tsf-register #wpmem_pwdreset_form .link-text a {
    color: var(--tsf-primary);
    text-decoration: none;
    font-weight: 500;
  }

  .tsf-register #wpmem_pwdreset_form .link-text a:hover {
    text-decoration: underline;
  }

  /* --- Forgot Username Form (getusername) --- */
  .tsf-register #wpmem_getusername_form {
    max-width: 380px;
    margin: 0 auto;
    padding: 32px;
    background: var(--tsf-bg);
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
  }

  .tsf-register #wpmem_getusername_form fieldset { border: none; padding: 0; margin: 0; }
  .tsf-register #wpmem_getusername_form legend {
    font-size: 20px;
    font-weight: 600;
    color: var(--tsf-accent);
    text-align: center;
    margin-bottom: 16px;
    padding: 0;
    border: none;
  }

  .tsf-register #wpmem_getusername_form label {
    display: block;
    margin: 12px 0 6px 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--tsf-text);
  }

  .tsf-register #wpmem_getusername_form .div_text {
    margin-bottom: 8px;
  }

  .tsf-register #wpmem_getusername_form input.username {
    width: 100% !important;
    height: var(--tsf-field-height);
    border: 1px solid var(--tsf-border);
    border-radius: 6px;
    padding: 0 12px;
    background: var(--tsf-bg);
    color: var(--tsf-text);
    outline: none;
    transition: box-shadow .15s ease, border-color .15s ease;
    font-size: 14px;
  }

  .tsf-register #wpmem_getusername_form input.username:focus {
    border-color: var(--tsf-primary);
    box-shadow: 0 0 0 3px rgba(157,55,40,.15);
    background: #fff;
  }

  .tsf-register #wpmem_getusername_form .button_div {
    margin: 8px 0 16px;
    text-align: center;
  }

  .tsf-register #wpmem_getusername_form .button_div input[type="submit"] {
    appearance: none;
    border: none;
    border-radius: 10px;
    padding: 12px 24px;
    font-weight: 600;
    cursor: pointer;
    background: var(--tsf-primary);
    color: #FEFCF9;
    display: inline-block;
    min-width: 120px;
    line-height: 1.2;
    font-size: 14px;
  }

  .tsf-register #wpmem_getusername_form .button_div input[type="submit"]:hover {
    opacity: .92;
  }

  /* --- Password Change Form (pwdchange) --- */

  /* On the password change page, adjust the main container to be smaller */
  .tsf-register:has(#wpmem_pwdchange_form) {
    max-width: 420px;
    padding: 32px;
  }

  /* Remove any box styling from the form itself, the container provides it */
  .tsf-register #wpmem_pwdchange_form {
    border: none;
    padding: 0;
    background: transparent;
    box-shadow: none;
  }

  /* Also remove any potential box styling from intermediate containers */
  .tsf-register:has(#wpmem_pwdchange_form) .wp-block-group__inner-container {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
  }

  .tsf-register #wpmem_pwdchange_form fieldset { border: none; padding: 0; margin: 0; }
  .tsf-register #wpmem_pwdchange_form legend {
    font-size: 20px;
    font-weight: 600;
    color: var(--tsf-accent);
    text-align: center;
    margin-bottom: 16px;
    padding: 0;
    border: none;
    width: 100%;
  }
  .tsf-register #wpmem_pwdchange_form label {
    display: block;
    margin: 12px 0 6px 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--tsf-text);
  }
  .tsf-register #wpmem_pwdchange_form .div_text {
    margin-bottom: 8px;
  }
  .tsf-register #wpmem_pwdchange_form input.password {
    width: 100% !important;
    height: var(--tsf-field-height);
    border: 1px solid var(--tsf-border);
    border-radius: 6px;
    padding: 0 12px;
    background: var(--tsf-bg);
    color: var(--tsf-text);
    outline: none;
    transition: box-shadow .15s ease, border-color .15s ease;
    font-size: 14px;
  }
  .tsf-register #wpmem_pwdchange_form input.password:focus {
    border-color: var(--tsf-primary);
    box-shadow: 0 0 0 3px rgba(157,55,40,.15);
    background: #fff;
  }
  .tsf-register #wpmem_pwdchange_form .button_div {
    margin: 8px 0 16px;
    text-align: center;
  }
  .tsf-register #wpmem_pwdchange_form .button_div input[type="submit"] {
    appearance: none;
    border: none;
    border-radius: 10px;
    padding: 12px 24px;
    font-weight: 600;
    cursor: pointer;
    background: var(--tsf-primary);
    color: #FEFCF9;
    display: inline-block;
    min-width: 120px;
    line-height: 1.2;
    font-size: 14px;
  }
  .tsf-register #wpmem_pwdchange_form .button_div input[type="submit"]:hover {
    opacity: .92;
  }

  /* --- Left Sidebar Fixed Width on Full-Width Pages --- */
  .full-width-content .sidebar.is-left-sidebar {
    width: 300px !important;
    flex: 0 0 300px !important;
  }

  .full-width-content .sidebar.is-left-sidebar .inside-left-sidebar {
    position: sticky;
    top: 20px;
  }

  /* Make main content area expand to fill remaining space */
  .full-width-content .site-main {
    flex: 1 !important;
    width: auto !important;
    max-width: none !important;
  }

  .full-width-content .content-area {
    flex: 1 !important;
    width: auto !important;
    max-width: none !important;
  }

  /* --- Error/Success Messages (wpmem_msg) --- */
  .tsf-register .wpmem_msg,
  .tsf-login .wpmem_msg {
    max-width: 900px;
    margin: 0 auto 16px auto;
    padding: 16px;
    background: var(--tsf-bg);
    border: 1px solid var(--tsf-border);
    border-radius: var(--tsf-radius);
    color: var(--tsf-text);
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
  }

  .tsf-register .wpmem_msg strong,
  .tsf-login .wpmem_msg strong {
    color: var(--tsf-accent);
    font-weight: 600;
  }

  .tsf-register .wpmem_msg a,
  .tsf-login .wpmem_msg a {
    color: var(--tsf-primary);
    text-decoration: none;
    font-weight: 500;
  }

  .tsf-register .wpmem_msg a:hover,
  .tsf-login .wpmem_msg a:hover {
    text-decoration: underline;
  }

  /* --- Main Navigation (Header) --- */
  .main-navigation .main-nav ul li a {
    font-size: 15px;
    font-weight: 600;
    color: var(--tsf-text);
    transition: color .15s ease;
  }

  .main-navigation .main-nav ul li:hover > a,
  .main-navigation .main-nav ul li:focus > a {
    color: var(--tsf-primary);
    background-color: transparent;
  }

  .main-navigation .main-nav ul li[class*="current-menu-"] > a {
      color: var(--tsf-primary);
      background-color: transparent;
  }

  /* --- Submenu Styling --- */
  .main-navigation .main-nav ul li .sub-menu {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  }

  .main-navigation .main-nav ul li .sub-menu li a {
    font-size: 14px;
    font-weight: 500;
    color: var(--tsf-text);
    padding: 8px 16px;
    transition: color .15s ease;
  }

  .main-navigation .main-nav ul li .sub-menu li:hover > a,
  .main-navigation .main-nav ul li .sub-menu li:focus > a {
    color: var(--tsf-primary);
  }

  .main-navigation .main-nav ul li .sub-menu li[class*="current-menu-"] > a {
    color: var(--tsf-primary);
  }

  /* --- Home Page Styling --- */
  body.home .gb-element-d0054b0e {
    background-size: cover !important;
    background-position: center !important;
    min-height: 70vh;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative;
  }

  /* Add subtle overlay for better text readability */
  body.home .gb-element-d0054b0e::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.3);
    z-index: 1;
  }

  /* Ensure content is above overlay */
  body.home .gb-element-d0054b0e > * {
    position: relative;
    z-index: 2;
  }

  /* Center the content group */
  body.home .wp-block-group {
    text-align: center !important;
    max-width: 1000px;
    margin: 0 auto;
    padding: 40px 20px;
  }

  /* Enhance text visibility */
  body.home .wp-block-heading {
    color: #fff !important;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    margin-bottom: 20px !important;
  }

  body.home .wp-block-group p {
    color: #fff !important;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
    margin-bottom: 10px !important;
  }

  /* Keep buttons below the text content */
  body.home .wp-block-buttons {
    margin-top: 5px !important;
  }

  body.home .wp-block-button__link {
    font-size: 16px !important;
    font-weight: 600 !important;
    padding: 12px 24px !important;
    border-radius: var(--tsf-radius) !important;
    transition: opacity 0.15s ease;
  }

  body.home .wp-block-button__link:hover {
    opacity: .92;
  }

  /* Mobile button stacking */
  @media (max-width: 768px) {
    body.home .wp-block-buttons {
      flex-direction: column !important;
      gap: 12px !important;
    }
    
    body.home .wp-block-button {
      width: 100% !important;
    }
    
    body.home .wp-block-button__link {
      width: 100% !important;
      display: block !important;
    }
  }
  