/*
Theme Name: Ergovolt
Author: Webits
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  ergovolt
*/

@import "assets/css/reset.css" layer(reset);

/* ADDITIONAL RESET STYLES */
@layer reset {
  button {
    background: none;
    color: inherit;
    border: none;
    padding: 0;
    font: inherit;
    cursor: pointer;
    outline: inherit;
  }
}

@layer global {

  /** GLOBAL CSS PROPERTIES **/

  :root {
    --color-white: hsl(0, 0%, 100%);
    --color-gray-light: hsl(0, 0%, 95%);
    --color-gray: hsl(0, 0%, 85%);
    --color-gray-dark: hsl(0, 0%, 35%);
    --color-black: hsl(0, 0%, 0%);
    --color-yellow: rgb(243, 182, 27);
    --color-green: hsl(137, 62%, 32%);
    --color-red: hsl(0, 73%, 50%);

    --color-canvas: var(--color-white);
    --color-ink: var(--color-black);
    --color-accent: var(--color-yellow);
    --color-neutral: var(--color-gray);
    --color-neutral-light: var(--color-gray-light);
    --color-neutral-dark: var(--color-gray-dark);
    --color-positive: var(--color-green);
    --color-negative: var(--color-red);


    --font-family-display: 'Montserrat', serif;
    --font-family-body: 'Space Grotesk', sans-serif;
    --font-family-ui: 'Space Grotesk', sans-serif;

    --h1-size: clamp(2rem, 1.3696rem + 3.1522vw, 3.8125rem);
    --h2-size: var(--step-3);
    --h3-size: var(--step-1);

    --measure: 66ch;
    --section-padding: var(--space-2xl);

    --branded-image-y-offset: 5%;

    --point-offset: max(3rem, 3vw);

    --img-border-radius: 5cqi;

    --clip-up: polygon(0 0, 50% var(--point-offset), 100% 0, 100% 100%, 0 100%);
    --clip-down: polygon(0 0, 100% 0, 100% calc(100% - var(--point-offset)), 50% 100%, 0 calc(100% - var(--point-offset)));
    --clip-both: polygon(0 0, 50% var(--point-offset), 100% 0,  100% calc(100% - var(--point-offset)), 50% 100%, 0 calc(100% - var(--point-offset)));
    
/* @link https://utopia.fyi/type/calculator?c=320,16,1.2,1240,18,1.25,7,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */



    --step--2: clamp(0.6944rem, 0.6856rem + 0.0444vw, 0.72rem);
    --step--1: clamp(0.8333rem, 0.8101rem + 0.1159vw, 0.9rem);
    --step-0: clamp(1rem, 0.9565rem + 0.2174vw, 1.125rem);
    --step-1: clamp(1.2rem, 1.1283rem + 0.3587vw, 1.4063rem);
    --step-2: clamp(1.44rem, 1.3295rem + 0.5527vw, 1.7578rem);
    --step-3: clamp(1.728rem, 1.5648rem + 0.8161vw, 2.1973rem);
    --step-4: clamp(2.0736rem, 1.8395rem + 1.1704vw, 2.7466rem);
    --step-5: clamp(2.4883rem, 2.1597rem + 1.6433vw, 3.4332rem);
    --step-6: clamp(2.986rem, 2.5319rem + 2.2705vw, 4.2915rem);
    --step-7: clamp(3.5832rem, 2.9636rem + 3.0978vw, 5.3644rem);

    /* @link https://utopia.fyi/space/calculator?c=320,18,1.333,1240,20,1.25,7,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,&g=s,l,xl,12 */


    --space-3xs: clamp(0.3125rem, 0.3125rem + 0vw, 0.3125rem);
    --space-2xs: clamp(0.5625rem, 0.5408rem + 0.1087vw, 0.625rem);
    --space-xs: clamp(0.875rem, 0.8533rem + 0.1087vw, 0.9375rem);
    --space-s: clamp(1.125rem, 1.0815rem + 0.2174vw, 1.25rem);
    --space-m: clamp(1.6875rem, 1.6223rem + 0.3261vw, 1.875rem);
    --space-l: clamp(2.25rem, 2.163rem + 0.4348vw, 2.5rem);
    --space-xl: clamp(3.375rem, 3.2446rem + 0.6522vw, 3.75rem);
    --space-2xl: clamp(4.5rem, 4.3261rem + 0.8696vw, 5rem);
    --space-3xl: clamp(6.75rem, 6.4891rem + 1.3043vw, 7.5rem);

    /* One-up pairs */
    --space-3xs-2xs: clamp(0.3125rem, 0.2038rem + 0.5435vw, 0.625rem);
    --space-2xs-xs: clamp(0.5625rem, 0.4321rem + 0.6522vw, 0.9375rem);
    --space-xs-s: clamp(0.875rem, 0.7446rem + 0.6522vw, 1.25rem);
    --space-s-m: clamp(1.125rem, 0.8641rem + 1.3043vw, 1.875rem);
    --space-m-l: clamp(1.6875rem, 1.4049rem + 1.413vw, 2.5rem);
    --space-l-xl: clamp(2.25rem, 1.7283rem + 2.6087vw, 3.75rem);
    --space-xl-2xl: clamp(3.375rem, 2.8098rem + 2.8261vw, 5rem);
    --space-2xl-3xl: clamp(4.5rem, 3.4565rem + 5.2174vw, 7.5rem);


  }
  /** //SECTION GLOBAL LAYOUT GRID **/
  /* https://layout-breakouts-builder.vercel.app/ */

  .page-layout > *, .full-width > * {
    grid-column: content;
  }
  .page-layout, .full-width {
  --minimum-content-padding: clamp(1.333rem, 0.1119rem + 6.1057vw, 4.8438rem);
  
  /** TRACK WIDTHS **/
  --full-max-width: 1fr;
  --popout-max-width: 71.25rem;
  --content-max-width: 56rem;
  --inset-content-max-width: 42.5rem;
  
  /** TRACK SIZES **/
  --full: minmax( var(--minimum-content-padding), 1fr );
  --popout: minmax( 0, calc( ( var(--popout-max-width) - var(--content-max-width)) * 0.5 ) );
  --content: minmax( 0, calc( ( var(--content-max-width) - var(--inset-content-max-width)) * 0.5 ) );
  --inset-content: min( var(--inset-content-max-width), 100% - var(--minimum-content-padding) * 2 );
  
  display: grid;
  grid-template-columns: 
    [full-start]
    var(--full)
      [popout-start]
      var(--popout)
        [content-start]
        var(--content)
          [inset-content-start]
          var(--inset-content)
          [inset-content-end]
        var(--content)
        [content-end]
      var(--popout)
      [popout-end]
    var(--full)
    [full-end];
  }
  
  /** CLASSES **/
  .full { grid-column: full; }
  .full-start { grid-column-start: full-start; }
  .full-end { grid-column-end: full-end; }
  
  .popout { grid-column: popout; }
  .popout-start { grid-column-start: popout-start; }
  .popout-end { grid-column-end: popout-end; }
  
  .content { grid-column: content; }
  .content-start { grid-column-start: content-start; }
  .content-end { grid-column-end: content-end; }
  
  .inset-content { grid-column: inset-content; }
  .inset-content-start { grid-column-start: inset-content-start; }
  .inset-content-end { grid-column-end: inset-content-end; }
  
  .full-width { grid-column: full; }
  .full-content, .full-content-nopad { grid-column: full; }
  .full-content { padding-inline: var(--minimum-content-padding); }

/** // SECTION GLOBAL COMPONENTS **/

html {
  &:has(#nav-toggle[aria-expanded="true"]) {
    @media ( height < 48rem) { /* this is a magic number, maybe find a better way for the nav toggle to stay put and not have double scroll bars */
      overflow: hidden;
      scrollbar-width: none;
    }
  }
}
body {
  font-family: var(--font-family-body);
  font-size: var(--step-0);
  background-color: var(--color-canvas);
  color: var(--color-ink);
}

h1, h2, h3 {
  font-family: var(--font-family-display);
  font-weight: 700;
  text-wrap: pretty;
}

h1 {
  font-size: var(--h1-size);
}

h2 {
  font-size: var(--h2-size);
}

h3 {
  font-size: var(--h3-size);
}

p {
  text-wrap: balance;
}

a {
  color: inherit;
  text-decoration-color: var(--color-accent);
}

button, .btn {
  appearance: none;
  display: inline-block;
  inline-size: fit-content;
  padding-inline: var(--space-s);
  padding-block: var(--space-xs);
}

.btn {
  --color: var(--color-ink);
  --bg-color: color-mix(in oklab, var(--color-gray) 100%, var(--color-canvas) 20%);
  --border-color:var(--color-ink);
  --hover-color: var(--color-ink);
  --hover-bg-color: var(--color-gray);
  --hover-border-color: var(--color-ink);
  inline-size: fit-content;
  padding-inline: var(--space-s);
  padding-block: var(--space-xs);
  background-color: var(--bg-color);
  border-radius: 0.25em;
  font-size: var(--step--1);
  font-weight: 700;
  text-decoration: none;
  display: inline-block;
  cursor: pointer;
  transition: background-color 0.2s;
  border: 0;
  border-block-end: 0.2em solid var(--border-color);
  &:hover {
    background-color: var(--hover-bg-color);
    color: var(--hover-color);
    border-block-end-color: var(--hover-border-color);
  }
  &.btn-primary {
    --color: var(--color-ink);
    --hover-color: var(--color-ink);
    --bg-color: color-mix(in oklab, var(--color-accent) 100%, var(--color-canvas) 20%);
    --hover-bg-color: var(--color-accent);
  }
}

.prose > * + * {
  margin-block-start: var(--space-s);
}

.form {
  display: flex;
  flex-direction: column;
  gap: var(--space-m);
  
  label {
    input, textarea {
      margin-block-start: 0.5em;
      inline-size: 100%;
    }
  }
}

.image-block {
  container-type: inline-size;
  container-name: image section;
  img {
    border-radius: var(--img-border-radius);
    object-fit: cover;
  }
}

.branded-image {
  --branded-image-x-offset: 5%;
  --branded-image-y-offset: 5%;
  container-name: image;
  position: relative;
  padding-block-start: calc(var(--branded-image-y-offset) * 0.5);
  padding-inline-end: var(--branded-image-x-offset);
  padding-block-end: var(--branded-image-y-offset);

  &::before {
    border-radius: var(--img-border-radius);
    position: absolute;
    content: '';
    display: block;
    inset: 0;
    inset-inline-start: var(--branded-image-x-offset);
    inset-block-start: calc(var(--branded-image-y-offset) * 1.5);
    background-image: linear-gradient(180deg, #F3B71A 0%, #DCE7EF 100%);
    z-index: -1;
  }

  .img-wrap {
    position: relative;
    overflow: hidden;

    &::before, &::after {
      content: "";
      display: block;
      position: absolute;
      inline-size: 100%;
      block-size: 100%;
      border-radius: var(--img-border-radius);
      background: linear-gradient(180deg, #F3B71A 0%, #272325 100%);
      mix-blend-mode: color;
    }

    &::before {
      inset-inline-start: 25%;
      inset-block-end: 10%;
    }
    
    &::after {
      inset-inline-end: 40%;
      inset-block-start: 20%;
    }
  }

  .img-deco {
    position: absolute;
    inset-block-start: calc(var(--branded-image-y-offset) * -0.5);
    inset-block-end: calc(var(--branded-image-y-offset) * 0.2);
    inset-inline-start: calc(var(--branded-image-x-offset) * 0.5);
    inset-inline-end: calc(var(--branded-image-x-offset) * 0.2);
    background-repeat: no-repeat;
    background-image: url('/app/themes/ergovolt/assets/images/logo-part-right-outline.svg'),
                      url('/app/themes/ergovolt/assets/images/logo-part-left-outline.svg'),
                      url('/app/themes/ergovolt/assets/images/logo-part-right.svg'),
                      url('/app/themes/ergovolt/assets/images/logo-part-left.svg');
    background-size:30%,
                    15%, 
                    10%, 
                    10%;
    background-position:  100% 0%,
                          2% 100%,
                          calc(97% - var(--branded-image-x-offset)) calc(var(--branded-image-y-offset) + 8%),
                          0% calc(94% - var(--branded-image-y-offset));
    z-index: 1;
  }

  img {
    border-radius: var(--img-border-radius);
  }
}

input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"], textarea {
  padding-inline: var(--space-s);
  padding-block: var(--space-xs);
  border: 0.1rem solid var(--color-gray-light);
  background-color: color-mix(in srgb, var(--color-gray-light) 30%, transparent);
  border-block-end: 0.1em solid var(--color-ink);
  &:focus {
    outline: none;
    border-color: var(--color-accent);
  }
}

@keyframes reveal-left {

  0% {
    transform-origin: left;
    transform: scaleX(100%);
  }
  100% {
    transform-origin: left;
    transform: scaleX(0%);
  }
}
@keyframes appear-right {

  0% {
    opacity: 0;
    transform-origin: right;
    transform: scaleX(0%);
  }
  100% {
    opacity: 1;
    transform-origin: right;
    transform: scaleX(100%);
  }
}

@keyframes fade-in-up {
  0% {
    opacity: 0;
    transform: translateY(1rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

#global-header {
  --global-header-inline-padding: calc(var(--minimum-content-padding) / 2);
  scrollbar-color: var(--color-accent) var(--color-ink);
  position: fixed;
  z-index: 100;
  inset-block-start: 0;
  inset-inline: 0;
  color: var(--color-canvas);
  justify-content: space-between;
  padding-inline: var(--global-header-inline-padding);
  display: grid;
  align-items: start;
  grid-template-areas: "lang logo toggle"
                       "nav nav nav";
  grid-template-rows: auto 1fr;
  padding-block-start: var(--space-xs);
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  gap: var(--space-xs);
  overflow: visible;

  &::after {
    position: absolute;
    inset: 0;
    inset-inline-start: 50%;
    display: block;
    content: '';
    background-color: var(--color-accent);
    z-index: 0;
    pointer-events: none;
    transform: scaleX(0%);
  }

  
  &:has(#nav-toggle[aria-expanded="true"]) {
    background-color: var(--color-black);
    height: 100vh;
    overflow-y: auto;

    #nav-toggle {
      position: sticky;
      top: 0;
      background-color: var(--color-black);
    }

    #global-nav {
      animation: fade-in-up 0.6s cubic-bezier(0, 0, 0.2, 1);
    }

    @media (width >= 57rem) {
      &::before {
        content: "";
        position: fixed;
        inset-block: 0;
        inset-inline-start: 0;
        inline-size: 50%;
        background-image: linear-gradient(180deg, hsl(0, 0%, 20%) 0%, hsl(0, 0%, 0%) 100%);
        z-index: -1;
      }
      &::after {
        opacity: 0.2;
      }
    }
  }

  #language-select {
    transform: translateY(0.5rem);
    .headroom--not-top & {
      transition: all 0.2s ease;
    }
    .headroom--not-top:not(:has(#nav-toggle[aria-expanded="true"])) & {
      opacity: 0;
      pointer-events: none;
    }
  }
}

#language-select {
  --select-border: currentColor;
  --select-focus: blue;
  --select-arrow: var(--select-border);
  text-align: center;
  grid-area: lang;
 appearance: none;
 color: inherit;
 background-color: transparent;
 border: 0.1rem solid var(--select-border);
 margin: 0;
 font-family: inherit;
 font-size: inherit;
 cursor: pointer;
 line-height: 1.1;
 outline: none;
 min-width: 8ch;
 font-size: var(--step--1);
 padding-inline: 0.5em;
 padding-block: 0.25em;
 border-radius: 1em;
 accent-color: var(--color-accent);
 display: grid;
 grid-template-areas: "select";
 grid-area: select;
 align-items: center;
 option {
   color: var(--color-ink);
   text-align: center;
   padding-inline: 0;
 }
 &::after {
  content: "";
  width: 0.8em;
  height: 0.5em;
  background-color: white;
  clip-path: polygon(100% 0%, 0 0%, 50% 100%);
  grid-area: select;
  justify-self: end;
 }
}

#global-header__logo {
  grid-area: logo;
  display: block;
  max-width: min(40vw, 15rem);
  align-self: end;
  margin-block-start: 5%;
  position: relative;
  z-index: 2;
  .headroom--not-top & {
    transition: all 0.2s ease;
  }
  .headroom--not-top:not(:has(#nav-toggle[aria-expanded="true"])) & {
    opacity: 0;
    pointer-events: none;
  }
}

#nav-toggle {
  --size: 3rem;
  grid-area: toggle;
  margin-inline-start: auto;
  background-color: var(--color-ink);
  border-radius: 50%;
  padding: 0.5em;
  inline-size: var(--size);
  aspect-ratio: 1;
  &::before {
    width: 100%;
    aspect-ratio: 1;
    content: "";
    display: block;
    background-image: url('/app/themes/ergovolt/assets/images/toggle.svg');
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
  }
}

#global-nav:not([hidden]) {
  grid-area: nav;
  display: grid;
  gap: var(--space-l);
  color: var(--color-canvas);
  padding-block-end: var(--space-l);
  @media (orientation: portrait) {
    padding-block-end: 7rem;
  }
  grid-template-areas: "home"
                        "primary"
                        "services"
                        "contact"
                        "social";
  & > a {
    grid-area: home;
    font-size: var(--step--1);
    color: inherit;
    text-decoration-color: var(--color-accent);
    font-weight: 200;
  }
  @media (width >= 57rem) {
    grid-template-areas:  "home services"
                          "primary services"
                          "contact services"
                          "social services";
    align-items: start;
    align-content: start;
    width: min(80rem, 100%);
    margin-inline: auto;
  }
}

.link-styled {
  text-decoration: none;
  font-weight: 500;
  line-height: 1ex;
  &::before, &::after {
    content: "";
    display: inline-block;
    width: 1em;
  }
  &::before {
    height: 0.075rem;
    margin-block-end: 0.2em;
    margin-inline-end: 0.4em;
    background-color: currentColor;
  }
  &::after {
    height: 1ex;
    margin-inline-start: 0.4em;
    background-image: url("/app/themes/ergovolt/assets/images/arrow-right.svg");
    background-repeat: no-repeat;
    background-position: center;
    transition: all 0.2s ease-out;
  }
  &:hover::after {
    transform: translateX(0.2em);
  }
}

#primary-nav {
  grid-area: primary;
  display: grid;
  gap: var(--space-xs);
  list-style: none;
  padding-inline-start: 0;
  @media (width < 57rem) {
    padding-inline-start: var(--global-header-inline-padding);
    margin-inline: calc(var(--global-header-inline-padding) * -1);
    background-image: linear-gradient(0deg, hsl(0, 0%, 20%) 0%, hsl(0, 0%, 0%) 100%);
    padding-block-end: var(--space-l);
  }
  a {
    display: block;
    color: var(--color-ink);
    background-color: var(--color-accent);
    font-family: var(--font-family-display);
    text-decoration: none;
    width: fit-content;
    padding-inline: 0.1em;
    line-height: 1.3;
    font-weight: 800;
    font-size: clamp(2rem, 1.3696rem + 3.1522vw, 3.8125rem);
  }
}

#services-nav__section {
  grid-area: services;
  display: grid;
  gap: var(--space-s);
}

#services-nav__title {
  color: var(--color-gray-dark);
  text-transform: uppercase;
  font-size: var(--step--1);
  font-weight: 700;
  letter-spacing: 0.05em;
}

#services-nav {
    list-style-type: none;
    padding-inline: 0;
    a {
      display: block;
      padding-block: 0.2em;
      color: inherit;
      text-decoration-color: var(--color-accent);
      font-size: var(--step-1);
      font-weight: 300;
    }
}

#contact-details {
  grid-area: contact;
  font-size: var(--step--1);
  font-weight: 200;
  ul {
    list-style-type: none;
    padding-inline: 0;
  }
  a {
    display: block;
    padding-block: 0.5em;
    color: inherit;
    color: inherit;
    text-decoration: none;
  }
}

#global-nav-social {
  grid-area: social;
  ul {
    list-style: none;
    padding-inline: 0;
    display: flex;
    gap: 1em;
  }
  img {
    width: 1.5em;
    aspect-ratio: 1;
  }
}



#hero {
  --content-clip: var(--clip-up);
  display: grid;
  grid-template-areas: "hero";
  background-color: var(--color-ink);
  place-items: center;
  clip-path: var(--clip-down);
  color: var(--color-canvas);
  position: relative;
  min-height: 60vh;
  inline-size: 100%;
  aspect-ratio: 1;
  @media (orientation: landscape) {
    aspect-ratio: 16 / 4;
  }
  
  &>* {
    grid-area: hero;
    clip-path: var(--content-clip);
  }
  #hero__bg {
    position: absolute;
    inset:0;
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
    object-position: center;
    z-index: -1;
  }
  &::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(180deg, hsl(0, 0%, 20%) 0%, hsl(0, 0%, 0%) 100%);
    z-index: -1;
    clip-path: var(--content-clip);
  }
  &::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('/app/themes/ergovolt/assets/images/cross-pattern.svg');
    background-repeat: space;
    mask-image: linear-gradient(180deg, black 0%, transparent 100%);
    mask-mode: alpha;
    opacity: 0.1;
    z-index: 2;
    clip-path: var(--content-clip);
  }
  &:has(#hero__bg) {
    min-height: calc(80vh + var(--point-offset));
    @media (orientation: landscape) {
      aspect-ratio: 16 / 6;
    }
    &::before {
      content: "";
      position: absolute;
      inset: 0;
      background-color: var(--color-black);
      mix-blend-mode: multiply;
      opacity: 0.6;
      z-index: 2;
      clip-path: var(--content-clip);
    }
    #page-title {

      &::before {
        position: absolute;
        content: "";
        inset: 0;
        opacity: 0.6;
        background: radial-gradient(163.65% 63.5% at 50% 50%, rgba(0, 0, 16, 0.00) 0%, #000010 100%);
        mix-blend-mode: multiply;
        z-index: -1;
        clip-path: var(--content-clip);
      }
      &::after {
        position: absolute;
        content: "";
        inset: 0;
        background: radial-gradient(163.86% 64.01% at 50% 50%, hsla(214, 40%, 24%, 0) 0%, hsla(214, 40%, 24%, 0.5) 73%, hsl(214, 40%, 24%, 1) 100%);
        mix-blend-mode: color;
        z-index: 0;
        clip-path: var(--content-clip);
  
      }
    }
  }
  #page-title {
    clip-path: none;
    padding-block: var(--space-3xl);
    z-index: 3;
    padding-inline: var(--minimum-content-padding);
    line-height: 1.3;
    text-align: center;
    text-wrap: pretty;

    a {
      display: block;
      text-decoration: none;
      font-size: var(--step--1);
      padding: 0em 0.3em;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      font-family: var(--font-family-display);
      font-weight: bold;
      margin-block-end: 1em;
      animation: fade-in-up 0.6s cubic-bezier(0, 0, 0.2, 1);
      position: relative;
      z-index: 5;

      &::after {
        content:"/";
        display: inline-block;
        padding-inline-start: 0.5em;
      }
    }


    .text {
      position: relative;
      z-index: 5;
      display: block;
      animation: fade-in-up 0.6s cubic-bezier(0, 0, 0.2, 1);
    }
  }
}

.cta-section__container {
  container-type: inline-size;
}

.cta-section {
  background-image: linear-gradient(-90deg, color-mix(in srgb, var(--color-gray-light), transparent 100%) 0%, var(--color-gray-light) 100%);
  padding: var(--space-l);
  display: flex;
  flex-direction: column;
  gap: var(--space-s);
  border-radius: 0.5rem;
  h2 {
    font-size: var(--step-0);
  }
  @container (width <= 57rem) {
    margin-inline: calc(var(--minimum-content-padding) * -1);
    padding-inline: var(--minimum-content-padding);
    border-radius: 0;
  }
  #global-footer & {
    margin-block-end: calc(var(--space-2xs) * -1);
    position: relative;
    z-index: 2;
  }
}

#global-footer-nav__outer {
  background-color: var(--color-ink);
  color: var(--color-canvas);
}

#global-footer-nav__container {
  container-type: inline-size;
  container-name: nav-container;
}

#global-footer-nav {
  container-type: inline-size;
  container-name: nav;
  padding-block: var(--section-padding);
  font-size: 0.875rem;
  display: grid;
  column-gap: var(--space-l);
  row-gap: var(--space-l);

  grid-template-areas: "info"
                        "services"
                        "contact"
                        "social"
                        "logo";



  #global-footer-info {
    grid-area: info;
  }

  #global-footer-services {
    grid-area: services;
  }

  #global-footer-contact {
    grid-area: contact;
  }

  #global-footer-social {
    grid-area: social;
  }

  #footer-logo {
    max-width: min(60cqi, 15rem);
    margin-inline: auto;
    margin-block-start: var(--space-xl);
    grid-area: logo;
  }
  h3 {
    font-size: 0.875rem;
    padding-block: var(--space-3xs);
  }
  ul {
    list-style-type: none;
    padding-inline-start: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3xs);
    #global-footer-social & {
      flex-direction: row;
    }
  }
  a {
    text-decoration: none;
    display: block;
    padding-block: var(--space-3xs);
  }

  @container (width > 40rem) {
    grid-template-areas: "info services contact"
                          "social services contact"
                          "logo logo logo";
  }

  @container (width > 50rem) {
    grid-template-areas: "info services contact logo"
                          "social services contact logo";
    #footer-logo {
      margin-block-start: 0;
    }
      
  }
 
}

#footer-bottom {
  padding-block: var(--space-s);
  font-size: 0.875rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-m);
  row-gap: var(--space-s);
  text-align: center;
}

.scroll-down-arrow {
  --color: var(--color-accent);
  block-size: calc(var(--section-padding) * 2);
  inline-size: 0.1rem;
  background-color: var(--color);
  position: relative;
  margin-inline: auto;
  z-index: 2;
  margin-block-start: calc(var(--section-padding) * -1);
  &::before {
    --size: 0.5rem;
    position: absolute;
    inset-block-end: 0;
    inset-inline-start: 50%;
    content: "";
    display: block;
    width: var(--size);
    aspect-ratio: 1;
    border: 0.1rem solid var(--color);
    transform: translate(-50%) rotate(45deg);
    border-width: 0 0.1rem 0.1rem 0;
  }
  #hero:not(:has(#hero__bg)) + & {
    display: none;
  }
}

#page-content__outer {
  position: relative;
}

#page-content__container {
  container-type: inline-size;
  container-name: pageContent;
}


#page-content {
  position: relative;


  .intro {
    font-size: var(--step-2);
    line-height: 1.3;
    text-align: center;
    margin-block-end: var(--space-l);
    grid-column: content;
  }

  padding-block: var(--section-padding);

  & > * + * {
    margin-block-start: var(--space-m);
  }

  & > * {
    grid-column: inset-content;
  }

  h1, h2, h3 {
    margin-block-start: var(--space-l);
  }

  .image-block {
    margin-block-start: max(calc(var(--branded-image-y-offset) * -0.5), var(--space-m));
    margin-block-end: var(--space-m);
  }

  img {
    aspect-ratio: var(--aspect-ratio);
  }

  p {
    text-wrap: unset;
  }

  .more-links {
    margin-block-start: var(--space-l);
  } 

  .text-block > * + * {
    margin-block-start: var(--space-m);
  }

  .callout {
    grid-column: content;
    grid-auto-rows: auto;
    display: grid;
    grid-template-columns: var(--space-xl) 1fr;
    font-size: var(--step-2);
    border-radius: 2rem;
    padding: var(--space-xl);
    padding-inline-start: 0;
    background-image: linear-gradient(-90deg, color-mix(in srgb, var(--color-gray-light), transparent 100%) 0%, var(--color-gray-light) 100%);

    * + & {
      margin-block-start: var(--space-2xl);
    }

    &:has(+*){
      margin-block-end: var(--space-xl);
    }

    * {
      grid-column: 2;
    }

    &::before {
      content: "";
      display: block;
      grid-column: 1;
      inline-size: 0.5em;
      block-size: 4em;
      background-color: var(--color-ink);
      transform: skewX(-20deg) translateX(-0.5rem) translateY(calc((var(--space-xl) * -1) - 0.5rem));
    }

    &::after { 
      content: "”" ;
      line-height: 0;
      display: block;
      grid-column: 2;
      margin-inline-start: auto;
      color: var(--color-accent);
      font-size: 4em;
      font-family: var(--font-family-display);
      font-weight: bold;
      align-self: end;
      transform: translateX(calc(var(--space-xl) * 0.5)) translateY(calc(var(--space-xl) + 0.2em));
    }

  }
}

#page-content__deco {
  container-type: inline-size;
  grid-column: popout;
  --deco-offset: -30cqi;
  --deco-size: min(20cqi, calc(50vw - 50cqi));
  @media (width >= 87.5rem) {
    &::before, &::after {
      pointer-events: none;
      content: '';
      position: absolute;
      inset-block: var(--deco-offset);
      inset-inline: 0;
      background-image: url(/app/themes/ergovolt/assets/images/side-deco.svg);
      background-repeat: no-repeat;
      background-size: var(--deco-size) auto;
      background-position: calc(var(--deco-size) * -0.3) 0;
      z-index: 0;
    }
    &::after {
      transform: scaleX(-1);
      background-position-y: 100%;
    }
  }
}

.more-links {
  h2 {
    color: var(--color-gray-dark);
    text-transform: uppercase;
    font-size: var(--step--1);
    font-weight: 700;
    letter-spacing: 0.05em;
    margin-block-end: 0.5em;
  }
  ul {
    list-style-type: none;
    padding-inline-start: 0;
  }
}

} /** END GLOBAL LAYER **/

@layer utilities {
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
  }
}