Sitemap

Loading…
[cs_element_section _id=”1″ ][cs_element_layout_div _id=”2″ ][cs_element_raw_content _id=”3″ ].ds-sm * { box-sizing: border-box; margin: 0; padding: 0; }
.ds-sm {
–red: #ff2a13;
–red-lt: #ff5040;
–red-bg: rgba(255,42,19,0.06);
–red-bd: rgba(255,42,19,0.2);
–dark: #272727;
–text: #666666;
–muted: #999999;
–border: #e0e0e0;
–divider: #eeeeee;
–bg: #f3f3f3;
–white: #ffffff;
–font: Lato, ‘Segoe UI’, Arial, sans-serif;
–shadow: 0 2px 10px rgba(0,0,0,0.06);
–trans: all 0.2s ease;
font-family: var(–font);
color: var(–text);
background: var(–white);
-webkit-font-smoothing: antialiased;
line-height: 1.6;
width: 100%;
}
.ds-sm a, .ds-sm a:link, .ds-sm a:visited,
.ds-sm a:hover, .ds-sm a:active {
text-decoration: none !important;
color: inherit !important;
}

.ds-sm-stats {
display: flex;
gap: 1px;
background: var(–border);
border: 1px solid var(–border);
overflow: hidden;
margin-bottom: 2rem;
}
.ds-sm-stat {
flex: 1;
background: var(–white);
padding: 0.9rem 1rem;
text-align: center;
}
.ds-sm-stat-num {
display: block;
font-size: 1.5rem;
font-weight: 700;
color: var(–dark);
line-height: 1;
}
.ds-sm-stat-lbl {
display: block;
font-size: 0.55rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(–muted);
margin-top: 0.2rem;
}

.ds-sm-group { margin-bottom: 2.25rem; }
.ds-sm-group:last-child { margin-bottom: 0; }

.ds-sm-group-header {
display: flex;
align-items: center;
gap: 0.75rem;
margin-bottom: 0.9rem;
padding-bottom: 0.6rem;
border-bottom: 2px solid var(–divider);
position: relative;
}
.ds-sm-group-header::after {
content: ”;
position: absolute;
bottom: -2px; left: 0;
width: 28px; height: 2px;
background: var(–red);
}
.ds-sm-group-title {
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(–dark);
}
.ds-sm-group-count {
font-size: 0.55rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(–red);
background: var(–red-bg);
border: 1px solid var(–red-bd);
border-radius: 20px;
padding: 0.15rem 0.5rem;
}

.ds-sm-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
gap: 0.65rem;
}

.ds-sm-card {
display: block;
background: var(–white);
border: 1px solid var(–border);
padding: 0.75rem 0.9rem;
transition: var(–trans);
position: relative;
overflow: hidden;
}
.ds-sm-card::before {
content: ”;
position: absolute;
top: 0; left: 0; right: 0;
height: 2px;
background: var(–red);
transform: scaleX(0);
transform-origin: left;
transition: transform 0.2s;
}
.ds-sm-card:hover {
border-color: var(–red-bd);
box-shadow: var(–shadow);
}
.ds-sm-card:hover::before { transform: scaleX(1); }

.ds-sm-card-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
margin-bottom: 0.25rem;
}
.ds-sm-card-type {
font-size: 0.5rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(–red);
}
.ds-sm-card-arrow {
color: var(–border);
font-size: 0.8rem;
transition: var(–trans);
line-height: 1;
}
.ds-sm-card:hover .ds-sm-card-arrow { color: var(–red); }
.ds-sm-card-title {
font-size: 0.8rem;
font-weight: 400;
color: var(–dark);
line-height: 1.4;
}

#ds-sm-loading {
padding: 2rem 0;
font-size: 0.82rem;
color: var(–muted);
letter-spacing: 0.04em;
}

@media (max-width: 480px) {
.ds-sm-grid { grid-template-columns: 1fr; }
.ds-sm-stats { flex-wrap: wrap; }
.ds-sm-stat { flex: 1 1 50%; }
}

Loading…


Total


Studios


Services


Articles

(function () {

var base = ‘https://www.69dropsstudio.co.uk/wp-json/wp/v2/’;
var exclude = [‘home’,’blog’,’testing-layout’,’privacy-policy’,’cookie-policy’,’opt-out’,’terms-and-conditions’,’checkout’,’my-account’,’cart’];

var GROUPS = [
{
id: ‘studios’,
label: ‘Our Studios’,
test: function(s, tp) {
return tp === ‘page’ && /^studio-[1-4]$|infinity-cove/.test(s);
}
},
{
id: ‘services’,
label: ‘Photography Services’,
test: function(s, tp) {
return tp === ‘page’ && /headshot|food-photo|still-life|creative-photo|ecommerce|product-photo/.test(s);
}
},
{
id: ‘hire’,
label: ‘Studio Hire & Booking’,
test: function(s, tp) {
return tp === ‘page’ && /photography-studio-hire|hire-rates|equipment|booking-form|catering|studio-services|book$|safety/.test(s);
}
},
{
id: ‘blog’,
label: ‘Blog Articles’,
test: function(s, tp) { return tp === ‘post’; }
},
{
id: ‘company’,
label: ‘Company’,
test: function() { return true; }
}
];

function assignGroup(item) {
for (var i = 0; i < GROUPS.length; i++) { if (GROUPS[i].test(item.slug, item.type)) return GROUPS[i].id; } return 'company'; } function decode(str) { var el = document.createElement('span'); el.innerHTML = str; return el.textContent || el.innerText || str; } function fetchAll(type) { var items = []; function getPage(n) { return fetch(base + type + '?per_page=100&page=' + n + '&_fields=title,link,slug') .then(function(r) { var total = parseInt(r.headers.get('X-WP-TotalPages')) || 1; return r.json().then(function(d) { return { d: d, total: total }; }); }) .then(function(res) { res.d.forEach(function(item) { if (exclude.indexOf(item.slug) === -1) { items.push({ title: decode(item.title.rendered || item.slug), url: item.link, slug: item.slug, type: type === 'pages' ? 'page' : 'post' }); } }); return n < res.total ? getPage(n + 1) : items; }); } return getPage(1); } Promise.all([fetchAll('pages'), fetchAll('posts')]) .then(function(results) { var all = results[0].concat(results[1]); all.sort(function(a, b) { return a.title.localeCompare(b.title); }); all.forEach(function(item) { item.group = assignGroup(item); }); var studios = 0, services = 0, blog = 0; all.forEach(function(item) { if (item.group === 'studios') studios++; else if (item.group === 'services' || item.group === 'hire') services++; else if (item.group === 'blog') blog++; }); document.getElementById('ds-sm-total').textContent = all.length; document.getElementById('ds-sm-studios').textContent = studios; document.getElementById('ds-sm-services').textContent = services; document.getElementById('ds-sm-blog').textContent = blog; document.getElementById('ds-sm-statsbar').style.display = ''; var html = ''; GROUPS.forEach(function(group) { var items = all.filter(function(item) { return item.group === group.id; }); if (!items.length) return; html += ''; html += ''; html += '' + group.label + ''; html += '' + items.length + ''; html += ''; items.forEach(function(item) { html += ''; html += '' + (item.type === 'post' ? 'Article' : 'Page') + '↗'; html += '' + item.title + ''; html += ''; }); html += ''; }); document.getElementById('ds-sm-loading').style.display = 'none'; document.getElementById('ds-sm-groups').innerHTML = html; }) .catch(function() { document.getElementById('ds-sm-loading').textContent = 'Unable to load — please refresh.'; }); })(); \n\n[/cs_content_seo][/cs_element_layout_div][/cs_element_section][/cs_content]