/**
 * Typography System
 * 
 * Rules:
 * - NO font-weight usage.
 * - Hierarchy defined by size, line-height, and spacing.
 * - Colors are separate utility classes.
 * 
 * Note: Ensure "Suisse Intl" is registered via Elementor Custom Fonts or @font-face.
 */

/* --- RESET & BASIC DEFAULTS --- */
html {
    line-height: 1.15;
    -webkit-text-size-adjust: 100%
}

*,:after,:before {
    box-sizing: border-box
}

body {
    background-color: #fff;
    color: #333;
    font-family: "Suisse Intl", sans-serif;
    font-size: 18px; /* Based on .p2 */
    line-height: 24px;
    margin: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

h1,h2,h3,h4,h5,h6 {
    color: inherit;
    font-family: inherit;
    margin-block-end: 1rem;
    margin-block-start: .5rem;
}

/* Core hierarchy from previous typography settings */
h1 { font-size: 54px; line-height: 63px; }
h2 { font-size: 26px; line-height: 36px; }
h3 { font-size: 24px; line-height: 35px; }
h4 { font-size: 20px; line-height: 30px; }
h5 { font-size: 1.25rem; line-height: 1.2; }
h6 { font-size: 1rem; line-height: 1.2; }

@media (max-width: 767px) {
  h1 { font-size: 33px; line-height: 41px; }
  h2 { font-size: 19px; line-height: 29px; }
  h3 { font-size: 18px; line-height: 26px; }
  h4 { font-size: 16px; line-height: 24px; }
}

p {
    margin-block-end: .9rem;
    margin-block-start: 0
}

hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible
}

pre {
    font-family: monospace,monospace;
    font-size: 1em;
    line-height: 1.5;
    white-space: pre-wrap
}

a {
    background-color: transparent;
    color: inherit; /* overridden from #c36 to inherit cleanly */
    text-decoration: none
}

a:active,a:hover {
    outline: 0
}

a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover {
    color: inherit;
    text-decoration: none
}

a:not([href]):not([tabindex]):focus {
    outline: 0
}

abbr[title] {
    border-block-end:none;
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted
}

/* NOTE: b, strong font-weights removed to strictly follow "NO font-weight usage" rule. */

code,kbd,samp {
    font-family: monospace,monospace;
    font-size: 1em
}

small {
    font-size: 80%
}

sub,sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sub { bottom: -.25em }
sup { top: -.5em }

img {
    border-style: none;
    height: auto;
    max-width: 100%
}

details { display: block }
summary { display: list-item }

figcaption {
    color: #333;
    font-size: 16px;
    font-style: italic;
    line-height: 1.4
}

[hidden],template {
    display: none
}

/* Print CSS */
@media print {
    *,:after,:before {
        background: transparent!important;
        box-shadow: none!important;
        color: #000!important;
        text-shadow: none!important
    }
    a,a:visited { text-decoration: underline }
    a[href]:after { content: " (" attr(href) ")" }
    abbr[title]:after { content: " (" attr(title) ")" }
    a[href^="#"]:after,a[href^="javascript:"]:after { content: "" }
    pre { white-space: pre-wrap!important }
    blockquote,pre { -moz-column-break-inside: avoid; border: 1px solid #ccc; break-inside: avoid }
    thead { display: table-header-group }
    img,tr { -moz-column-break-inside: avoid; break-inside: avoid }
    h2,h3,p { orphans: 3; widows: 3 }
    h2,h3 { -moz-column-break-after: avoid; break-after: avoid }
}

/* Forms */
label {
    display: inline-block;
    line-height: 1;
    vertical-align: middle
}

button,input,optgroup,select,textarea {
    font-family: inherit;
    font-size: 1rem;
    line-height: 1.5;
    margin: 0
}

input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea {
    border: 1px solid #666;
    border-radius: 3px;
    padding: .5rem 1rem;
    transition: all .3s;
    width: 100%
}

input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus {
    border-color: #333
}

button,input { overflow: visible }
button,select { text-transform: none }

[type=button],[type=reset],[type=submit],button {
    -webkit-appearance: button;
    width: auto
}

[type=button],[type=submit],button {
    background-color: transparent;
    border: 1px solid #c36;
    border-radius: 3px;
    color: #c36;
    display: inline-block;
    font-size: 1rem;
    padding: .5rem 1rem;
    text-align: center;
    transition: all .3s;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    white-space: nowrap
}

[type=button]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible),button:focus:not(:focus-visible) {
    outline: none
}

[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover {
    background-color: #c36;
    color: #fff;
    text-decoration: none
}

[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled) {
    cursor: pointer
}

fieldset { padding: .35em .75em .625em }

legend {
    box-sizing: border-box;
    color: inherit;
    display: table;
    max-width: 100%;
    padding: 0;
    white-space: normal
}

progress { vertical-align: baseline }

textarea {
    overflow: auto;
    resize: vertical
}

[type=checkbox],[type=radio] {
    box-sizing: border-box;
    padding: 0
}

[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button {
    height: auto
}

[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

select { display: block }

/* Tables */
table {
    background-color: transparent;
    border-collapse: collapse;
    border-spacing: 0;
    font-size: .9em;
    margin-block-end: 15px;
    width: 100%
}

table td,table th {
    border: 1px solid hsla(0,0%,50%,.502);
    line-height: 1.5;
    padding: 15px;
    vertical-align: top
}

/* Exempted table th { font-weight: 700 } due to NO font-weight rule */

table tfoot th,table thead th {
    font-size: 1em
}

table caption+thead tr:first-child td,table caption+thead tr:first-child th,table colgroup+thead tr:first-child td,table colgroup+thead tr:first-child th,table thead:first-child tr:first-child td,table thead:first-child tr:first-child th {
    border-block-start: 1px solid hsla(0,0%,50%,.502)
}

table tbody>tr:nth-child(odd)>td,table tbody>tr:nth-child(odd)>th {
    background-color: hsla(0,0%,50%,.071)
}

table tbody tr:hover>td,table tbody tr:hover>th {
    background-color: hsla(0,0%,50%,.102)
}

table tbody+tbody {
    border-block-start: 2px solid hsla(0,0%,50%,.502)
}

@media(max-width: 767px) {
    table table { font-size:.8em }
    table table td,table table th { line-height: 1.3; padding: 7px }
}

dd,dl,dt,li,ol,ul {
    background: transparent;
    border: 0;
    font-size: 100%;
    margin-block-end: 0;
    margin-block-start: 0;
    outline: 0;
    vertical-align: baseline
}

/* --- BODY TEXT SYSTEM --- */

.p2 {
  font-family: inherit;
  font-size: 18px;
  line-height: 24px;
}

.p2-bold {
  font-family: inherit;
  font-size: 24px;
  line-height: 35px;
}

.p-xl {
  font-family: inherit;
  font-size: 28px;
  line-height: 40px;
}

/* --- QUOTES --- */

.quote {
  font-family: inherit;
  font-size: 34px;
  line-height: 46px;
}

@media (max-width: 767px) {
  .quote {
    font-size: 24px;
    line-height: 32px;
  }
}

/* --- SPECIAL TYPOGRAPHY --- */

.label {
  font-family: inherit;
  font-size: 12px;
  line-height: 16px;
}

.text-xs {
  font-family: inherit;
  font-size: 11px;
  line-height: 14px;
}

/* --- COLOR UTILITIES (NO DUPLICATION RULE) --- */

.text-white {
  color: #FFF;
}

.text-black {
  color: #000;
}

.text-dark {
  color: #1A1A1A;
}