/* ===========================================================
   Oslo Pussfix – Elementor Widgets: shared base styling.
   Per-instance colors/spacing/typography are controlled via each
   widget's Style tab in Elementor (injected as scoped CSS) —
   this file only supplies sane, overridable defaults.
=========================================================== */

:root{
	--ope-brand:#a8542f;
	--ope-brand-dark:#7e3d20;
	--ope-cream:#faf7f1;
	--ope-cream2:#f2ebdd;
	--ope-dark:#2b2521;
	--ope-muted:#5b5148;
	--ope-faint:#8a7e6f;
	--ope-font-serif:'Fraunces', Georgia, serif;
	--ope-font-sans:'Inter', system-ui, sans-serif;
}

.ope-btn{display:inline-block;font-family:var(--ope-font-sans);font-size:13px;font-weight:600;padding:13px 24px;border-radius:2px;cursor:pointer;border:1px solid transparent;text-decoration:none}
.ope-btn-primary{background:var(--ope-brand);color:#fff}
.ope-btn-primary:hover{background:var(--ope-brand-dark);color:#fff}
.ope-btn-outline{border-color:var(--ope-brand);color:var(--ope-brand);background:transparent}
.ope-btn-outline:hover{background:var(--ope-brand);color:#fff}
.ope-btn-outline-light{border-color:rgba(255,255,255,.6);color:#fff;background:transparent}
.ope-btn-outline-light:hover{background:rgba(255,255,255,.15)}

.ope-placeholder{background:repeating-linear-gradient(45deg,#efe6d6,#efe6d6 10px,#e7dcc7 10px,#e7dcc7 20px);display:flex;align-items:center;justify-content:center;color:#8a7e6f;font-size:13px;text-align:center;padding:12px;border-radius:4px;min-height:120px}

/* Hero */
.ope-hero{position:relative;overflow:hidden;min-height:480px;display:flex;align-items:flex-end}
.ope-hero-bg{position:absolute;inset:0;width:100%;height:100%;background-size:cover;background-position:center center;background-repeat:no-repeat}
.ope-hero-overlay{position:absolute;inset:0}
.ope-hero-content{position:relative;z-index:2;padding:60px;max-width:600px}
.ope-hero-eyebrow{font-family:var(--ope-font-sans);font-size:13px;letter-spacing:1px;text-transform:uppercase;font-weight:600;margin-bottom:12px}
.ope-hero-title{font-family:var(--ope-font-serif);font-size:48px;line-height:1.1;margin:0 0 18px;font-weight:500}
.ope-hero-text{font-family:var(--ope-font-sans);font-size:16px;line-height:1.6;margin-bottom:26px}
.ope-hero-actions{display:flex;gap:14px;flex-wrap:wrap}

/* Stats */
.ope-stats{display:flex;justify-content:space-around;flex-wrap:wrap;gap:20px}
.ope-stat{text-align:center}
.ope-stat-num{font-family:var(--ope-font-serif);font-size:32px;color:var(--ope-brand)}
.ope-stat-label{font-family:var(--ope-font-sans);font-size:12.5px;letter-spacing:.5px;text-transform:uppercase;margin-top:6px;color:var(--ope-muted)}

/* Split */
.ope-split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.ope-split.ope-split-reverse{direction:rtl}
.ope-split.ope-split-reverse > *{direction:ltr}
.ope-split-img{width:100%;object-fit:cover;border-radius:4px;display:block}
.ope-split-eyebrow{font-family:var(--ope-font-sans);font-size:13px;letter-spacing:1px;text-transform:uppercase;font-weight:600;margin-bottom:10px;color:var(--ope-brand)}
.ope-split-title{font-family:var(--ope-font-serif);font-size:30px;line-height:1.2;margin:0 0 20px}
.ope-split-text{font-family:var(--ope-font-sans);font-size:15px;line-height:1.75;color:var(--ope-muted);margin-bottom:24px}
.ope-split-link{font-family:var(--ope-font-sans);font-size:14px;font-weight:600;color:var(--ope-brand);text-decoration:none}

/* Grids (services / projects / team / articles) */
.ope-grid{display:grid;gap:22px;grid-template-columns:repeat(3,1fr)}
.ope-card{display:block;color:inherit;text-decoration:none}
.ope-card-img,.ope-card .ope-placeholder{width:100%;height:180px;object-fit:cover;border-radius:4px;display:block}
.ope-card-eyebrow{font-family:var(--ope-font-sans);font-size:12.5px;color:var(--ope-faint);text-transform:uppercase;letter-spacing:.5px;margin-top:12px}
.ope-card-title{font-family:var(--ope-font-serif);font-size:18px;margin-top:6px;color:var(--ope-dark)}
.ope-card-text{font-family:var(--ope-font-sans);font-size:13.5px;color:var(--ope-muted);margin-top:6px;line-height:1.6}

.ope-team-card{text-align:center}
.ope-team-photo,.ope-team-card .ope-placeholder{width:140px;height:140px;border-radius:50%;margin:0 auto;object-fit:cover}
.ope-team-name{font-family:var(--ope-font-serif);font-size:18px;margin-top:16px}
.ope-team-role{font-family:var(--ope-font-sans);font-size:13px;color:var(--ope-faint)}

/* Features (why-us) */
.ope-features{display:grid;gap:32px;grid-template-columns:repeat(3,1fr)}
.ope-feature-title{font-family:var(--ope-font-serif);font-size:20px;margin-bottom:10px}
.ope-feature-rule{display:block;height:2px;width:28px;background:var(--ope-brand);margin-bottom:14px}
.ope-feature-text{font-family:var(--ope-font-sans);font-size:14px;line-height:1.7;color:var(--ope-muted)}
.ope-feature-box{background:var(--ope-cream2);padding:22px;border-radius:4px;font-family:var(--ope-font-sans)}
.ope-feature-box .ope-feature-title{font-size:17px}
.ope-feature-box .ope-feature-text{font-size:13.5px}

/* Testimonial */
.ope-testimonial{text-align:center;padding:60px}
.ope-testimonial-quote{font-family:var(--ope-font-serif);font-style:italic;font-size:22px;line-height:1.5;max-width:680px;margin:0 auto 18px}
.ope-testimonial-name{font-family:var(--ope-font-sans);font-size:14px}

/* CTA banner */
.ope-cta-banner{text-align:center;padding:60px}
.ope-cta-title{font-family:var(--ope-font-serif);font-size:26px;margin-bottom:20px}

/* Contact form */
.ope-form{display:flex;flex-direction:column;gap:14px;font-family:var(--ope-font-sans)}
.ope-form input,.ope-form select,.ope-form textarea{padding:15px;border:1px solid #ddd0bd;border-radius:2px;font-size:14px;font-family:var(--ope-font-sans);width:100%}
.ope-form textarea{min-height:120px}
.ope-form-success{background:#e4efe0;color:#2f5233;padding:14px 18px;border-radius:4px;margin-bottom:16px;font-size:14px}
.ope-form-error{background:#f6e2df;color:#8c2f22;padding:14px 18px;border-radius:4px;margin-bottom:16px;font-size:14px}

/* Before/after */
.ope-ba-grid{display:grid;gap:24px;grid-template-columns:repeat(2,1fr)}
.ope-ba-images{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.ope-ba-img{height:220px;object-fit:cover;width:100%;display:block}
.ope-ba-labels{display:flex;justify-content:space-between;font-family:var(--ope-font-sans);font-size:12px;color:var(--ope-faint);padding:6px 4px}

/* Filter tabs / project archive */
.ope-filter-tabs{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:30px}
.ope-filter-tab{font-family:var(--ope-font-sans);padding:10px 20px;border-radius:20px;font-size:13px;font-weight:600;background:var(--ope-cream2);color:var(--ope-muted);text-decoration:none;display:inline-block}
.ope-filter-tab.is-active,.ope-filter-tab:hover{background:var(--ope-brand);color:#fff}
.ope-pagination{display:flex;justify-content:center;margin-top:40px;gap:8px}
.ope-pagination a,.ope-pagination span{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:13.5px;color:var(--ope-faint);text-decoration:none}
.ope-pagination .current{background:var(--ope-brand);color:#fff}

/* Breadcrumb */
.ope-breadcrumb{font-family:var(--ope-font-sans);font-size:13px;color:var(--ope-faint)}

/* Responsive helpers (widgets also add per-instance responsive controls in Elementor) */
@media (max-width:1024px){
	.ope-split,.ope-hero-content{max-width:none}
}
@media (max-width:767px){
	.ope-split{grid-template-columns:1fr !important}
	.ope-hero-content{padding:36px !important;max-width:none}
	.ope-hero-title{font-size:32px !important}
}
