/*
Theme Name: iBUILDiT Child
Theme URI: https://iplanit.ie
Description: Child theme for iBUILDiT
Author: iPLANiT Ltd.
Author URI: https://iplanit.ie
Template: iBUILDiT
Version: 1.0.3
Text Domain: ibuildit-child
*/

/* ==================================================
   Fonts
================================================== */

:root{

  --ib-font: "Source Sans 3", system-ui, sans-serif !important;
  --ib-heading-font: "Bricolage Grotesque", "Source Sans 3", system-ui, sans-serif;

}

/* ==================================================
   Base
================================================== */

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

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    background:var(--ib-bg);
    color:var(--ib-text);

    font-family:var(--ib-font);
    font-size:var(--ib-font-size);
    line-height:1.6;

    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

img{
    display:block;
    max-width:100%;
    height:auto;
}

svg{
    display:block;
}

a{
    color:inherit;
    text-decoration:none;
    transition:.2s;
}

button,
input,
textarea,
select{
    font:inherit;
}

button{
    cursor:pointer;
}



/* ==================================================
   Layout
================================================== */

.row{
    width:100%;
}

.container,
.inner{
    width:min(100%, var(--ib-container));
    margin-inline:auto;
}

/* ==================================================
   Typography
================================================== */

h1,
h2,
h3,
h4,
h5,
h6{
    margin:0;

    font-family:var(--ib-heading-font);

    font-weight:700;
    line-height:1.15;
}

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

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

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

h4{
    font-size:var(--ib-h4-size);
}

h5{
    font-size:var(--ib-h5-size);
}

h6{
    font-size:var(--ib-h6-size);
}

p{
    margin:0;
}

/* ==================================================
   Eyebrow
================================================== */

.eyebrow{
    margin:0 0 12px;

    font-size:13px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;

    color:var(--ib-secondary);
}

.eyebrow.on-dark{
    color:var(--ib-primary);
}

/* ==================================================
   Buttons
================================================== */

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    padding:15px 30px;

    border:none;
    border-radius:5px;

    font-weight:700;

    transition:.2s;
}

.btn:hover{
    transform:translateY(-2px);
}

.btn-primary{
    background:var(--ib-primary);
    color:#fff;
}

.btn-primary:hover{
    opacity:.9;
}

.btn-secondary{
    background:rgba(255,255,255,.08);
    color:#fff;

    border:1px solid rgba(255,255,255,.4);

    backdrop-filter:blur(6px);
}

.btn-secondary:hover{
    background:rgba(255,255,255,.18);
}

/* ==================================================
   Sections
================================================== */

/*.section{
    padding:
        var(--ib-pad-top)
        56px
        var(--ib-pad-bottom);
}*/

.section{
    padding-top: var(--ib-pad-top);
    padding-bottom: var(--ib-pad-bottom);
}

/* ==================================================
   Responsive
================================================== */

@media (max-width:860px){

    .section{
        padding:
            calc(var(--ib-pad-top) * .7)
            1.5rem
            calc(var(--ib-pad-bottom) * .7);
    }

}
/* ===================================
   HEADER
=================================== */

.site-header {
    display:flex;
    align-items:center;
    background:#fff;
    padding:12px 40px;
    position:sticky;
    top:0;
    z-index:200;
}


.site-header__inner {
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px;
}


/* ===================================
   LOGO
=================================== */


.site-branding {
    display:flex;
    align-items:center;
    flex-shrink:0;
}


.brand {
    display:flex;
    align-items:center;
    text-decoration:none;
}


.brand img {
    height: 100px;
    min-height: 60px;
    width:auto;
    display:block;
}



/* ===================================
   MENU DESKTOP
=================================== */


.main-menu {
    display:flex;
    align-items:center;
    flex:1;
    justify-content:center;
}


.main-nav {
    display:flex;
    align-items:center;
}


.main-nav > ul {
    display:flex;
    align-items:center;
    gap:2px;
    list-style:none;
    padding:0;
    margin:0;
}


.main-nav li {
    position:relative;
    list-style:none;
}


.main-nav a {

    color:#14210F;

    text-decoration:none;

    font-weight:600;

    font-size:15.5px;

    padding:10px 14px;

    border-radius:8px;

    display:flex;

    align-items:center;

    white-space:nowrap;

}


.main-nav a:hover {

    background:#F4F3EC;

    color:#14210F;

}


/* item ativo */

.main-nav .current-menu-item > a,
.main-nav .current_page_item > a {

    background:#F4F3EC;

}



/* ===================================
   SUBMENU WORDPRESS
=================================== */


.main-nav ul ul {

    position:absolute;

    top:100%;

    left:0;

    background:#fff;

    border:1px solid #E3E1D8;

    border-radius:12px;

    box-shadow:0 12px 32px rgba(20,33,15,.14);

    padding:10px;

    min-width:260px;

    display:none;

    flex-direction:column;

}


.main-nav li:hover > ul {

    display:flex;

}


.main-nav ul ul li {

    width:100%;

}


.main-nav ul ul a {

    font-size:15px;

    font-weight:500;

    width:100%;

    padding:11px 14px;

}


.main-nav ul ul a:hover {

    background:#F4F3EC;

}



/* ===================================
   CTA
=================================== */


.header-button {

    background:#14210F;

    color:#fff;

    text-decoration:none;

    font-weight:700;

    font-size:15px;

    padding:11px 20px;

    border-radius:999px;

    white-space:nowrap;

}


.header-button:hover {

    background:#2C451C;

    color:#fff;

}



/* ===================================
   MOBILE BUTTON
=================================== */


.mobile-menu {

    display:none;

}


.menu-toggle {

    border:none;

    background:#14210F;

    color:#fff;

    border-radius:999px;

    padding:10px 18px;

    display:flex;

    align-items:center;

    gap:10px;

    font-size:15px;

    font-weight:600;

    cursor:pointer;

}



.menu-close {
    color: #000;
}

.ridge{display:block;width:100%;height:9px; position:sticky;}



/* ===================================
   MOBILE
=================================== */


@media(max-width:900px){


    .site-header {

        padding:12px 20px;

    }


    .site-header__inner {

        flex-wrap:wrap;

    }


    .main-menu {

        order:3;

        width:100%;

        display:none;

    }


    .main-menu.open {

        display:block;

    }


    .main-nav > ul {

        flex-direction:column;

        align-items:stretch;

        width:100%;

    }


    .main-nav li {

        width:100%;

    }


    .main-nav a {

        font-size:18px;

        padding:14px;

        width:100%;

    }



    .header-button {

        margin-left:auto;

        order:2;

    }



    .mobile-menu {

        display:block;

        order:3;

    }



    /* submenu mobile */

    .main-nav ul ul {

        position:static;

        box-shadow:none;

        border:none;

        border-left:2px solid #E3E1D8;

        margin-left:15px;

    }



}



@media(max-width:560px){


    .header-button {

        display:none;

    }


}

.post-hero img {
        max-width: var(--ib-container, 1165px);
        margin: auto;
    }
 .hero_module {
background-color: #14210f;
}
.home .hero_module .hero_module__button{
 color: #14210f;   
}



/* =====================================
   Helping the Hills Team
   Match reference design
   ===================================== */


/* Section */
#steering_group.feature_grid_module_wrapper {
    padding:24px 0 64px;

    overflow:visible;
}


#steering_group .container {
    width:100%;
}



/* Heading */
#steering_group .feature_grid_module__heading {

    margin:0 0 12px;

    text-align:left;

    font-weight:700;

    font-size:28px;
    line-height:1.2;

    color:#14210F;
}



/* Optional intro text */
#steering_group .feature_grid_module__intro {
    margin:0 0 32px;

    max-width:640px;

    font-size:17px;
    line-height:1.6;

    color:#3A4231;
}



/* Grid */
#steering_group .feature_grid_module__grid {

    display:grid;


    gap:22px;
}



/* Card */
#steering_group .feature_grid_module__card {

    background:#fff;

    border:1px solid #E3E1D8;

    border-radius:14px;

    overflow:hidden;

    padding:0;

    display:flex;

    flex-direction:column;

    align-items:stretch;

    text-align:left;

    box-shadow:none;

    transition:none;
    gap: 15px;
}


#steering_group .feature_grid_module__card:hover {

    transform:none;

    box-shadow:none;
}



/* Image */

#steering_group .feature_grid_module__icon {
    padding: unset;
    margin-bottom: unset;
}
#steering_group .feature_grid_module__icon img {

    width:100% !important;

    height:400px !important;

    object-fit:cover;

    margin:0;

    display:block;
    object-position: center 35% !important;
}



/* Card content */
#steering_group .feature_grid_module__card > div:not(.feature_grid_module__icon) {

    margin: 0 auto;

}



/* Role */
#steering_group .feature_grid_module__eyebrow {

    order:1;

    margin:0 0 6px;

   

    font-size:12.5px;

    font-weight:700;

    letter-spacing:.08em;

    text-transform:uppercase;

    color:#3D5A26;
}



/* Name */
#steering_group .feature_grid_module__title {

 padding-top: 22px;
    margin: 0 auto;

}



/* Description */
#steering_group .feature_grid_module__desc {

    margin-top:6px;

    font-size:14.5px;

    line-height:1.55;

    color:#4A5240;
    order :2;
    padding: 0 20px;
}



#steering_group .feature_grid_module__desc p {

    margin:0 0 10px;
}



/* =====================================
   Responsive
   ===================================== */


@media(max-width:900px){

    #steering_group .feature_grid_module {

        padding:0 24px;

    }

}



@media(max-width:560px){


    #steering_group {

        padding-bottom:40px;

    }


    #steering_group .feature_grid_module__grid {

        grid-template-columns:1fr;

    }

      #steering_group .feature_grid_module__icon img { height: 300px !important; }


}
/* ==================================================
   CTA Module - Get in touch
   ================================================== */

.global_section_module:has(> #get_in_touch ){
       background: var(--ib-footer-bg);
}
#get_in_touch.cta_module{
       background: var(--ib-footer-bg);
    display: flex;


}


/* Content */

#get_in_touch .cta_module__content{

    flex:1;

}


#get_in_touch .cta_module__eyebrow{

    margin:0;

    max-width:560px;

    font-family:var(--ib-heading-font);

    font-size:28px;

    line-height:1.15;

    font-weight:700;

    color:#fff;

    letter-spacing:0;

    text-transform:none;

}



/* Actions */

#get_in_touch .cta_module__actions{

    display:flex;

    align-items:center;

}



/* Button */

#get_in_touch .cta_module__button{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:15px 28px;

    border-radius:8px;

      background:#9fd84e;

    color:#14210f;

    text-decoration:none;

    font-size:17px;

    font-weight:700;

    line-height:1;

    transition:.2s ease;

}




/* Remove wrapper interference */

.global_section_module{

    width:100%;

}



/* Responsive */

@media(max-width:900px){

    #get_in_touch.cta_module{

        padding:40px 24px;

    }


    #get_in_touch .cta_module__eyebrow{

        font-size:26px;

    }

}


@media(max-width:560px){

    #get_in_touch.cta_module{

        flex-direction:column;

        align-items:flex-start;

        gap:24px;

    }


    #get_in_touch .cta_module__button{

        width:100%;

    }

}

/* ==================================================
   Principles Hero Module
   ================================================== */


#principles.hero_module {
    position: relative;
    overflow: hidden;
    min-height: auto;
    padding: 88px 56px 64px;
    background-size: cover;
    background-position: bottom;
    color: #fff;
    background-color: #14210f;
    background-repeat: no-repeat;
    background-size: 100% 75%;
}



/* Overlay */

#principles.hero_module::before{

 display: none;

}



/* Content */

#principles .hero_module__inner{
    padding:0;
}



/* Remove slider positioning */

#principles .hero_module__rotator{

    min-height:0;

}



#principles .hero_module__slide{

    position:relative;

    opacity:1;

    visibility:visible;

    transform:none;

    pointer-events:auto;

}



/* Text */

#principles .hero_module__slide-text{

    max-width:780px;

}




/* Heading */

#principles .hero_module__heading{

    margin:0 0 20px;

}



#principles .hero_module__heading h1{

    margin:0;

    font-family:var(--ib-heading-font);

    font-size:44px;

    line-height:1.12;

    font-weight:700;

    color:#fff;

}



/* Description */

#principles .hero_module__subheading{

    max-width:620px;

    margin:0;

}


#principles .hero_module__subheading p{

font-size: 19px;
    line-height: 1.65;
    color: #C4CDB6;

}



/* Hide empty button area */

#principles .hero_module__buttons:empty{

    display:none;

}



/* Responsive */

@media(max-width:900px){

    #principles.hero_module{

        padding:70px 24px 56px;

    }


    #principles .hero_module__heading h1{

        font-size:40px;

    }


    #principles .hero_module__subheading p{

        font-size:18px;

    }

}


@media(max-width:560px){

    #principles.hero_module{

        padding:60px 24px 48px;

    }


    #principles .hero_module__heading h1{

        font-size:34px;

    }

}

/* ==================================================
   Principles Steps Module
   ================================================== */


#principles_steps.process_steps_module{

    position:relative;

    overflow:hidden;

    padding:64px 56px;

    background:#fff;

}



/* Grid becomes list */

#principles_steps .pgrid{

    display:block;

}



/* Item */

#principles_steps .pcard{


    padding:32px 0;

    background:none;

    border:none;

    border-bottom:1px solid #E3E1D8;

    border-radius:0;

    display: grid;
    grid-template-columns: 50px 1fr;
    grid-template-rows: auto auto;
    column-gap: 20px;
    align-items: center;

}


#principles_steps .pcard:last-child{

    border-bottom:none;

}



/* Number */

#principles_steps .pcard .num{

    display:block;

    flex:none;

    width:auto;

    height:auto;

    margin:0;

    padding:0;

    background:none;

    border-radius:0;


    font-family:var(--ib-heading-font);

    font-size:44px;

    line-height:1;

    font-weight:700;

    color:var(--ib-primary);

      grid-column: 1;
    grid-row: 1 / 3;
    align-self: center;
        row-gap: 15px;

}



/* Content title */

#principles_steps .pcard h3{

    margin:0 0 10px;

    font-family:var(--ib-heading-font);

    font-size:24px;

    line-height:1.2;

    font-weight:600;

    color: #14210f;

       grid-column: 2;
    grid-row: 1;
    margin: 0;

}



/* Description */

#principles_steps .pcard p{

    margin:0;

    font-size:17px;

    line-height:1.7;

    color:var(--ink-2);

     grid-column: 2;
    grid-row: 2;
    margin: 0;

}



/* Remove old heading spacing */

#principles_steps .sec-head{

    margin-bottom:0;

}



/* Responsive */

@media(max-width:900px){

    #principles_steps.process_steps_module{

        padding:56px 24px;

    }


}


@media(max-width:560px){

    #principles_steps .pcard{

        gap:18px;

        padding:26px 0;

    }


    #principles_steps .pcard .num{

        font-size:36px;

    }


    #principles_steps .pcard h3{

        font-size:22px;

    }


    #principles_steps .pcard p{

        font-size:16px;

    }

}

/* ==================================================
   Principles PDF Download Section
================================================== */

#principles_pdf{

    background: #f4f3ec !important;

    padding:56px;

}


#principles_pdf .wrap{

     display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
        "title card"
        "desc  card";
    column-gap:64px;
    row-gap:12px;
    align-items:center;

    max-width:1180px;
    margin-inline:auto;
}


/* Left column */

#principles_pdf h2{

      grid-area:title;

    margin:0;

    color:var(--ib-text);

    font-size:32px;
    line-height:1.2;;

}


#principles_pdf .section-description{

    grid-area:desc;

    margin:0;
    max-width:520px;

}


#principles_pdf .section-description p{
 margin:0;

    color:var(--ib-text-light);

    font-size:16.5px;
    line-height:1.7;

}


/* Turn grid into button container */

#principles_pdf .res-grid{
grid-area:card;

    display:flex;
    align-items:center;
    justify-content:flex-end;

}


/* Remove card appearance */

#principles_pdf .res-card{

     padding:0;
    border:none;
    background:none;
    box-shadow:none;

}


#principles_pdf .res-card:hover{

   transform:none;
    box-shadow:none;

}


/* Hide PDF label */

#principles_pdf .file{

    display:none;

}


/* Button */

#principles_pdf .res-card a{

    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:15px 28px;

    background:var(--ib-secondary);
    color:#fff;

    border-radius:8px;

    font-weight:700;
    text-decoration:none;

    transition:.2s;
}


#principles_pdf .res-card a:hover{
 transform:translateY(-2px);
    opacity:.92;

}


/* Responsive */

@media (max-width:900px){
    #principles_pdf .wrap{
        grid-template-columns:1fr;
        grid-template-areas:
            "title"
            "desc"
            "card";

        row-gap:24px;
    }

    #principles_pdf .res-grid{
        justify-content:flex-start;
    }

}


@media (max-width:560px){

    #principles_pdf .wrap{

        flex-direction:column;

        align-items:flex-start;

        gap:24px;

    }


    #principles_pdf .res-grid{

        width:100%;

        margin-left:0;

    }


    #principles_pdf .res-card a{

        width:100%;

    }

}

/* ================================
  ABOUT TEXT
================================ */
#about-text {
        max-width: var(--ib-container);
    margin: 0 auto;
    color: #3A4231;
    font-size: 18px;
    line-height: 1.75;
        padding-bottom: 64px;
}


#about-text p {
    margin: 0 0 18px;
    font-size: 18px;
    line-height: 1.75;
    color: #3A4231;
}



#about-text {
    white-space: normal;
}



@media(max-width:900px){

    #about-text {
        padding: 40px 24px 8px;
        max-width:100%;
        font-size:17px;
        line-height:1.7;
    }

}

/* ================================
   Helping the Hills - WordPress Footer
================================ */


/* Main footer container */
.site-footer {
    position: relative;
    background: var(--pine, #14210F);
    padding: 48px 40px 28px;
    color: #C4CDB6;
    overflow: hidden;
}


/* Decorative mountain background */
.site-footer::after {
   content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 346px;
    /* opacity: .07; */
    pointer-events: none;
    background: url(https://helpingthehdev.wpenginepowered.com/wp-content/uploads/2026/07/hills.png) center top / cover no-repeat;
}


/* Footer inner wrapper */
.site-footer__inner {
    max-width:1180px;
    margin:0 auto;
    position:relative;
}


/* Top footer area */
.site-footer__top {
    display:block;
}



/* Footer columns layout */
.site-footer__widgets {
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:36px;
    }


/* Individual footer columns */
.footer-col {
    display:flex;
    flex-direction:column;
    gap:10px;
}


/* Description column */
.footer-col:first-child .widget_text {
    max-width:300px;
}


.footer-col:first-child p {
    margin:0;
    font-size:15px;
    line-height:1.6;
    color:#C4CDB6;
}


/* Footer section titles */
.widget-title {
    margin:0 0 4px;
    font-weight:700;
    font-size:13px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:#9FD84E;
    font-family:inherit;
}


/* Footer navigation menus */
.site-footer .menu {
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
}


.site-footer .menu li {
    margin:0;
}


/* Footer links */
.site-footer .menu a {
    color:#C4CDB6;
    text-decoration:none;
    font-size:15px;
}


.site-footer .menu a:hover {
    color:#fff;
}


/* Partner logos container */
#text-9 .textwidget {
    max-width: 168px;
}

#text-9 .textwidget img {
    max-width: 100%;
    height: auto;
}

/* Bottom footer information */
.site-footer__extra {
    position:relative;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
}


.site-footer__extra .widget {
    margin:0;
}


.site-footer__extra .textwidget {
    font-size:13.5px;
    color:#8B957D;
}


.site-footer__extra a {
    color:#9FD84E;
}


/* Hide empty footer bar */
.site-footer__bar {
    display:none;
}


/* Tablet layout */
@media(max-width:900px){

    .site-footer__widgets {
        grid-template-columns:1fr 1fr;
    }

}


/* Mobile layout */
@media(max-width:560px){
   .site-header { padding: 10px 16px; }
  .site-header__inner { flex-wrap: nowrap; gap: 12px; }
  .site-header .site-branding { flex: 0 1 auto; min-width: 0; }
  .site-header .site-branding img {
    width: auto; max-width: 100%;
    height: auto; max-height: 56px;
  }
  .site-header .mobile-menu { flex: 0 0 auto; margin-left: auto; }
    .site-footer {
        padding:40px 24px 24px;
    }




    .site-footer__widgets {
        grid-template-columns:1fr;
    }


    .site-footer__extra {
        flex-direction:column;
        align-items:flex-start;
    }

}

/* ==============================
   IPL Mega Menu
   ============================== */
   .ipl-mm-mobile a {
    width: 100%;
    font-size: 22px;
    padding: 14px;
    text-decoration: none;
    font-weight: 600;
    padding: 10px 14px;
    border-radius: 8px;
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
    display: flex;
    align-items: center;
    gap: 6px;
}
   
       .ipl-mm-m-item.has-children > .ipl-mm-m-row > a::after {
        content: "";
        position: absolute;
        right: 10%;
        border: solid black;
        border-width: 0 2px 2px 0;
        width: 13px;
        height: 13px;
        cursor: pointer;
        -webkit-transform: rotate(-45deg) translate(0, -50%);
        opacity: 1;
    }

        .ipl-mega-menu span {
                border-bottom: 1px solid rgb(0 0 0 / 12%);
        }

        .menu-nav a