/*
Theme Name: FT Circular Consulting 2026
Theme Author: Djiwi Leon Michael
*/


:root {
    --light : #FEDD93;
    --dark : #3E4532;
    --mid : #B2C194;
    --white : #F3FFFA;
    --black : #1e1e1e;
    --accent : rgb(255, 81, 0);
    --contour : 2pt;
}

*, *:after, *:before {
    box-sizing: border-box;
    width: auto;
    height: auto;
    position: relative;
    transition: .3s ease-in-out;
    color: inherit;
    font-family: inherit;
    z-index: 9;
}

.fg {
    z-index: 90;
}

.bg {
    z-index: 5;
}

::placeholder {
    opacity: .45;
    font-style: italic;
}

.talc {
    text-align: center;
}

img.fill {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

div img.fill {
    border-radius: 3em;
}

img.fill.float {
    position: absolute;
    opacity: .1;
}

img.fill.in {
    position: absolute;
    filter: brightness(.35);
    top: 50%;
    transform: translateY(-50%);
}

img.fit {
    height: 100%;
    width: 100%;
    object-fit: contain;
}

.no {
    display: none !important;
}

ul:not(.list) {
    padding: 0;
    list-style: none;
}


h1, h2, h3, h4, h5, h6, h7 {
    font-weight: 800;
    margin: 0;
    line-height: 1.1;
    text-transform: uppercase;
}
h1 {
    font-size: 6em;
}
h2 {
    font-size: 4em;
    line-height: 1;
}

h3 {
    font-size: 3em;
}

h4 {
    font-size: 2.25em;
}

h5 {
    font-size: 1.75em;
    margin: 0 0 1vmax;
}

h6 {
    font-size: 1.25em;
    font-weight: 600;
    margin: 0.25em 0 0;
}

h7 {
    font-weight: 800;
    font-size: large;
}

p {
    line-height: 1.35;
    font-size: .9em;
}

a {
    text-decoration: none;
}

*[class*="flex"] {
    display: flex;
}

.flex-col {
    flex-direction: column;
}

.flex-wr {
    flex-wrap: wrap;
}

.all-cen {
    align-items: center;
    justify-content: center;
}

.a-end {
    align-items: flex-end;
}

.a-cen {
    align-items: center;
}

.a-nor {
    align-items: normal;
}

.jst-sb {
    justify-content: space-between;
}

.jst-cen {
    justify-content: center;
}

.jst-end {
    justify-content: end;
}


/*  Grid Parametres  */

*[class*="grid"] {
    display: grid;
}

.v-col {
    grid-template-columns: repeat(5, 1fr);
}

.iv-col {
    grid-template-columns: repeat(4, 1fr);
}

.iii-col {
    grid-template-columns: repeat(3, 1fr);
}

.ii-col {
    grid-template-columns: repeat(2, 1fr);
}

.span-all {
    grid-column: 1 / -1;
}
.span-ii {
    grid-column: span 2;
}
.span-iii {
    grid-column: span 3;
}
.span-iv {
    grid-column: span 4;
}
.span-v {
    grid-column: span 5;
}
.span-vi {
    grid-column: span 6;
}


button {
    cursor: pointer;
    border:none;
}

.gpone {
    gap: 1vmax;
}

.gptwo {
    gap: 2vmax;
}

.gpthree {
    gap: 4vmax;
}

.gpfour {
    gap: 7vmax;
}

.bg-dk {
    background: var(--dark);
    color: var(--white);
    border: solid var(--contour) var(--dark);
}
a.bg-dk:hover,
button.bg-dk:hover,
a.bg-dk:focus,
button.bg-dk:focus {
    background: var(--accent);
    color: var(--white);
    border: solid var(--contour) var(--accent);
}

.bg-blk {
    background: var(--black);
    color: var(--white);
    border: solid var(--contour) var(--black);
}
a.bg-blk:hover,
a.bg-blk:focus,
button.bg-blk:focus,
button.bg-blk:hover {
    background: var(--accent);
    color: var(--black);
    border: solid var(--contour) var(--accent);
}

.bg-wh {
    background: var(--white);
    color: var(--black);
    border: solid var(--contour) var(--white);
}
a.bg-wh:hover,
a.bg-wh:focus,
button.bg-wh:focus,
button.bg-wh:hover {
    background: var(--light-green);
    color: var(--black);
    border: solid var(--contour) var(--light-green);
}

.bg-acc {
    background: var(--accent);
    color: var(--white);
    border: solid var(--contour) var(--accent);
}
a.bg-acc:hover,
a.bg-acc:focus,
button.bg-acc:focus,
button.bg-acc:hover {
    background: var(--white);
    color: var(--accent);
    border: solid var(--contour) var(--white);
}

.bg-dim {
    background: var(--mid);
    color: var(--dark);
    border: solid var(--contour) var(--mid);
}
a.bg-dim:hover,
a.bg-dim:focus,
button.bg-dim:focus,
button.bg-dim:hover {
    background: var(--dark);
    color: var(--white);
    border: solid var(--contour) var(--dark);
}

.bg-lgt {
    background: var(--light);
    color: var(--dark);
    border: solid var(--contour) var(--light);
}
a.bg-lgt:hover,
a.bg-lgt:focus,
button.bg-lgt:focus,
button.bg-lgt:hover {
    background: var(--accent);
    color: var(--white);
    border: solid var(--contour) var(--accent);
}

.bg-off {
    background: #d9d9d9;
    color: var(--black);
    border: solid var(--contour) #d9d9d9;
}
button.bg-off:hover {
    background: var(--light-green);
    color: var(--white);
    border: solid var(--contour) var(--light-green);
}


.cl-dk {
    color: var(--dark);
}
.cl-blk {
    color: var(--black);
}
.cl-wh {
    color: var(--white);
}
.cl-dim {
    color: var(--mid);
}
.cl-lgt {
    color: var(--light);
}
.cl-acc {
    color: var(--accent);
}

*[class*="-sh"] {
    box-shadow: 0.25vmin .35vmin .75vmin rgba(0 0 0 / .15);
}

*[class^="butt-link"] {
    width: fit-content;
    white-space: nowrap;
    border-radius: 50em;
    font-weight: 600;
    text-transform: capitalize;
    padding: 1.5vmin 2vmax;
    display: inline-flex;
    align-items: center;
    font-size: .85em;
}

a[class*="bord"],
button[class*="bord"] {
    background: transparent;
    border: solid var(--contour);
    font-weight: 700;
}

.butt-link img {
    display: inline-block;
    margin: 0 1em 0 0;
    vertical-align: middle;
    height: 2vmin;
}

button[class^="butt-link"] {
    padding: 2vmin 2vmax;
    width: max-content;
}

a[class*="bord"]:hover,
button[class*="bord"]:hover {
    color: var(--accent);
}


/*      Font Sizes      */


.font-xxxl {
    font-size: 3rem;
    font-size: xxx-large;
}

.font-xxl {
    font-size: xx-large;
}

.font-xl  {
    font-size: x-large;
}

.font-l
a[class^="butt-link"],
button[class^="butt-link"]  {
    font-size: large;
}

.font-m
a[class^="butt-link"] {
    font-size : medium;
}

.font-s {
    font-size: small;
}

.font-sm {
    font-size: smaller;
}

.font-ss {
    font-size: small;
}



html body {
    font-family: 'poppins', 'arial', sans-serif;
    margin: 0;
    padding: 0;
    border: none !important;
    overflow-x: hidden;
    color: var(--black);
}

.cont-wide {
    width: 90%;
    margin: 10vh auto;
}

.cont-mi-wide {
    width: 80%;
    margin: 15vh auto;
}

.cont-si-wide {
    width: 70%;
    margin: 10vh auto;
}

.cont-med {
    width: 60%;
    margin: 10vh auto;
}




/*---------------*/

header#header {
    position: fixed;
    width: 80%;
    z-index: 999;
    left: 50%;
    transform: translateX(-50%);
    top: 5vh;
    overflow: hidden;
    background: var(--white);
    border-radius: 1em;
    box-shadow: .3em .6em 1.4em #00000022;
}

header#header a {
    font-weight: 500;
    font-size: .9em;
    white-space: nowrap;
}
header#header main {
    gap: 5em;
}
header#header main hr {
    height: 1.2em;
    width: .1em;
    border: 0;
    background: var(--mid);
}
header#header a:hover {
    color: var(--accent);
}

a#header-logo {
    padding: 1em;
}

a#header-logo img {
    height: 100%;
}
a#header-logo:hover img {
    opacity: .5;
}

button#hire-button {
    background: linear-gradient(45deg, var(--dark), var(--mid));
    border-radius: .85em;
    padding: 1.25em 2em;
    margin: 0 0 0 2em;
    color: var(--white);
}
button#hire-button:hover, button#hire-button:focus {
    filter: hue-rotate(45deg) contrast(1.5);
}



/*----------------------*/

main#home-splash {
    min-height: 100vh;
    background-attachment: fixed;
    background-size: cover;
    background-position: center center;
}
main#home-splash::after {
    content: '';
    position: absolute;
    width: 100%;
    left: 0;
    bottom: 0;
    height: 75%;
    background: linear-gradient(0deg, black, transparent);
    opacity: .85;
}
main#home-splash div {
    z-index: 999;
}
main#home-splash p {
    margin: 0;
}
main#home-splash div div {
    width: 70%;
}
main#home-splash footer {
    gap: 1em;
}


/*---------------------*/

header.titling h3 {
    font-size: 3.5em;
    margin: 0 0 .2em;
    font-weight: 900;
}
header.titling h2 {
    font-weight: 900;
    font-size: 4.5em;
}
header.titling h1 {
    line-height: 1;
    font-weight: 900;
    font-size: 5.5em;
}
header.titling i {
    line-height: 1.2;
    font-size: .9em;
    font-weight: 500;
}

section#home-pres {
    margin: 15vh auto 25vh;
}

section#home-pres article {
    align-items: normal;
    gap: 5em;
}
section#home-pres article > div {
    width: 40%;
}
section#home-pres article > aside {
    width: 60%;
    padding: 5em 0;
}
ul.list {
    opacity: .65;
    font-size: .9em;
    line-height: 1.2;
    gap: 1em;
    display: flex;
    flex-direction: column;
    white-space: nowrap;
    margin: 1em 1em 0 0;
}


/*----------------*/

section#home-process header > * {
    width: 50%;
}
section#home-process header > div {
    aspect-ratio: 3;
}
section#home-process ul {
    flex-direction: row;
    border-top: solid .45em;
    margin: 5em 0 0;
    padding: 0 3em 3em;
    gap: 4em;
    display: flex;
}
section#home-process ul div,
ul#process-steps div {
    border-radius: 50%;
    aspect-ratio: 1;
    height: 2.5em;
    background: var(--white);
    border: solid 0.85em;
    transform: translateY(-1.5em);
    align-self: center;
}
section#home-process ul header {
    aspect-ratio: 1;
    background: white;
    overflow: hidden;
    border-radius: 1.75em;
}
section#home-process ul li footer {
    display: flex;
    gap: .5em;
    padding: 1em 1em 0;
    font-weight: 600;
}
section#home-process ul li footer p {
    margin: 0;
}
section#home-process ul li {
    width: 15%;
}


/*----------------*/

.two article {
    min-width: 47.5%;
}
section#home-why ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}
section#home-why footer {
    margin-top: 2em;
}
.two hr {
    border-width: 1pt;
    scale: .7;
    transform: translateY(-23%);
}


/*----------------*/

.top-banner {
    margin: 20vh 0 10vh;
    overflow: hidden;
}
section#page-desc {
    margin-top: 0vh;
}
section#page-desc article div,
section#service-cta aside > div {
    aspect-ratio: 2.5;
    overflow: hidden;
}
section.bg-dim {
    font-weight: 500;
}
section#service-cta footer,
section#processhead footer footer {
    margin-top: 3em;
}



/*-----------------------*/


section#case-list main {
    gap: 5vmax 2vmax;
}

section#case-list footer b {
    font-size: .8em;
    text-transform: capitalize;
}
section#case-list button img {
    height: 1.25em;
}
section#case-list button {
    display: flex;
    align-items: center;
    padding: 1em 2em;
    border-radius: .5em;
    gap: 1em;
}
section#case-list button:hover {
    color: var(--white);
    background: var(--accent);
}
section#case-list button:hover img {
    filter: invert(1) brightness(1.5);
}
section#case-list h5 {
    font-size: 1.5em;
    text-transform: unset;
    line-height: 1.2;
    margin: 0;
}
section#case-list main > * > header img {
    border-radius: 2em;
}
section#case-list main > * > header {
    overflow: hidden;
    aspect-ratio: 1.5;
}
section#case-list main > * > div {
    padding: 1.5em 1em 0;
}
section#case-list main > * > footer {
    padding: 0 0 0 1.25em;
    align-items: center;
}


footer#pagination p:before {
    content: ".....";
    font-size: 2em;
    line-height: .5;
    margin: 0 1em;
    letter-spacing: .5em;
}
footer#pagination a {
    padding: 1em 1.2em;
    border: solid 1.5pt;
    border-radius: .8em;
    line-height: 1;
    color: var(--dark);
}
footer#pagination a:hover {
    color: var(--accent);
}
footer#pagination a.active {
    border-color: var(--dark);
    background: var(--dark);
    color: var(--white) !important;
    font-weight: 600;
}



/*-----------------------*/


section#service-container main article footer main {
    width: 100%;
}
section#service-container main article footer {
    padding: 0 2em 0vh;
}

section#service-container > main {
    flex-grow: 1;
}
section#service-container > aside {
    white-space: nowrap;
    width: min-content;
}
section#service-container main article > div {
    margin: 15vh 0 0;
    width: 100%;
    overflow: hidden;
    aspect-ratio: 2;
}
section#service-container main article footer h4 {
    max-width: 70%;
}


.sticky {
    position: sticky;
    top: 20vh;
    align-self: flex-start;
}


/*-----------------------*/


section.fadesection main {
    width: 50%;
    padding: 15vh 0;
}
section.fadesection img.fill.in {
    filter: brightness(.75);
    z-index: 1;
}
section.fadesection:before {
    position: absolute;
    z-index: 2;
    content: '';
    height: 100%;
    width: 75%;
    left: 0;
    top: 0;
    background: linear-gradient(90deg, var(--dark) 30%, transparent);
    opacity: .9;
}
section.fadesection {
    color: var(--white);
}

/*--------------------*/

section#processhead header div {
    overflow: hidden;
    aspect-ratio: 1.85;
}
ul#process-steps {
    gap: 5vmax;
    flex-wrap: wrap;
}
ul#process-steps li {
    width: 27.5%;
    flex-shrink: 0;
}
ul#process-steps li header img {
    border-radius: 2em;
}
ul#process-steps li footer {
    gap: .5em;
    align-items: start;
    padding: 1.5em;
}
ul#process-steps h7 {
    line-height: 1.2;
}

ul#process-steps p {
    margin: 0.5em 0 0;
    font-size: 90%;
    opacity: .75;
}
ul#process-steps footer h7:after {
    content: '.';
}


ul#process-steps:before {
    content: '';
    position: absolute;
    width: 100%;
    height: .5em;
    background: var(--dark);
    left: 0;
    top: calc(50% - 1.75em);
    z-index: 2;
}

ul#process-steps li:nth-child(n+4) {
    flex-direction: column;
    margin-top: calc(-1 * (5vmax + 2.5em));
}
ul#process-steps li {
    width: 27.5%;
    flex-shrink: 0;
    flex-direction: column-reverse;
    z-index: 3;
}



/*----------------*/

section#who-for main > header div {
    margin-top: 7.5vh;
    aspect-ratio: 2;
}
section#who-for main > header {
    min-width: 40%;
}
section#who-for main aside > header {
    flex-grow: 1;
}
section#who-for aside {
    padding-bottom: 10vh;
}
section#entredu {
    margin-top: -25vh;
}
section#entredu div {
    aspect-ratio: 2;
    overflow: hidden;
    margin: 0 0 5vh;
}
section#entredu article:last-child {
    padding-top: 25vh;
}
section#vision {
    padding-bottom: 2em;
}



section#founder > div {
    overflow: hidden;
    aspect-ratio: 1;
    border-radius: 50%;
    width: 50vh;
    flex-shrink: 0;
    align-self: start;
    box-shadow: 1em 1em 5em #00000066;
}
section#founder > main {
    padding: 20vh 0 0 5vw;
}
section#founder > main h7 {
    font-size: 2em;
    margin: 0 0 2vh;
    display: block;
}
section#founder > main h1 {
    line-height: .8;
    font-weight: 900;
    font-size: 6.5em;
    margin: 0 0 5vh;
}
section#founder > main footer {
    align-items: start;
}
section#founder > main footer aside {
    margin-top: 1em;
    font-style: italic;
}
section#founder {
    margin-top: 25vh;
}



/*-----------------------*/

section#contact aside > form {
    gap: 1.5vmax;
    padding: 0 1em;
}

.input-field {
    display: flex;
    flex-direction: column;
}
.input-field label {
    font-size: small;
    font-weight: 600;
    padding: 0 .5em .5em;
}
.input-field input, .input-field textarea {
    padding: 1.25em;
    border-radius: .5em;
    border: solid 1pt var(--dark);
}
section#contact aside > div {
    aspect-ratio: 2;
    margin: 0 0 10vh;
}
.input-field textarea {
    height: 20vh;
}
section#contact form button.butt-link {
    width: 100%;
    justify-content: center;
    border-radius: 1em;
    text-transform: uppercase;
    padding: 1.75em;
}


.on-mob {
    display: none !important;
}


@media screen and (max-width:800px) and (orientation: portrait) {
.no-mob {
    display: none !important;
}
.flex-mcr {
    flex-direction: column-reverse;
}

}

@media screen and (max-width:1100px) and (orientation: landscape) {

}