/* ---------------------------------------------------
   Clockhouse Solutions – Base Styles
   ---------------------------------------------------
   Colours:
   Teal: #029493 (2,148,147)
   Grey: #62566F (98,86,111)
--------------------------------------------------- */

@font-face {
    font-family: 'Prime Regular';
    src: url('prime-regular.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Prime Light';
    src: url('prime-light.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

:root {
    --teal: #029493;
    --grey: #62566F;
    --text: #222;
}

/* Layout containers */

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

html, body {
    margin: 0;
    padding: 0;
}

body {
    color: var(--text);
    font: 1em "Prime Light", Arial, Helvetica, sans-serif;
    line-height: 1.5;
    background: #fff;
}

.container {
    width: 100%;
    margin: 0 auto;
}

/* Banners / logos */

.banner #logo,
.banner-small #logo {
    max-width: 100%;
    height: auto;
    display: block;
}

.banner-small #logo {
    height: 50px;
    object-fit: cover;
}

/* Menu */

.menu {
    padding: 0 3em;
    overflow: hidden;
    background-color: #000;
    position: absolute;
    top: 2em;
    width: calc(100% - 6em);
}

.menu #menuitems { display: none; }

.menu a {
    color: #fff;
    padding: 14px 16px;
    text-decoration: none;
    font-size: 1em;
    display: block;
}

.menu a:hover {
    background-color: var(--grey);
    color: #fff;
}

a.icon {
    display: block;
    position: absolute;
    left: 1em;
    top: 0;
}

a.icon img {
    width: 2.8em;
    height: auto;
    display: block;
}

/* Content */

.content {
    width: 90%;
    margin: 0 auto;
    text-align: left;
    font: 1.2em "Prime Light", Arial, Helvetica, sans-serif;
}

.content h1,
.content h2 {
    color: var(--teal);
    text-align: center;
    margin: 0.6em 0;
}

.content h3 {
    color: var(--grey);
    text-align: center;
    margin: 0.5em 0;
}

.content .row { padding-bottom: 10px; }

.content a {
    color: var(--teal);
    text-decoration: none;
}

.content a:hover {
    color: var(--grey);
    text-decoration: none;
}

/* Grid helpers (float-based to match existing markup) */

.row::after,
.spacer::after {
    content: "";
    display: table;
    clear: both;
}

.spacer { margin: 20px 0; }

.column {
    float: left;
    width: 50%;
    padding: 0 10px;
    vertical-align: top;
    text-align: center;
}

.row-center {
    vertical-align: top;
    text-align: center;
}

/* Forms */

.contactLabel {
    float: left;
    width: 160px;
    padding: 7px 10px 0 10px;
    text-align: left;
}

.contactField {
    float: left;
    padding: 0 10px;
    text-align: left;
}

input[type="text"] {
    height: 30px;
    padding: 12px 10px;
    border: 2px solid var(--grey);
    border-radius: 4px;
    background-color: #f8f8f8;
    font-size: 16px;
}

textarea {
    height: 150px;
    width: 610px; /* keep original explicit width */
    max-width: 100%;
    padding: 12px 10px;
    border: 2px solid var(--grey);
    border-radius: 4px;
    background-color: #f8f8f8;
    font-size: 16px;
    resize: vertical;
}

input[type="button"],
input[type="submit"] {
    padding: 5px 10px;
    margin: 15px 0;
    background-color: var(--teal);
    border: 3px solid var(--teal);
    border-radius: 3px;
    cursor: pointer;
    font-size: 14px;
    color: #fff;
    transition: border-color 0.2s, background-color 0.2s;
}

/* Team section */

.team h2 {
    color: var(--teal);
    text-align: center;
    font: 1.5em "Prime Regular", Arial, Helvetica, sans-serif;
    margin: 0.2em 0 0.1em;
}

.team h3 {
    color: var(--grey);
    text-align: center;
    font: 1.2em "Prime Light", Arial, Helvetica, sans-serif;
    margin: 0 0 0.6em;
}

/* Keep float model used by your HTML:
   <div class="team image"> + <div class="team description"> inside .row */
.team { float: left; }

.team.image {
    width: 33.333%;
    padding: 0 10px;
}
.team.description {
    width: 66.667%;
    padding: 0 10px;
    text-align: justify;
}

/* Ensure the headshot fills its 33% column and isn't clobbered by global rules */
.row .team.image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    padding: 0;
    object-fit: cover;
    box-sizing: border-box;
}

/* Quote under the image */
.team.image p {
    text-align: center;
    font-size: 0.9em;
    color: var(--grey);
    margin-top: 0.6em;
}

/* Social icons (LinkedIn / X) – keep them small regardless of other image rules */
.linkedin,
.linkedinlogo,
.twitter {
    width: 24px !important;
    height: auto !important;
    vertical-align: middle;
}

/* Optional: any image inside links on the team description kept to icon size */
.team.description a img {
    max-height: 24px;
    width: auto;
}

/* General typography helpers */

strong { color: var(--teal); }

/* Removed overly broad .row img / .column img width rules that caused issues.
   If you need small thumbnails elsewhere, scope them like:
   .thumbs.row img { width: 5em; height: auto; } */

/* Lists */

.column p { font-size: 0.8em; }

.column li,
.row li,
.row-center li {
    list-style-type: circle;
    padding-bottom: 0.8em;
    text-align: left;
    font-size: 1em;
}

.column li::marker,
.row li::marker,
.row-center li::marker { color: var(--teal); }

/* Video */

.column .video { width: 80%; }

/* Footer */

.footer {
    font-size: 0.8em;
    text-align: center;
    padding: 20px 0;
}

.footer a {
    color: var(--teal);
    text-decoration: none;
}

.footer a:hover {
    color: var(--grey);
    text-decoration: none;
}

/* Responsive */

@media (max-width: 1024px) {
    .menu { position: relative; top: 0; width: 100%; padding: 0 1em; }
}

@media (max-width: 768px) {
    .column { width: 100%; }
    .team.image,
    .team.description {
        float: none;
        width: 100%;
    }
    .row .team.image img {
        max-width: 480px;
        margin: 0 auto;
    }
    .contactLabel,
    .contactField { float: none; width: 100%; }
    textarea { width: 100%; }
}

/* --- APPROACH ICON SIZING (force small thumbnails) --- */
.row .column.image > img,
.row .column.image > img.icon,
.row .image > img,
.row.image > img,
.row-center.image > img,
.row-centre.image > img,
.row-center .column.image > img,
.row-centre .column.image > img,
.row-center .image > img,
.row-centre .image > img {
  width: 6em !important;
  max-width: 6em !important;
  height: auto !important;
  display: block;
  margin: 0 auto 10px;
  object-fit: contain;
}

/* Keep team headshots large even if they sit in a .row */
.row .team.image > img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
}
