* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background-color: #ffffff;
    color: #333333;
    line-height: 1.6;
    font-size: 16px;
    padding: 0;
}

ol {
    list-style-type: none;
}

p.break {
    margin-bottom: 0.5em;
}


/* Container */
.container {
    border-bottom: 1px dashed #555555;
    text-align: center;
    padding: 40px 15px;

    font-size: clamp(1.2rem, 6vw, 3rem);
}

.container h1 {
    font-size: 1.4em;
    line-height: 1.1;
    margin-bottom: 1em;
    word-wrap: break-word;
   /* overflow-wrap: break-word;*/
}

.container h1 img {
    height: 1.1em; /* matches the text height organically */
    /*width: auto;*/
    /*vertical-align: middle;  */
    display: block;

    position: relative;
    top: -0.04em;
}

.container h1 .brand {
    display: inline-flex;
    align-items: center;
    gap: 0.1em;
    white-space: nowrap;  /* keeps logo + 'tidysum' together */
    vertical-align: middle;  
    /*line-height: 1;*/      
    position: relative;
    top: -0.05em;
}

.container h1 .normal {
    font-weight: normal;
}


/* Footer */
#footer {
    background-color: #f8f8f8; /* light neutral background */
    color: #333; /* dark text for readability */
    text-align: center;
    padding: 20px 10px;
    font-family: Arial, sans-serif;
    font-size: 14px;
    line-height: 1.5;
}

#footer a {
    color: #007BFF; /* subtle blue link */
    text-decoration: none;
}

#footer a:hover {
    text-decoration: underline;
}

#footer p {
    line-height: 1.1;
}


/* Home */
#home .cta {
    margin-bottom: 1em;
}

#home .cta .plans-and-pricing {
    display: inline-block;
    background-color: #4CAF50; /* modern green */
    color: #000000;
    padding: 0.5em 1em;
    font-size: 0.5em;
    font-weight: bold;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.25s ease, transform 0.15s ease;
    white-space: nowrap;
}

#home .cta .plans-and-pricing:hover {
    background-color: #45a049; /* slightly darker */
    transform: translateY(-1px);
}

#home .cta .plans-and-pricing:active {
    background-color: #3d8b41;
    transform: translateY(0);
}

#home .steps {
    margin: 0 auto 1em auto;
    max-width: 80%;
    text-align: center;
}

#home .steps ol {
    display: inline-block;
    margin: 0 auto;
}

#home .step img {
    width: 1.5em;
}

#home .step .text {
    display: block;
    flex-shrink: 0;  
}

#home .step h2 {
    font-size: 0.7em;
    line-height: 1;
    text-align: left;
}

#home .step p {
    color: #555555;
    font-size: 0.4em;
    font-weight: 400;
    line-height: 1;
}

#home .step p.indent {
    padding-left: 0.05em;
}

#home .step {
    align-items: center;  /* vertical centering */
    display: flex;
    gap: 0.5em;
    margin-bottom: 0.5em;
}


/* Privacy */
#privacy .policy {
    font-size: 0.4em;
    max-width: 80%;
    margin: 0 auto;
    text-align: left;
}

#privacy h2 {
    font-size: 1.5em;
    margin-top: 0.5em;
}

#privacy h3 {
    font-size: 1.2em;
    font-weight: bold;
    margin-top: 0.5em;
}

#privacy ul {
    text-align: left;
    list-style-position: inside;
    margin: 0.5em 0;
}


/* Pricing */
#pricing .pricing-grid .cta .get-started {
    display: inline-block;
    background-color: #4CAF50; /* modern green */
    color: #000000;
    padding: 0.5em 1em;
    font-size: 0.5em;
    font-weight: bold;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.25s ease, transform 0.15s ease;
    text-align: center;
    white-space: nowrap;
    width: 100%;
}

#pricing .pricing-grid .cta .get-started:hover {
    background-color: #45a049; /* slightly darker */
    transform: translateY(-1px);
}

#pricing .pricing-grid .cta .get-started:active {
    background-color: #3d8b41;
    transform: translateY(0);
}

#pricing .pricing-grid ul.features {
    font-size: 0.4em;
    list-style-type: disc;
    list-style-position: outside;
    margin-top: 1em;
    padding-left: 1em;
}

#pricing .pricing-grid li {
    line-height: 1.1;
    padding-bottom: 0.4em;
}

#pricing .pricing-grid li.comes-with {
    font-weight: bold;
    list-style-type: none;
}

#pricing .pricing-grid li.ideal-for {
    border-top: 1px solid #cccccc;
    font-style: italic;
    list-style-type: none;
    padding-top: 0.5em;
}

#pricing .pricing-grid li.ideal-for span {
    font-weight: bold;
}

#pricing .pricing-grid li.section {
    border-bottom: 1px solid #555555;
    font-weight: bold;
    margin-top: 1em;
    margin-bottom: 0.5em;
}

#pricing .pricing-grid li.section:first-child {
    margin-top: 0;
}

#pricing .pricing-grid .plan {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 12px;
    width: 300px;
    padding: 30px 25px;
    text-align: left;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

#pricing .pricing-grid .plan h2 {
    margin: 0;
    font-size: 0.5em;
}

#pricing .pricing-grid .price {
    font-size: 1.5em;
    font-weight: 500;
}

#pricing .pricing-grid .currency {
    font-size: 0.5em;
    font-weight: normal;
    vertical-align: super;
}

#pricing .pricing-grid .price .per-month {
    color: #555555;
    font-size: 0.4em;
    font-weight: normal;
    padding-left: 0.2em;
}

#pricing .pricing-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
    max-width: 80%;
    margin: 0 auto;
}

#pricing .features-table {
    margin: 2em 0;
    max-width: 100%;
    display: flex;
    justify-content: center;
}

#pricing .features-table table {
    border: 0px solid black;
    border-collapse: collapse;
    margin: 0 auto;
    width: 80%;
}

#pricing .features-table table thead tr {
    border-bottom: 1px solid #555555;
    font-size: 0.5em;
}

#pricing .features-table table tbody tr {
    font-size: 0.4em;
}

#pricing .features-table table tbody tr.section {
    font-weight: bold;
}

#pricing .features-table table tbody tr.section td {
    font-size: 1.1em;
    padding-top: 1em;
}

#pricing .features-table table tbody tr.section td span {
    border-bottom: 2px dashed black;
}

#pricing .features-table table tbody tr.sub-section {
    font-weight: bold;
}

#pricing .features-table table tbody tr.sub-section td {
    padding-top: 1em;
}

#pricing .features-table table tr :nth-of-type(1) {
    text-align: left; 
    width: 40%;
}

#pricing .features-table table tr th {
    text-align: center;
    width: 20%;
}

#pricing .features-table table tr {
    line-height: 1.6;
}

#pricing .features-table img.tick {
    display: inline-block;
    height: auto;
    max-height: 1em; 
    width: auto!important;
}


/* Subscribe */
#subscribe .message {
    margin: 0 auto 1em auto;
    max-width: 80%;
}

#subscribe h2 {
    font-size: 0.6em;
    line-height: 1;
    margin-bottom: 1em;
    text-align: left;
}

#subscribe p {
    font-size: 0.5em;
    text-align: left;
    line-height: 1.2;
}

#subscribe ul {
    font-size: 0.5em;
    text-align: left;
    list-style-position: outside;
    margin: 0.5em 0;
    padding-left: 1em;
}

#subscribe li {
    line-height: 1.1;
    padding-bottom: 0.4em;
}

#subscribe .email-capture {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center; /* centers the whole thing */
}

#subscribe .email-capture input[type="email"] {
    padding: 10px 12px;
    font-size: 0.5em;
    border: 1px solid #ccc;
    border-radius: 6px;
    width: 15em;     /* <— controls how big the input is */
    max-width: 70vw;  /* <— prevents overflow on small screens */
}

#subscribe .email-capture button {
    padding: 10px 14px;
    font-size: 0.5em;
    /*background: #000;*/
    background-color: #4CAF50;
    /*color: #fff;*/
    font-weight: bold;
    color: #000000;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    white-space: nowrap; /* prevents multi-line button */
}


/* Subscribed */
#subscribed .message {
    margin: 0 auto 1em auto;
    max-width: 80%;
}

#subscribed h2 {
    font-size: 0.6em;
    line-height: 1;
    margin-bottom: 1em;
    text-align: left;
}

#subscribed p {
    font-size: 0.5em;
    text-align: left;
    line-height: 1.2;
    padding-bottom: 1em;
}

#subscribed ul {
    font-size: 0.5em;
    text-align: left;
    list-style-position: outside;
    padding-left: 1em;
    padding-bottom: 1em;
}

#subscribed li {
    line-height: 1.1;
    padding-bottom: 0.4em;
}