/* Approved homepage — identical CSS for Elementor preview and public frontend. */
.ccc-approved-elementor-root.e-con { width:100% !important; max-width:none !important; min-width:0; position:relative; display:block !important; --padding-top:0; --padding-right:0; --padding-bottom:0; --padding-left:0; --gap:0; }
.ccc-approved-elementor-root>.e-con-inner { width:100% !important; max-width:none !important; display:block !important; }
.ccc-approved-widget,.ccc-approved-widget>.elementor-widget-container { width:100% !important; max-width:none !important; margin:0 !important; padding:0 !important; }
.elementor-widget-ccc-approved-header,.ccc-approved-header-widget { width:100% !important; position:absolute !important; z-index:50; inset:0 0 auto; margin:0 !important; }
.elementor-widget-ccc-approved-header>.elementor-widget-container,.ccc-approved-header-widget>.elementor-widget-container,.elementor-widget-ccc-approved-footer>.elementor-widget-container,.ccc-approved-footer-widget>.elementor-widget-container { width:100% !important; margin:0 !important; padding:0 !important; }
.ccc-approved-home { --ink:#11110f; --paper:#f4f2ec; --white:#fff; --yellow:#f2db00; --muted:#6b6a64; --line:rgba(17,17,15,.14); --shell-max:1240px; --space-scale:1; width:100%; overflow:hidden; color:var(--ink); background:var(--paper); font-family:"Poppins","Avenir Next","Segoe UI",Arial,sans-serif; }
.ccc-approved-home h1,.ccc-approved-home h2,.ccc-approved-home h3,.ccc-approved-home p,.ccc-approved-home blockquote { font-family:inherit; }
.ccc-approved-header { color:#fff; background:transparent; }
.brand-logo { width:170px; max-width:min(40vw,240px); max-height:64px; object-fit:contain; object-position:left center; }
@import "tailwindcss";

:root { --ink:#11110f; --paper:#f4f2ec; --white:#fff; --yellow:#f2db00; --muted:#6b6a64; --line:rgba(17,17,15,.14); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Poppins","Avenir Next","Segoe UI",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
.shell { width:min(var(--shell-max),calc(100% - 56px)); margin-inline:auto; }

.hero { min-height:100svh; position:relative; color:#fff; background-image:linear-gradient(90deg,rgba(7,7,6,.9) 0%,rgba(7,7,6,.68) 48%,rgba(7,7,6,.23) 100%),var(--ccc-approved-hero-image); background-size:cover; background-position:center; background-attachment:fixed; }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.34),transparent 35%,rgba(0,0,0,.42)); pointer-events:none; }
.site-header { height:96px; position:relative; z-index:3; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.22); }
.hero-header-spacer { height:96px; }
.brand { display:inline-flex; align-items:center; gap:13px; font-size:14px; font-weight:700; }
.brand-mark { width:44px; height:44px; display:grid; place-items:center; color:var(--ink); background:var(--yellow); border-radius:50%; font-size:12px; font-weight:900; letter-spacing:-1px; }
.main-nav { display:flex; gap:34px; color:#dddcd5; font-size:12px; }
.main-nav a,.header-cta { transition:color .2s ease; }
.main-nav a:hover,.header-cta:hover { color:var(--yellow); }
.header-cta { display:flex; align-items:center; gap:10px; font-size:12px; font-weight:650; }
.hero-content { min-height:calc(100svh - 96px); position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; padding:90px 0 44px; }
.hero-copy { max-width:790px; }
.eyebrow,.section-index { display:block; font-size:10px; font-weight:700; line-height:1.4; letter-spacing:.16em; text-transform:uppercase; }
.eyebrow { margin-bottom:26px; color:var(--yellow); }
.hero h1 { margin:0; font-size:clamp(58px,7.4vw,108px); line-height:.92; letter-spacing:-.065em; font-weight:630; }
.hero h1 em { color:var(--yellow); font-family:Georgia,serif; font-weight:400; }
.hero-copy>p { max-width:610px; margin:30px 0 0; color:#d4d3cd; font-size:17px; line-height:1.7; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:37px; }
.button { min-height:56px; display:inline-flex; align-items:center; justify-content:center; gap:14px; padding:0 23px; border:1px solid transparent; border-radius:999px; font-size:12px; font-weight:700; }
.button-primary { color:var(--ink); background:var(--yellow); }
.button-ghost { color:#fff; border-color:rgba(255,255,255,.55); backdrop-filter:blur(8px); }
.hero-footnote { display:flex; justify-content:space-between; gap:24px; margin-top:auto; padding-top:70px; color:#c4c3bd; font-size:10px; letter-spacing:.05em; text-transform:uppercase; }

.trust-strip { color:#fff; background:#0c0c0b; border-top:1px solid rgba(255,255,255,.12); }
.trust-inner { min-height:130px; display:grid; grid-template-columns:210px 1fr; gap:48px; align-items:center; }
.trust-inner p { margin:0; color:#aaa9a2; font-size:10px; line-height:1.5; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.logo-row { display:grid; grid-template-columns:repeat(5,1fr); align-items:center; gap:28px; }
.logo-row img { max-width:130px; max-height:48px; margin-inline:auto; filter:grayscale(1) brightness(0) invert(1); opacity:.7; }

.services-section { padding:calc(138px * var(--space-scale)) 0 calc(150px * var(--space-scale)); background:#f5f3ed; }
.section-intro { display:grid; grid-template-columns:1.35fr .65fr; gap:90px; align-items:end; }
.section-intro h2,.portfolio-head h2,.about-copy h2,.process-head h2,.testimonial-intro h2,.faq-grid h2,.contact-grid h2 { margin:26px 0 0; font-size:clamp(45px,5vw,72px); line-height:1.02; letter-spacing:-.055em; }
.section-intro p { margin:0 0 7px; color:var(--muted); font-size:14px; line-height:1.8; }
.services-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:72px; }
.service-card { min-height:555px; display:flex; flex-direction:column; padding:30px 27px; background:#fff; border:1px solid var(--line); border-radius:18px; }
.service-card:nth-child(2) { background:#e9e7df; }
.service-card:nth-child(3) { color:#fff; background:#181816; }
.service-card:nth-child(4) { background:var(--yellow); }
.service-top { display:flex; justify-content:space-between; align-items:center; }
.service-icon { width:48px; height:48px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; }
.service-number { font-size:10px; font-weight:700; letter-spacing:.13em; }
.service-card h3 { margin:72px 0 18px; font-size:31px; line-height:1.05; letter-spacing:-.045em; }
.service-card>p { margin:0; color:#67665f; font-size:13px; line-height:1.72; }
.service-card:nth-child(3)>p { color:#aaa9a2; }
.service-card ul { list-style:none; margin:auto 0 0; padding:30px 0 0; border-top:1px solid currentColor; }
.service-card li { position:relative; padding:7px 0 7px 16px; font-size:11px; }
.service-card li::before { content:""; width:5px; height:5px; position:absolute; left:0; top:13px; background:currentColor; border-radius:50%; opacity:.55; }

.about-section { padding:calc(150px * var(--space-scale)) 0; background:#fff; }
.about-grid { display:grid; grid-template-columns:1fr .88fr; gap:105px; align-items:center; }
.about-copy>p { max-width:650px; margin:25px 0 0; color:var(--muted); font-size:15px; line-height:1.84; }
.text-arrow { display:inline-flex; align-items:center; gap:18px; margin-top:28px; padding-bottom:10px; border-bottom:1px solid var(--ink); font-size:12px; font-weight:700; }
.about-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:60px; padding-top:28px; border-top:1px solid var(--line); }
.about-stats div { display:flex; flex-direction:column; gap:8px; }
.about-stats strong { font-family:Georgia,serif; font-size:29px; font-weight:400; }
.about-stats span { color:#77766f; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.about-image { margin:0; overflow:hidden; background:#eff0f2; border-radius:22px; }
.about-image img { width:100%; aspect-ratio:.82; object-fit:cover; object-position:center top; }
.about-image figcaption { padding:18px 20px; color:#67665f; font-size:10px; line-height:1.5; }

.process-section { padding:calc(120px * var(--space-scale)) 0 calc(130px * var(--space-scale)); background:var(--yellow); }
.process-head { display:grid; grid-template-columns:.35fr 1.65fr; gap:50px; }
.process-head h2 { max-width:840px; margin-top:0; }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:78px; border-top:1px solid rgba(17,17,15,.3); }
.process-grid article { min-height:250px; padding:28px 25px 0; border-right:1px solid rgba(17,17,15,.22); }
.process-grid article:first-child { padding-left:0; }
.process-grid article:last-child { border-right:0; }
.process-grid article>span { font-size:10px; font-weight:800; }
.process-grid h3 { margin:72px 0 14px; font-size:28px; letter-spacing:-.04em; }
.process-grid p { max-width:230px; margin:0; color:#54534e; font-size:12px; line-height:1.7; }

.portfolio-section { padding:calc(145px * var(--space-scale)) 0 calc(155px * var(--space-scale)); color:#fff; background:#10100f; }
.portfolio-head { display:grid; grid-template-columns:.35fr 1.65fr; gap:50px; padding-bottom:76px; }
.portfolio-head h2 { max-width:900px; margin-top:0; }
.portfolio-head p { max-width:590px; margin:24px 0 0; color:#aaa9a2; font-size:14px; line-height:1.75; }
.projects-showcase { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:72px 20px; }
.showcase-project { min-width:0; }
.project-wide { grid-column:span 8; }.project-standard { grid-column:span 4; }.project-half { grid-column:span 6; }.project-full { grid-column:1/-1; }
.showcase-media { overflow:hidden; background:#252521; border-radius:12px; }
.showcase-media img { width:100%; aspect-ratio:1.185; object-fit:cover; transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.project-standard .showcase-media img { aspect-ratio:.82; }
.project-full .showcase-media img { aspect-ratio:2.05; object-position:center 46%; }
.showcase-project:hover .showcase-media img { transform:scale(1.025); }
.showcase-caption { display:flex; align-items:flex-start; justify-content:space-between; gap:25px; padding-top:18px; }
.showcase-caption span { color:#999890; font-size:9px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.showcase-caption h3 { margin:8px 0 0; font-size:22px; letter-spacing:-.035em; }
.showcase-caption b { color:#777770; font-family:Georgia,serif; font-size:19px; font-weight:400; }

.testimonials-section { padding:calc(140px * var(--space-scale)) 0; background:#e7e6de; }
.testimonials-grid { display:grid; grid-template-columns:.72fr 1fr 1fr; gap:18px; align-items:stretch; }
.testimonial-intro { padding:14px 42px 10px 0; }
.testimonial-card { min-height:470px; display:flex; flex-direction:column; padding:40px; background:#fff; border-radius:22px; }
.testimonial-card-dark { color:#fff; background:#11110f; }
.stars { color:#d0b900; font-size:15px; letter-spacing:.16em; }
.testimonial-card blockquote { margin:58px 0 40px; font-family:Georgia,serif; font-size:23px; line-height:1.45; }
.testimonial-card-dark blockquote { color:#e8e8e2; }
.testimonial-person { display:flex; align-items:center; gap:14px; margin-top:auto; }
.testimonial-person img { width:50px; height:50px; object-fit:cover; border-radius:50%; }
.testimonial-person div { display:flex; flex-direction:column; gap:4px; }
.testimonial-person strong { font-size:12px; }.testimonial-person span { color:#87877f; font-size:10px; }

.faq-section { padding:calc(130px * var(--space-scale)) 0; background:#f6f4ee; }
.faq-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:100px; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:24px; cursor:pointer; list-style:none; font-size:14px; font-weight:650; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font-size:18px; font-weight:400; transition:transform .2s; }
.faq-list details[open] summary span { transform:rotate(45deg); }
.faq-list details p { max-width:650px; margin:-6px 50px 28px 0; color:var(--muted); font-size:13px; line-height:1.75; }

.contact-section { padding:calc(130px * var(--space-scale)) 0; color:#fff; background:#11110f; }
.contact-grid { display:grid; grid-template-columns:1.18fr .82fr; gap:110px; align-items:end; }
.contact-grid h2 { max-width:800px; }
.contact-actions>p { margin:0 0 28px; color:#aaa9a2; font-size:14px; line-height:1.75; }
.contact-links { display:flex; flex-direction:column; gap:13px; margin-top:30px; }
.contact-links a,.footer-column a,.footer-column span { display:flex; align-items:center; gap:10px; }
.contact-links a { color:#aaa9a2; font-size:11px; }

.site-footer { padding:80px 0 28px; color:#fff; background:#080807; }
.footer-top { display:grid; grid-template-columns:1.3fr .55fr 1fr .65fr; gap:60px; padding-bottom:70px; }
.footer-top>div:first-child>p { max-width:280px; margin:23px 0 0; color:#85857e; font-size:12px; line-height:1.7; }
.footer-column { display:flex; flex-direction:column; align-items:flex-start; gap:14px; color:#a09f98; font-size:11px; }
.footer-column strong { margin-bottom:8px; color:#fff; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.footer-column a:hover { color:var(--yellow); }
.footer-bottom { display:flex; justify-content:space-between; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); color:#66665f; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }

@media (max-width:1024px) {
  .hero { background-attachment:scroll; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .service-card { min-height:500px; }
  .about-grid { gap:55px; }
  .projects-showcase { gap-block:54px; }
  .project-wide,.project-standard { grid-column:span 6; }
  .project-standard .showcase-media img { aspect-ratio:1.185; }
  .testimonials-grid { grid-template-columns:repeat(2,1fr); }
  .testimonial-intro { grid-column:1/-1; min-height:250px; }
  .footer-top { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:760px) {
  .shell { width:min(100% - 32px,620px); }
  .site-header { height:78px; }
  .hero-header-spacer { height:78px; }
  .brand-name,.main-nav { display:none; }
  .header-cta { font-size:10px; }
  .hero { min-height:760px; background-image:linear-gradient(90deg,rgba(7,7,6,.88),rgba(7,7,6,.42)),var(--ccc-approved-hero-image); background-position:58% center; }
  .hero-content { min-height:682px; padding:65px 0 30px; }
  .hero h1 { font-size:clamp(49px,15vw,70px); }
  .hero-copy>p { font-size:14px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-footnote { align-items:flex-start; flex-direction:column; gap:8px; }
  .trust-inner { grid-template-columns:1fr; gap:24px; padding:28px 0; }
  .logo-row { grid-template-columns:repeat(3,1fr); gap:20px; }
  .logo-row img { max-width:92px; }
  .services-section,.about-section { padding:90px 0; }
  .section-intro,.about-grid,.process-head,.portfolio-head,.faq-grid,.contact-grid { grid-template-columns:1fr; gap:42px; }
  .section-intro h2,.portfolio-head h2,.about-copy h2,.process-head h2,.testimonial-intro h2,.faq-grid h2,.contact-grid h2 { font-size:43px; }
  .services-grid { grid-template-columns:1fr; margin-top:50px; }
  .service-card { min-height:470px; }
  .about-image { order:-1; }
  .about-image img { aspect-ratio:.88; }
  .about-stats { gap:8px; }
  .about-stats strong { font-size:24px; }
  .process-section { padding:88px 0; }
  .process-grid { grid-template-columns:1fr; margin-top:48px; }
  .process-grid article,.process-grid article:first-child { min-height:190px; padding:24px 0; border-right:0; border-bottom:1px solid rgba(17,17,15,.22); }
  .process-grid h3 { margin-top:42px; }
  .portfolio-section { padding-top:90px; }
  .portfolio-head { padding-bottom:55px; }
  .projects-showcase { grid-template-columns:1fr; gap:46px; }
  .project-wide,.project-standard,.project-half,.project-full { grid-column:auto; }
  .showcase-media img,.project-standard .showcase-media img,.project-full .showcase-media img { aspect-ratio:1.185; }
  .testimonials-section,.faq-section,.contact-section { padding:88px 0; }
  .testimonials-grid { grid-template-columns:1fr; }
  .testimonial-intro { grid-column:auto; min-height:0; padding:0 0 30px; }
  .testimonial-card { min-height:420px; padding:30px; }
  .testimonial-card blockquote { margin-top:42px; font-size:21px; }
  .footer-top { grid-template-columns:1fr; gap:38px; }
  .footer-bottom { align-items:flex-start; flex-direction:column; gap:9px; }
}
