/*
Theme Name: IBR Roof Sheeting
Theme URI: https://ibrroofsheeting.co.za
Author: IBR Roof Sheeting (Pty) Ltd
Description: Custom theme for IBR Roof Sheeting (Pty) Ltd. Manufacturer and installer of IBR roof sheeting, seamless gutters, custom flashings and industrial roofing across Gauteng.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: ibr-roof-sheeting
*/

:root{
  --charcoal:#181a1c;
  --charcoal-2:#232629;
  --steel:#4b5259;
  --steel-light:#8b9096;
  --silver:#d9dadb;
  --off-white:#f5f4f1;
  --red:#c62a2e;
  --red-dark:#9e1f22;
  --line:rgba(255,255,255,0.12);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%;}
body{font-family:'Work Sans',sans-serif;background:var(--off-white);color:var(--charcoal);line-height:1.5;overflow-x:hidden;max-width:100%;}
h1,h2,h3,h4{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.02em;font-weight:600;line-height:1.08;}
.mono{font-family:'JetBrains Mono',monospace;letter-spacing:0.03em;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;height:auto;}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px;}

.ribs{background-image:repeating-linear-gradient(90deg,rgba(255,255,255,0.05) 0px, rgba(255,255,255,0.05) 2px,transparent 2px, transparent 22px,rgba(0,0,0,0.15) 22px, rgba(0,0,0,0.15) 24px,transparent 24px, transparent 44px);}
.ribs-light{background-image:repeating-linear-gradient(90deg,rgba(0,0,0,0.035) 0px, rgba(0,0,0,0.035) 2px,transparent 2px, transparent 22px,rgba(0,0,0,0.06) 22px, rgba(0,0,0,0.06) 24px,transparent 24px, transparent 44px);}

.dim-line{display:flex;align-items:center;gap:10px;color:var(--steel-light);font-size:12px;padding:14px 0;}
.dim-line .cap{width:1px;height:10px;background:var(--steel-light);}
.dim-line .rule{flex:1;height:1px;background:var(--steel-light);position:relative;}
.dim-line .rule::before,.dim-line .rule::after{content:'';position:absolute;top:-3px;width:1px;height:7px;background:var(--steel-light);}
.dim-line .rule::before{left:0;} .dim-line .rule::after{right:0;}
.dim-line span.label{white-space:nowrap;}
.dim-line.accent{color:var(--red);}
.dim-line.accent .cap,.dim-line.accent .rule,.dim-line.accent .rule::before,.dim-line.accent .rule::after{background:var(--red);}
.dim-line.accent .rule{flex:0 0 40px;}

header.site-header{position:sticky;top:0;z-index:50;background:var(--charcoal);border-bottom:1px solid var(--line);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 32px;max-width:1240px;margin:0 auto;}
.logo-mark{display:inline-flex;align-items:center;}
.logo-mark img{height:44px;width:auto;display:block;}
nav.primary-menu > ul{display:flex;gap:30px;list-style:none;}
nav.primary-menu > ul > li{position:relative;}
nav.primary-menu a{color:var(--silver);font-size:13px;letter-spacing:0.05em;text-transform:uppercase;font-family:'Oswald',sans-serif;font-weight:500;padding:8px 0;border-bottom:2px solid transparent;transition:border-color .2s, color .2s;display:inline-block;}
nav.primary-menu li.current-menu-item > a,
nav.primary-menu a:hover{color:#fff;border-color:var(--red);}
nav.primary-menu li.menu-item-has-children > a::after{content:'\25BE';display:inline-block;margin-left:6px;font-size:10px;opacity:.65;}

/* Dropdown submenus (desktop) */
nav.primary-menu ul.sub-menu{
  display:none;
  position:absolute;
  top:100%;
  left:0;
  min-width:230px;
  background:var(--charcoal-2);
  border:1px solid var(--line);
  flex-direction:column;
  gap:0;
  padding:8px 0;
  margin-top:0;
  padding-top:16px;
  z-index:80;
  box-shadow:0 12px 24px rgba(0,0,0,0.35);
}
nav.primary-menu li.menu-item-has-children:hover > ul.sub-menu,
nav.primary-menu li.menu-item-has-children:focus-within > ul.sub-menu{
  display:flex;
}
nav.primary-menu ul.sub-menu li{width:100%;}
nav.primary-menu ul.sub-menu a{
  display:block;
  width:100%;
  padding:10px 20px;
  border-bottom:none;
  font-size:12px;
  white-space:nowrap;
}
nav.primary-menu ul.sub-menu a:hover{background:rgba(255,255,255,0.06);}

.menu-toggle{display:none;background:none;border:1px solid var(--line);color:#fff;padding:8px 12px;font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:12px;letter-spacing:.05em;}
.nav-cta{background:var(--red);color:#fff;padding:10px 20px;font-family:'Oswald',sans-serif;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;font-weight:600;border:1px solid var(--red);}
.nav-cta:hover{background:var(--red-dark);border-color:var(--red-dark);}

.btn{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.05em;font-size:14px;font-weight:600;padding:16px 30px;display:inline-block;border:1px solid transparent;}
.btn-primary{background:var(--red);color:#fff;border-color:var(--red);}
.btn-primary:hover{background:var(--red-dark);border-color:var(--red-dark);}
.btn-ghost{border-color:rgba(255,255,255,0.5);color:#fff;}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,0.08);}
.btn-dark{background:var(--charcoal);border-color:var(--charcoal);color:#fff;}
.btn-white{background:#fff;color:var(--red-dark);}
.btn-white:hover{background:#f2e9e9;}
.btn-row{display:flex;gap:16px;flex-wrap:wrap;}

.hero{position:relative;min-height:640px;display:flex;align-items:flex-end;background:#000;overflow:hidden;}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.62;}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(15,16,17,0.55) 0%, rgba(15,16,17,0.35) 35%, rgba(15,16,17,0.94) 100%);}
.hero-content{position:relative;z-index:2;padding:80px 32px 0;max-width:1240px;margin:0 auto;width:100%;}
.eyebrow-tag{display:inline-flex;align-items:center;gap:8px;color:var(--red);font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;margin-bottom:18px;}
.eyebrow-tag::before{content:'';width:26px;height:2px;background:var(--red);}
.hero h1{color:#fff;font-size:clamp(38px,6vw,74px);max-width:820px;margin-bottom:20px;}
.hero h1 em{color:var(--red);font-style:normal;}
.hero p.sub{color:var(--silver);font-size:18px;max-width:560px;margin-bottom:34px;font-weight:400;}
.hero .btn-row{margin-bottom:44px;}

.page-hero{position:relative;min-height:360px;display:flex;align-items:flex-end;background:#000;overflow:hidden;}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.5;}
.page-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(15,16,17,0.55) 0%, rgba(15,16,17,0.4) 40%, rgba(15,16,17,0.95) 100%);}
.page-hero-content{position:relative;z-index:2;padding:70px 32px 40px;max-width:1240px;margin:0 auto;width:100%;}
.breadcrumb{color:var(--steel-light);font-size:12px;margin-bottom:16px;}
.breadcrumb a:hover{color:#fff;}
.breadcrumb .sep{margin:0 8px;color:var(--red);}
.page-hero h1{color:#fff;font-size:clamp(32px,5vw,54px);max-width:760px;}
.page-hero p.sub{color:var(--silver);font-size:16px;max-width:560px;margin-top:14px;}

.section{padding:88px 0;}
.section-tight{padding:60px 0;}
.section-head{max-width:640px;margin-bottom:48px;}
.section-head h2{font-size:clamp(26px,4vw,38px);color:var(--charcoal);}
.section-head p{color:var(--steel);font-size:16px;margin-top:14px;max-width:560px;}
.section-dark{background:var(--charcoal);color:var(--off-white);}
.section-dark .section-head h2{color:#fff;}
.section-dark .section-head p{color:var(--steel-light);}
.section-white{background:#fff;}

p.body-copy{color:var(--steel);font-size:16px;max-width:760px;margin-bottom:20px;line-height:1.7;}
.section-dark p.body-copy{color:var(--silver);}

.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.split img{width:100%;height:420px;object-fit:cover;}
.split-rev{direction:rtl;} .split-rev > *{direction:ltr;}

ul.plain{list-style:none;}
ul.plain li{position:relative;padding-left:22px;margin-bottom:12px;color:var(--steel);font-size:15.5px;}
ul.plain li::before{content:'';position:absolute;left:0;top:9px;width:10px;height:2px;background:var(--red);}
.section-dark ul.plain li{color:var(--silver);}

.bullet-groups{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:32px 0;}
.bullet-groups h4{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:15px;color:var(--charcoal);margin-bottom:14px;letter-spacing:0.03em;}
.section-dark .bullet-groups h4{color:#fff;}

.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:#d7d5d0;border:1px solid #d7d5d0;}
.card{background:#fff;padding:32px 26px;}
.card h3{font-size:18px;color:var(--charcoal);margin-bottom:10px;}
.card p{color:var(--steel);font-size:14.5px;margin-bottom:14px;}
.card .go{font-family:'Oswald',sans-serif;font-size:12.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--red);font-weight:600;}
.card .go::after{content:' \2192';}
.card-num{font-family:'JetBrains Mono',monospace;color:var(--red);font-size:12px;margin-bottom:16px;display:block;}

.spec-box{background:#fff;border:1px solid #e5e3de;padding:36px;}
.spec-row{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid #e5e3de;font-size:13.5px;}
.spec-row:first-child{border-top:none;}
.spec-row .k{color:var(--steel);}
.spec-row .v{font-family:'JetBrains Mono',monospace;color:var(--charcoal);}

.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.gallery-grid .g-item{position:relative;overflow:hidden;background:#000;}
.gallery-grid .g-item img{width:100%;height:290px;object-fit:cover;transition:transform .4s;}
.gallery-grid .g-item:hover img{transform:scale(1.05);}
.gallery-grid .g-tall img{height:610px;}
.gallery-grid .g-item .cap{position:absolute;bottom:0;left:0;right:0;padding:14px 16px;background:linear-gradient(0deg,rgba(0,0,0,0.75),transparent);color:#fff;font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:0.04em;}

.cta-banner{background:var(--red);color:#fff;padding:64px 0;text-align:center;}
.cta-banner h2{color:#fff;font-size:clamp(24px,4vw,36px);margin-bottom:14px;}
.cta-banner p{color:rgba(255,255,255,0.85);margin-bottom:28px;font-size:16px;}

.contact-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:48px;}
.form-box{background:#fff;border:1px solid #e5e3de;padding:40px;}
.form-row{margin-bottom:20px;}
.form-row label{display:block;font-family:'Oswald',sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:0.05em;color:var(--steel);margin-bottom:8px;}
.form-row input,.form-row select,.form-row textarea{width:100%;border:1px solid #d7d5d0;padding:12px 14px;font-family:'Work Sans',sans-serif;font-size:14.5px;background:#fbfaf8;}
.form-row textarea{min-height:120px;resize:vertical;}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:2px solid var(--red);outline-offset:1px;}
.info-box{background:var(--charcoal);color:#fff;padding:40px;}
.info-box h4{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:13px;letter-spacing:0.06em;color:var(--steel-light);margin-bottom:16px;}
.info-box p{font-size:15px;margin-bottom:8px;color:var(--silver);}
.info-box .email{color:var(--red);font-family:'JetBrains Mono',monospace;font-size:13.5px;margin-top:16px;}
.form-success{background:#e7f5ec;border:1px solid #bfe3cd;color:#1c6b3a;padding:16px 20px;margin-bottom:24px;font-size:14.5px;}
.form-error{background:#fbe9e9;border:1px solid #eec2c2;color:var(--red-dark);padding:16px 20px;margin-bottom:24px;font-size:14.5px;}

footer.site-footer{background:var(--charcoal);color:var(--steel-light);padding:64px 0 24px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:48px;border-bottom:1px solid var(--line);}
.footer-grid h5{font-family:'Oswald',sans-serif;color:#fff;font-size:13px;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:18px;}
.footer-grid p,.footer-grid a{font-size:14px;display:block;margin-bottom:10px;color:var(--steel-light);}
.footer-grid a:hover{color:#fff;}
.footer-logo{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.footer-logo img{height:34px;display:block;}
.footer-logo b{color:#fff;font-family:'Oswald',sans-serif;font-size:15px;}
.footer-bottom{display:flex;justify-content:space-between;padding-top:24px;font-size:12.5px;color:var(--steel);font-family:'JetBrains Mono',monospace;flex-wrap:wrap;gap:10px;}

/* Editable page content, styled to match the rest of the site.
   This is what a normal WordPress page (Title + Featured Image + Excerpt + Content)
   looks like once it runs through the theme, no custom markup required. */
.entry-content{padding:88px 0;max-width:760px;margin:0 auto;}
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4{
  color:var(--charcoal);margin:40px 0 18px;
}
.entry-content h1:first-child,.entry-content h2:first-child,.entry-content h3:first-child{margin-top:0;}
.entry-content h2{font-size:28px;}
.entry-content h3{font-size:22px;}
.entry-content h4{font-size:17px;}
.entry-content p{color:var(--steel);margin-bottom:20px;line-height:1.75;font-size:16px;}
.entry-content strong{color:var(--charcoal);}
.entry-content a{color:var(--red);text-decoration:underline;}
.entry-content a:hover{color:var(--red-dark);}
.entry-content ul,.entry-content ol{margin:0 0 24px 0;padding:0;list-style:none;}
.entry-content ul li,.entry-content ol li{position:relative;padding-left:22px;margin-bottom:10px;color:var(--steel);font-size:15.5px;}
.entry-content ul li::before{content:'';position:absolute;left:0;top:9px;width:10px;height:2px;background:var(--red);}
.entry-content ol{counter-reset:ibr-ol;}
.entry-content ol li{counter-increment:ibr-ol;}
.entry-content ol li::before{content:counter(ibr-ol) '.';width:auto;height:auto;background:none;color:var(--red);font-family:'JetBrains Mono',monospace;font-size:13px;top:0;}
.entry-content blockquote{border-left:3px solid var(--red);padding:4px 0 4px 22px;margin:0 0 24px;color:var(--steel);font-style:italic;}
.entry-content img{margin:24px 0;max-width:100%;height:auto;}
.entry-content figure{margin:24px 0;}
.entry-content figcaption{color:var(--steel-light);font-size:13px;margin-top:8px;font-family:'JetBrains Mono',monospace;}
.entry-content hr{border:none;border-top:1px solid #e5e3de;margin:40px 0;}
.entry-content table{width:100%;border-collapse:collapse;margin-bottom:24px;}
.entry-content table th,.entry-content table td{border:1px solid #e5e3de;padding:10px 14px;text-align:left;font-size:14.5px;}
.entry-content table th{font-family:'Oswald',sans-serif;text-transform:uppercase;font-size:12.5px;letter-spacing:0.04em;color:var(--steel);}
.entry-content .wp-block-columns{display:flex;gap:32px;margin-bottom:24px;}
.entry-content .wp-block-button__link{
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:0.05em;font-size:13px;
  font-weight:600;padding:14px 26px;display:inline-block;background:var(--charcoal);color:#fff !important;
  text-decoration:none;
}
.entry-content .wp-block-button__link:hover{background:var(--red);}

/* Nav / hamburger menu — covers tablets and phones (up to 1024px) */
@media (max-width:1024px){
  nav.primary-menu{position:absolute;top:100%;left:0;right:0;background:var(--charcoal);border-top:1px solid var(--line);display:none;max-height:80vh;overflow-y:auto;}
  nav.primary-menu.is-open{display:block;}
  nav.primary-menu > ul{flex-direction:column;gap:0;padding:10px 32px 20px;}
  nav.primary-menu a{padding:12px 0;width:100%;}
  nav.primary-menu ul.sub-menu{
    display:block;
    position:static;
    background:none;
    border:none;
    box-shadow:none;
    padding:0 0 0 18px;
    margin:0;
  }
  nav.primary-menu ul.sub-menu a{padding:10px 0;font-size:12px;color:var(--steel-light);}
  nav.primary-menu li.menu-item-has-children > a::after{float:right;}

  /* CSS-only hamburger icon — no extra markup needed */
  .menu-toggle{
    display:inline-block;
    position:relative;
    width:38px;
    height:38px;
    padding:0;
    color:transparent;
    font-size:0;
    background:linear-gradient(#fff,#fff) no-repeat center center;
    background-size:18px 2px;
  }
  .menu-toggle::before,
  .menu-toggle::after{
    content:'';
    position:absolute;
    left:10px;
    width:18px;
    height:2px;
    background:#fff;
    transition:transform .2s ease, top .2s ease, opacity .2s ease;
  }
  .menu-toggle::before{top:13px;}
  .menu-toggle::after{top:23px;}
  /* Morph into an X when the menu is open (aria-expanded is already
     toggled by the theme's JS, no extra script needed) */
  .menu-toggle[aria-expanded="true"]{background:none;}
  .menu-toggle[aria-expanded="true"]::before{top:18px;transform:rotate(45deg);}
  .menu-toggle[aria-expanded="true"]::after{top:18px;transform:rotate(-45deg);}

  /* Keep the logo from overpowering the header on smaller screens */
  .logo-mark img{height:36px;max-height:36px;}
}

@media (max-width:600px){
  .logo-mark img{height:30px;max-height:30px;}
  .nav-inner{padding:12px 16px;}
  .wrap{padding:0 18px;}
  .page-hero-content{padding:50px 18px 30px;}
  .hero-content{padding:50px 18px 0;}
  .section{padding:56px 0;}
  .section-tight{padding:40px 0;}
  .card{padding:24px 20px;}
  .form-box,.info-box{padding:26px 20px;}
  .spec-box{padding:24px 20px;}
  .cta-banner{padding:44px 0;}
  .hero h1{font-size:clamp(30px,9vw,42px);}
}

/* General layout stacking — phones and small tablets */
@media (max-width:900px){
  .hero{min-height:560px;}
  .hero-content{padding:60px 20px 0;}
  .eyebrow-tag{margin-bottom:14px;}
  .hero .dim-line{flex-wrap:wrap;row-gap:10px;}
  .hero .dim-line .rule,
  .hero .dim-line .cap{display:none;}
  .split,.contact-grid,.bullet-groups{grid-template-columns:1fr;}
  .cards-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:1fr 1fr;}
  .gallery-grid .g-tall img,.gallery-grid .g-item img{height:260px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
