.ogx-wrap{
--bg:#f4f8fc;
--card:#ffffff;
--text:#16324f;
--muted:#5d7288;
--line:#d9e5f0;
--brand:#0b5cab;
--brand-dark:#083968;
--brand-light:#eaf4ff;
--accent:#f4b400;
--success:#17a673;
--shadow:0 10px 30px rgba(10,50,90,.08);
font-family:Arial, Helvetica, sans-serif;
color:var(--text);
background:var(--bg);
padding:24px;
border-radius:18px;
}
.ogx-wrap *{box-sizing:border-box}
.ogx-container{max-width:1280px;margin:0 auto}
.ogx-wrap h1,.ogx-wrap h2,.ogx-wrap h3,.ogx-wrap h4{margin:0 0 10px;color:var(--brand-dark);line-height:1.2}
.ogx-wrap h1{font-size:34px}
.ogx-wrap h2{font-size:24px}
.ogx-wrap h3{font-size:18px}
.ogx-wrap h4{font-size:15px}
.ogx-wrap p{margin:0 0 14px;color:var(--muted);line-height:1.7;font-size:15px}
.ogx-hero{
background:linear-gradient(135deg,#0a325a 0%, #0d4c86 52%, #177fd3 100%);
color:#fff;
border-radius:22px;
padding:34px;
box-shadow:var(--shadow);
margin-bottom:20px;
}
.ogx-hero-grid{
display:grid;
grid-template-columns:1.35fr .85fr;
gap:22px;
align-items:center;
}
.ogx-hero h1,.ogx-hero h2,.ogx-hero h3,.ogx-hero p{color:#fff}
.ogx-tag{
display:inline-block;
padding:8px 12px;
border-radius:999px;
background:rgba(255,255,255,.14);
color:#fff;
border:1px solid rgba(255,255,255,.18);
font-size:12px;
font-weight:700;
margin-bottom:12px;
}
.ogx-sub{font-size:17px;opacity:.96}
.ogx-chip-row,.ogx-btn-row,.ogx-legend,.ogx-cta-actions{
display:flex;flex-wrap:wrap;gap:10px
}
.ogx-chip{
background:rgba(255,255,255,.12);
color:#fff;
border:1px solid rgba(255,255,255,.18);
padding:9px 12px;
border-radius:999px;
font-size:13px;
}
.ogx-btn-row{margin-top:16px}
.ogx-btn{
display:inline-block;
text-decoration:none;
padding:12px 18px;
border-radius:12px;
font-weight:700;
font-size:14px;
}
.ogx-btn-primary{background:#fff;color:var(--brand-dark)}
.ogx-btn-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35)}
.ogx-btn-accent{background:#ffd166;color:#573a00}
.ogx-side-card{
background:rgba(255,255,255,.10);
border:1px solid rgba(255,255,255,.18);
border-radius:18px;
padding:20px;
}
.ogx-side-card ul{margin:10px 0 0 18px;padding:0}
.ogx-side-card li{margin-bottom:10px;line-height:1.5;font-size:14px;color:#eef7ff}
.ogx-kpis{
display:grid;
grid-template-columns:repeat(6,1fr);
gap:14px;
margin-bottom:22px;
}
.ogx-kpi{
background:var(--card);
border:1px solid var(--line);
border-radius:16px;
padding:18px 16px;
box-shadow:var(--shadow);
}
.ogx-kpi-label{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}
.ogx-kpi-value{display:block;font-size:24px;font-weight:800;color:var(--brand-dark)}
.ogx-kpi-sub{display:block;margin-top:6px;font-size:12px;color:var(--success);font-weight:700}
.ogx-section{
background:var(--card);
border:1px solid var(--line);
border-radius:20px;
padding:26px;
box-shadow:var(--shadow);
margin-bottom:22px;
}
.ogx-section-head{
display:flex;
justify-content:space-between;
align-items:flex-end;
flex-wrap:wrap;
gap:18px;
margin-bottom:16px;
}
.ogx-pill{
display:inline-block;
padding:8px 12px;
border-radius:999px;
background:var(--brand-light);
color:var(--brand);
font-size:12px;
font-weight:700;
margin-bottom:8px;
}
.ogx-grid-2{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}
.ogx-grid-eq{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ogx-card{
background:#fff;
border:1px solid var(--line);
border-radius:18px;
padding:20px;
}
.ogx-chart{
border:1px solid var(--line);
border-radius:18px;
background:linear-gradient(180deg,#fbfdff 0%, #f2f8ff 100%);
padding:18px;
min-height:320px;
}
.ogx-chart-title{font-size:16px;font-weight:800;color:var(--brand-dark);margin-bottom:14px}
.ogx-legend{gap:10px 14px;margin-bottom:16px}
.ogx-legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-weight:700}
.ogx-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.ogx-stacked{
display:flex;
align-items:flex-end;
gap:14px;
height:220px;
margin-top:8px;
}
.ogx-bar-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:10px}
.ogx-stack{
width:100%;
max-width:64px;
border-radius:12px 12px 0 0;
overflow:hidden;
display:flex;
flex-direction:column;
justify-content:flex-end;
background:#e9f1f8;
border:1px solid #d6e4f0;
}
.ogx-stack-seg{width:100%}
.ogx-year{font-size:12px;color:var(--muted);font-weight:700}
.ogx-hbars{display:flex;flex-direction:column;gap:14px;margin-top:10px}
.ogx-hbar-row{display:grid;grid-template-columns:145px 1fr 60px;gap:12px;align-items:center}
.ogx-hbar-name{font-size:13px;font-weight:700;color:var(--text)}
.ogx-hbar-track{height:16px;border-radius:999px;background:#e8f1fa;overflow:hidden;border:1px solid #d6e4f0}
.ogx-hbar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#0f6fc2,#47b6ff)}
.ogx-hbar-val{text-align:right;font-size:12px;color:var(--muted);font-weight:700}
.ogx-image-box{
min-height:320px;
border-radius:18px;
padding:22px;
color:#fff;
position:relative;
overflow:hidden;
background:linear-gradient(145deg,#0b355f 0%, #0f6ab6 60%, #3eb8ff 100%);
}
.ogx-image-box:before{
content:"";
position:absolute;
inset:auto -40px -60px auto;
width:220px;
height:220px;
border-radius:50%;
background:rgba(255,255,255,.08);
}
.ogx-image-box:after{
content:"";
position:absolute;
inset:20px auto auto 20px;
width:90px;
height:90px;
border-radius:50%;
background:rgba(255,255,255,.08);
}
.ogx-image-box h3,.ogx-image-box p{color:#fff;position:relative;z-index:1}
.ogx-image-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:10px;
margin-top:18px;
position:relative;
z-index:1;
}
.ogx-tile{
background:rgba(255,255,255,.13);
border:1px solid rgba(255,255,255,.18);
border-radius:14px;
padding:14px;
min-height:72px;
font-size:13px;
line-height:1.5;
}
.ogx-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}
.ogx-table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}
.ogx-table th,.ogx-table td{
padding:14px;
border-bottom:1px solid #e7eef5;
text-align:left;
vertical-align:top;
font-size:13px;
line-height:1.5;
}
.ogx-table th{
background:#f2f8fe;
color:var(--brand-dark);
font-size:12px;
text-transform:uppercase;
letter-spacing:.02em;
}
.ogx-table tr:last-child td{border-bottom:none}
.ogx-badge{
display:inline-block;
padding:6px 10px;
border-radius:999px;
font-size:11px;
font-weight:700;
white-space:nowrap;
}
.ogx-badge-high{background:#e9f9f1;color:#0d7c51}
.ogx-badge-medium{background:#fff7e6;color:#9a6900}
.ogx-badge-core{background:#ecf5ff;color:#0c63b5}
.ogx-valuechain{
display:grid;
grid-template-columns:repeat(7,1fr);
gap:10px;
margin-top:18px;
}
.ogx-vc-step{
position:relative;
background:#f2f8fe;
border:1px solid var(--line);
border-radius:16px;
padding:18px 12px;
text-align:center;
font-size:13px;
font-weight:700;
color:var(--brand-dark);
min-height:88px;
display:flex;
align-items:center;
justify-content:center;
}
.ogx-vc-step:not(:last-child):after{
content:"→";
position:absolute;
right:-9px;
top:50%;
transform:translateY(-50%);
font-size:18px;
color:var(--brand);
font-weight:900;
}
.ogx-cta-band{
display:flex;
justify-content:space-between;
align-items:center;
gap:16px;
flex-wrap:wrap;
padding:18px 20px;
margin-top:18px;
border-radius:18px;
background:linear-gradient(90deg,#0b5cab,#0d76d4);
color:#fff;
}
.ogx-cta-band p{color:#eef7ff;margin:0;font-size:14px}
.ogx-faq details{
border:1px solid var(--line);
border-radius:14px;
padding:14px 16px;
background:#fff;
margin-bottom:12px;
}
.ogx-faq summary{cursor:pointer;font-weight:700;color:var(--brand-dark)}
.ogx-faq p{margin:12px 0 0}
.ogx-note{font-size:12px;color:var(--muted);margin-top:10px}
@media (max-width:1100px){
.ogx-kpis{grid-template-columns:repeat(3,1fr)}
.ogx-hero-grid,.ogx-grid-2,.ogx-grid-eq{grid-template-columns:1fr}
.ogx-valuechain{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:760px){
.ogx-wrap{padding:14px}
.ogx-hero{padding:22px}
.ogx-kpis{grid-template-columns:repeat(2,1fr)}
.ogx-valuechain{grid-template-columns:repeat(2,1fr)}
.ogx-hbar-row{grid-template-columns:110px 1fr 52px}
.ogx-wrap h1{font-size:28px}
}
const REPORT_DATA = {
country: "Peru",
reportTitle: "Peru Oil and Gas Market",
subtitle: "Explore upstream opportunities, field-wise production trends, reserves analysis, refinery and LNG intelligence, pipeline and storage infrastructure, and petroleum products demand outlook in one decision-ready market intelligence report.",
chips: [
"Exploration Blocks",
"Field-Wise Production",
"Oil & Gas Reserves",
"Refinery & LNG Assets",
"Pipelines & Storage",
"Demand Forecasts"
],
ctas: {
buy: { text: "Buy Full Report", href: "#buy-report" },
sample: { text: "Request Free Sample", href: "#request-sample" },
analyst: { text: "Talk to an Analyst", href: "#custom-scope" }
},
heroBullets: [
"Asset-level visibility across blocks, fields, refineries, LNG assets, pipelines, storage, and fuel demand centers.",
"Designed for strategy teams, investors, operators, consultants, and country-level energy planners.",
"Supports upstream opportunity screening, infrastructure mapping, downstream planning, and market-entry decisions.",
"Built to show where opportunity, bottlenecks, and value-chain control sit."
],
kpis: [
{ label: "Crude Oil Production", value: "XX kbpd", sub: "Update with report value" },
{ label: "Natural Gas Production", value: "XX mmcfd", sub: "Update with report value" },
{ label: "Proven Oil Reserves", value: "XX mmbbl", sub: "Update with report value" },
{ label: "Proven Gas Reserves", value: "XX bcf", sub: "Update with report value" },
{ label: "Refining Capacity", value: "XX kbpd", sub: "Update with report value" },
{ label: "Pipeline / Storage", value: "XX km", sub: "Add storage metric if needed" }
],
overview: {
title: "Peru Oil and Gas Industry Overview",
pill: "Report Overview",
paragraphs: [
"Peru’s oil and gas market can be presented as a high-value hydrocarbon system spanning upstream exploration, gas-led production, strategic infrastructure, refining, LNG connectivity, and petroleum products demand. The report overview section should help visitors understand not only the scale of the market, but also where opportunities, infrastructure concentration, and commercial leverage exist across the value chain.",
"This page layout is designed to balance visual appeal with real commercial depth. It uses chart-led storytelling, concise decision-useful tables, and conversion-focused calls to action so that visitors can quickly see the breadth of coverage before moving to request a sample or purchase the full report."
],
insightTitle: "Why Peru Matters",
insights: [
{ head: "Upstream visibility:", text: "show block-level and field-level opportunity rather than only top-line market size." },
{ head: "Infrastructure relevance:", text: "connect production and reserves with LNG, pipeline, refinery, and storage assets." },
{ head: "Downstream depth:", text: "include petroleum products demand and balancing indicators to widen buyer relevance." },
{ head: "Sales impact:", text: "this kind of dashboard increases dwell time and helps visitors understand report depth faster." }
],
ctaText: "Need sample pages with historical production, reserves, and infrastructure mapping for Peru?"
},
chart1: {
title: "Peru Hydrocarbon Production, Demand, and Market Balance",
type: "stacked",
legend: [
{ label: "Crude Oil", color: "#0f6fc2" },
{ label: "Natural Gas", color: "#28a1ff" },
{ label: "LNG / NGL", color: "#7cc8ff" },
{ label: "Product Demand", color: "#ffd166" }
],
data: [
{ year: "2022", total: 135, segments: [28, 30, 14, 28] },
{ year: "2024", total: 155, segments: [25, 31, 14, 30] },
{ year: "2026", total: 178, segments: [21, 33, 14, 32] },
{ year: "2028", total: 198, segments: [19, 34, 13, 34] },
{ year: "2030", total: 220, segments: [18, 35, 12, 35] }
],
note: "Demo chart only. Replace with actual historical and forecast series."
},
sectionBlocks: {
exploration: {
pill: "Upstream Opportunity",
title: "Peru Exploration Blocks and Basin Opportunity Analysis",
image: {
title: "Image Placeholder: Exploration Blocks & Basin Map",
text: "Replace this box with a premium map visual showing offshore and onshore blocks, producing areas, development zones, and basin-wise investment opportunity signals.",
tiles: [
"Northwest Offshore Blocks",
"Talara Oil Area",
"Camisea Gas Area",
"Amazon Basin Opportunities"
]
},
table: {
headers: ["Asset / Area", "Type", "Coverage in Report", "Opportunity Signal"],
rows: [
["Camisea Gas Area", "Gas", "Production, reserves, operators, development outlook", "High"],
["Northwest Offshore Block", "Oil & Gas", "Block profile, contractor presence, basin potential", "Medium"],
["Talara Onshore Area", "Oil", "Producing assets, brownfield outlook, logistics relevance", "Core"],
["Southern Gas Block", "Gas", "Resource positioning and development optionality", "High"],
["Amazon Basin Block", "Oil", "Resource, access, evacuation, and supply outlook", "Medium"]
]
}
},
production: {
pill: "Production Intelligence",
title: "Peru Field-Wise Oil and Gas Production Dashboard",
chart: {
title: "Top Producing Fields / Areas",
type: "hbar",
data: [
{ name: "Camisea Area", value: 92 },
{ name: "Talara Area", value: 68 },
{ name: "Northwest Offshore", value: 59 },
{ name: "Amazon Basin", value: 47 },
{ name: "Southern Block", value: 39 }
],
note: "Demo bar lengths only. Replace labels and values with report data."
},
table: {
headers: ["Field / Area", "Hydrocarbon Type", "Key Metric", "Why It Matters"],
rows: [
["Camisea Area", "Gas", "Production trend + reserve base", "Core domestic gas backbone and major strategic asset"],
["Talara Area", "Oil", "Output trend + brownfield intensity", "Important for mature oil production and coastal infrastructure linkage"],
["Northwest Offshore", "Oil & Gas", "Asset productivity and project pipeline", "Signals offshore optionality and future activity visibility"],
["Amazon Basin", "Oil", "Reserve life and logistics exposure", "Useful for understanding access and evacuation sensitivity"],
["Southern Gas Block", "Gas", "Development position", "Shows medium-term resource commercialization potential"]
]
}
},
infrastructure: {
pill: "Downstream & Infrastructure",
title: "Peru Refinery, LNG, Pipeline, and Storage Infrastructure",
chart: {
title: "Petroleum Products Demand Forecast",
type: "stacked",
legend: [
{ label: "Diesel", color: "#0f6fc2" },
{ label: "Gasoline", color: "#28a1ff" },
{ label: "LPG", color: "#ffd166" },
{ label: "Jet Fuel", color: "#7cc8ff" }
],
data: [
{ year: "2024", total: 128, segments: [38, 24, 20, 18] },
{ year: "2026", total: 152, segments: [36, 24, 22, 18] },
{ year: "2028", total: 177, segments: [34, 25, 22, 19] },
{ year: "2030", total: 206, segments: [32, 25, 23, 20] }
],
note: "Use your demand forecast data for diesel, gasoline, LPG, jet fuel, and fuel oil."
},
table: {
headers: ["Asset", "Type", "Coverage Included", "Strategic Relevance"],
rows: [
["Talara Refinery Hub", "Refinery", "Capacity, product slate, operating role, market linkage", "Domestic fuels balancing and downstream competitiveness"],
["Peru LNG System", "LNG", "Plant profile, export role, terminal linkage", "Gas monetization and external market connectivity"],
["Main Gas Pipeline Network", "Pipeline", "Route, linkage, throughput relevance, node dependency", "Critical for system resilience and market continuity"],
["Coastal Storage Terminal", "Storage", "Location, role in supply balancing, logistics support", "Useful for inventory security and distribution planning"],
["Import / Export Fuel Terminal", "Terminal", "Trade support and domestic balancing function", "Connects local demand with regional supply flows"]
]
},
image: {
title: "Image Placeholder: Gas, LNG, Pipeline & Storage Network Map",
text: "Replace with a transport and infrastructure map covering pipelines, LNG, refinery hubs, storage, and terminal nodes.",
tiles: [
"Pipeline Corridors",
"LNG Terminal",
"Refinery Hub",
"Storage / Terminal Nodes"
]
},
card: {
title: "Use This Section to Sell Report Depth",
paragraphs: [
"Show how upstream supply connects to LNG, refining, pipelines, and storage rather than treating them as separate chapters.",
"That structure makes the page stronger for investors, operators, consultants, and commercial teams comparing logistics, supply security, and downstream demand.",
"Keep the text concise and let the chart, map, and table do the selling."
]
}
},
valueChain: {
pill: "Full Coverage",
title: "Peru Oil and Gas Value Chain Analysis",
imageTitle: "Image Placeholder: Full Value Chain Infographic",
imageText: "Replace this area with a premium infographic that visually communicates end-to-end report coverage from exploration blocks to end-use demand.",
steps: [
"Exploration Blocks",
"Field Development",
"Production",
"Pipelines",
"Storage / LNG",
"Refining",
"Distribution & Demand"
]
}
},
faq: {
pill: "Buyer FAQs",
title: "Frequently Asked Questions",
items: [
{
q: "Does the report include Peru field-wise oil and gas production data?",
a: "Yes. The page and report can highlight production intelligence at field, area, or block level depending on your preferred presentation format."
},
{
q: "Does the report cover refinery, LNG, pipeline, and storage assets?",
a: "Yes. Use the infrastructure table and map section to show that the report extends across upstream, midstream, and downstream assets."
},
{
q: "Can the scope be customized for specific assets, blocks, or fuel segments?",
a: "Yes. Add a custom-scope CTA so buyers can request additional coverage on blocks, fields, terminals, refining, LNG, storage, or demand segments."
},
{
q: "Is forecast data included along with historical market analysis?",
a: "Yes. The sample chart placeholders are built to accommodate both historical and forecast market intelligence."
}
],
ctaText: "Ready to evaluate Peru’s upstream, midstream, and downstream opportunity in one report?"
}
};
function badgeClass(value){
const v = String(value).toLowerCase();
if(v.includes("high")) return "ogx-badge ogx-badge-high";
if(v.includes("core")) return "ogx-badge ogx-badge-core";
return "ogx-badge ogx-badge-medium";
}
function renderLegend(items){
return `${items.map(item => `
${item.label}
`).join("")}`;
}
function renderStackedChart(chart){
return `
${chart.title}
${renderLegend(chart.legend)}
${chart.data.map(col => {
const totalPct = col.segments.reduce((a,b)=>a+b,0);
return `
${col.segments.map((seg, idx) => `
`).join("")}
${col.year}
`;
}).join("")}
${chart.note || ""}
`;
}
function renderHBarChart(chart){
const max = Math.max(...chart.data.map(d => d.value));
return `
${chart.title}
${chart.data.map(d => `
${d.name}
${d.value}
`).join("")}
${chart.note || ""}
`;
}
function renderTable(table){
return `
${table.headers.map(h => `${h}`).join("")}
${table.rows.map(row => `
${row.map((cell, idx) => {
const isLastCol = idx === row.length - 1;
if (table.headers[idx].toLowerCase().includes("signal") && isLastCol) {
return `${cell}`;
}
return `${cell}`;
}).join("")}
`).join("")}
`;
}
function renderImageBox(img){
return `
${img.title}
${img.text}
${img.tiles.map(tile => `${tile}`).join("")}
`;
}
function render(){
const d = REPORT_DATA;
const html = `
Country Energy Intelligence
${d.reportTitle}
${d.subtitle}
${d.chips.map(chip => `${chip}`).join("")}
${d.ctas.buy.text}
${d.ctas.sample.text}
${d.ctas.analyst.text}
Why This ${d.country} Report Stands Out
${d.heroBullets.map(item => `${item}`).join("")}
${d.kpis.map(kpi => `
${kpi.label}
${kpi.value}
${kpi.sub}
`).join("")}
${d.overview.pill}
${d.overview.title}
${d.overview.paragraphs.map(p => `${p}`).join("")}
${renderStackedChart(d.chart1)}
${d.overview.insightTitle}
${d.overview.insights.map(item => `${item.head} ${item.text}`).join("")}
${d.overview.ctaText}
${d.ctas.sample.text}
Request Custom Scope
${d.sectionBlocks.exploration.pill}
${d.sectionBlocks.exploration.title}
${renderImageBox(d.sectionBlocks.exploration.image)}
${renderTable(d.sectionBlocks.exploration.table)}
${d.sectionBlocks.production.pill}
${d.sectionBlocks.production.title}
${renderHBarChart(d.sectionBlocks.production.chart)}
${renderTable(d.sectionBlocks.production.table)}
${d.sectionBlocks.infrastructure.pill}
${d.sectionBlocks.infrastructure.title}
${renderStackedChart(d.sectionBlocks.infrastructure.chart)}
${renderTable(d.sectionBlocks.infrastructure.table)}
${renderImageBox(d.sectionBlocks.infrastructure.image)}
${d.sectionBlocks.infrastructure.card.title}
${d.sectionBlocks.infrastructure.card.paragraphs.map(p => `${p}`).join("")}
${d.sectionBlocks.valueChain.pill}
${d.sectionBlocks.valueChain.title}
${d.sectionBlocks.valueChain.imageTitle}
${d.sectionBlocks.valueChain.imageText}
${d.sectionBlocks.valueChain.steps.map(step => `${step}`).join("")}
${d.faq.pill}
${d.faq.title}
${d.faq.items.map((item, i) => `
${item.q}
${item.a}
`).join("")}
${d.faq.ctaText}
${d.ctas.buy.text}
${d.ctas.sample.text}
Need a Custom Scope?
Edit only the REPORT_DATA object to reuse this template for any country report. You can change titles, KPIs, chart values, tables, image labels, FAQs, and CTA copy without editing the HTML layout.
`;
document.getElementById("og-country-dashboard").innerHTML = html;
}
render();