Files
rtosure/security.html
T

259 lines
20 KiB
HTML

<!DOCTYPE html>
<html lang="en-AU">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="RTOSure security and data handling — Australian hosting, encryption in transit and at rest, access controls, and compliance with the Australian Privacy Act 1988.">
<title>Security & Data — RTOSure</title>
<link rel="stylesheet" href="styles.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<style>
body { padding-top: 68px; }
/* ── Page hero (reused across interior pages) ── */
.page-hero {
background: var(--color-navy);
padding-block: clamp(48px,7vw,88px);
position: relative; overflow: hidden;
}
.page-hero::before {
content:''; position:absolute; inset:0; pointer-events:none;
background: radial-gradient(ellipse 70% 60% at 80% 50%, var(--color-teal-on-dark-bg), transparent 70%);
}
.page-hero::after {
content:''; position:absolute; inset:0; pointer-events:none;
background-image: radial-gradient(var(--color-on-dark-surface) 1px, transparent 1px);
background-size: 32px 32px;
}
.page-hero-inner { position:relative; z-index:1; max-width:700px; }
.page-hero-label { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--color-teal); margin-bottom:var(--space-md); display:block; }
.page-hero h1 { font-family:var(--font-display); font-size:clamp(34px,5vw,60px); line-height:1.08; letter-spacing:-.025em; color:var(--color-white); margin-bottom:var(--space-lg); }
.page-hero h1 .accent { color:var(--color-teal); }
.page-hero p { font-size:clamp(16px,1.6vw,19px); color:var(--color-on-dark-text); line-height:1.7; max-width:600px; margin-bottom:var(--space-xl); }
.page-hero-ctas { display:flex; gap:var(--space-md); flex-wrap:wrap; }
/* ── Content sections ── */
.content-section { padding-block:var(--space-3xl); }
.content-section.alt { background:var(--color-surface); border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.content-section.teal-tint { background:var(--color-teal-light); border-top:1px solid var(--color-teal-mid); border-bottom:1px solid var(--color-teal-mid); }
.content-section.navy { background:var(--color-navy); }
/* ── Two-col layout ── */
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-2xl); align-items:start; }
.two-col.center { align-items:center; }
@media(max-width:768px){ .two-col { grid-template-columns:1fr; } }
/* ── Feature rows (alternating) ── */
.feature-row { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-2xl); align-items:center; padding-block:var(--space-2xl); border-bottom:1px solid var(--color-border); }
.feature-row:last-child { border-bottom:none; }
.feature-row.flip { }
.feature-row .feature-row-visual { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-xl); min-height:200px; display:flex; align-items:center; justify-content:center; }
@media(max-width:768px){ .feature-row { grid-template-columns:1fr; } .feature-row.flip .feature-row-visual { order:-1; } }
/* ── Icon box ── */
.icon-box { width:56px; height:56px; background:var(--color-teal-light); border:1px solid var(--color-teal-mid); border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; margin-bottom:var(--space-md); }
.icon-box svg { width:28px; height:28px; color:var(--color-teal-dark); }
/* ── Capability card grid ── */
.cap-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-lg); }
@media(max-width:900px){ .cap-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .cap-grid { grid-template-columns:1fr; } }
.cap-card { border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-xl); background:var(--color-white); }
.cap-card h3 { font-size:16px; font-weight:700; color:var(--color-navy); margin-bottom:var(--space-sm); }
.cap-card p { font-size:14px; line-height:1.65; color:var(--color-slate); }
/* ── Pricing cards ── */
.pricing-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-lg); }
@media(max-width:900px){ .pricing-grid { grid-template-columns:1fr; max-width:480px; margin-inline:auto; } }
.pricing-card { border:1.5px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-xl); background:var(--color-white); display:flex; flex-direction:column; }
.pricing-card.featured { border-color:var(--color-teal); box-shadow:var(--shadow-teal); }
.pricing-tag { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--color-teal); margin-bottom:var(--space-sm); }
.pricing-tag.featured-tag { background:var(--color-teal); color:var(--color-white); padding:3px 10px; border-radius:4px; display:inline-block; }
.pricing-name { font-size:22px; font-weight:800; color:var(--color-navy); margin-bottom:var(--space-sm); }
.pricing-price { font-size:36px; font-weight:700; color:var(--color-navy); line-height:1; margin-bottom:4px; }
.pricing-price span { font-size:16px; font-weight:400; color:var(--color-muted); }
.pricing-desc { font-size:14px; color:var(--color-slate); margin-bottom:var(--space-lg); padding-bottom:var(--space-lg); border-bottom:1px solid var(--color-border); }
.pricing-features { list-style:none; margin-bottom:var(--space-xl); flex:1; }
.pricing-features li { display:flex; gap:8px; font-size:14px; color:var(--color-charcoal); padding:5px 0; border-bottom:1px solid var(--color-surface); }
.pricing-features li:last-child { border-bottom:none; }
.pf-check { width:16px; height:16px; background:var(--color-teal); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:9px; color:var(--color-white); flex-shrink:0; margin-top:2px; }
/* ── FAQ ── */
.faq-item { border-bottom:1px solid var(--color-border); padding-block:var(--space-lg); }
.faq-item:last-child { border-bottom:none; }
.faq-q { font-size:17px; font-weight:700; color:var(--color-navy); margin-bottom:var(--space-sm); }
.faq-a { font-size:15px; color:var(--color-slate); line-height:1.7; }
/* ── Team cards ── */
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-xl); }
@media(max-width:900px){ .team-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .team-grid { grid-template-columns:1fr; } }
.team-card { text-align:center; }
.team-avatar { width:96px; height:96px; border-radius:50%; background:var(--color-teal-light); border:3px solid var(--color-teal-mid); margin-inline:auto; margin-bottom:var(--space-md); display:flex; align-items:center; justify-content:center; font-size:28px; font-weight:700; color:var(--color-teal-dark); }
.team-name { font-size:18px; font-weight:700; color:var(--color-navy); margin-bottom:4px; }
.team-role { font-size:13px; font-weight:600; color:var(--color-teal); text-transform:uppercase; letter-spacing:.08em; margin-bottom:var(--space-sm); }
.team-bio { font-size:14px; color:var(--color-slate); line-height:1.65; }
/* ── Form ── */
.form-field { margin-bottom:var(--space-md); }
.form-label { display:block; font-size:13px; font-weight:600; color:var(--color-navy); margin-bottom:6px; }
.form-input { width:100%; padding:12px 14px; border:1.5px solid var(--color-border); border-radius:8px; font-size:15px; font-family:var(--font-body); color:var(--color-charcoal); background:var(--color-white); transition:border-color var(--duration); }
.form-input:focus { outline:none; border-color:var(--color-teal); box-shadow:0 0 0 3px var(--color-teal-light); }
select.form-input { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394a3b8' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:36px; }
textarea.form-input { resize:vertical; min-height:100px; }
/* ── Resource cards ── */
.resource-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-lg); }
@media(max-width:900px){ .resource-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .resource-grid { grid-template-columns:1fr; } }
.resource-card { border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; background:var(--color-white); transition:box-shadow var(--duration),transform var(--duration); }
.resource-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.resource-card-type { padding:var(--space-md) var(--space-lg); border-bottom:1px solid var(--color-border); }
.resource-type-badge { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.resource-card-body { padding:var(--space-lg); }
.resource-card-body h3 { font-size:16px; font-weight:700; color:var(--color-navy); margin-bottom:var(--space-sm); line-height:1.35; }
.resource-card-body p { font-size:14px; color:var(--color-slate); line-height:1.6; margin-bottom:var(--space-md); }
.resource-card-link { font-size:14px; font-weight:600; color:var(--color-teal); display:inline-flex; align-items:center; gap:4px; transition:gap 150ms; }
.resource-card-link:hover { gap:8px; }
/* ── Stat blocks ── */
.stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-lg); }
@media(max-width:900px){ .stat-row { grid-template-columns:repeat(2,1fr); } }
.stat-block { text-align:center; padding:var(--space-xl); border-radius:var(--radius-lg); background:var(--color-white); border:1px solid var(--color-border); }
.stat-number { font-family:var(--font-display); font-size:48px; font-weight:400; color:var(--color-teal); line-height:1; margin-bottom:var(--space-sm); }
.stat-label { font-size:14px; color:var(--color-slate); }
/* ── Breadcrumb ── */
.breadcrumb { display:flex; align-items:center; gap:var(--space-sm); padding:var(--space-md) 0; margin-bottom:var(--space-md); }
.breadcrumb a { font-size:13px; color:var(--color-muted); text-decoration:none; }
.breadcrumb a:hover { color:var(--color-teal); }
.breadcrumb span { font-size:13px; color:var(--color-border); }
.breadcrumb .current { font-size:13px; color:var(--color-slate); font-weight:500; }
/* ── Placeholder box (for screenshots etc.) ── */
.placeholder-box { background:var(--color-surface); border:2px dashed var(--color-border); border-radius:var(--radius-lg); padding:var(--space-3xl); text-align:center; color:var(--color-muted); font-size:14px; }
/* ── Integration data flow ── */
.integration-flow { display:grid; grid-template-columns:1fr auto 1fr; gap:var(--space-lg); align-items:center; }
.integration-system { background:var(--color-white); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-xl); text-align:center; }
.integration-arrow { font-size:24px; color:var(--color-teal); text-align:center; }
@media(max-width:640px){ .integration-flow { grid-template-columns:1fr; } .integration-arrow { transform:rotate(90deg); margin-inline:auto; } }
/* ── CTA strip (reusable close-of-page strip) ── */
.cta-strip { background:var(--color-teal); padding-block:var(--space-2xl); }
.cta-strip-inner { display:flex; align-items:center; justify-content:space-between; gap:var(--space-xl); }
.cta-strip h2 { font-family:var(--font-display); font-size:clamp(22px,3vw,38px); color:var(--color-white); letter-spacing:-.02em; }
.cta-strip p { font-size:16px; color:var(--color-on-dark-text); margin-top:var(--space-sm); }
.cta-strip-actions { display:flex; gap:var(--space-md); flex-shrink:0; flex-wrap:wrap; }
.btn-cta-white { background:var(--color-white); color:var(--color-teal-dark); box-shadow:var(--shadow-md); }
.btn-cta-white:hover { background:var(--color-surface); transform:translateY(-1px); }
@media(max-width:768px){ .cta-strip-inner { flex-direction:column; text-align:center; } }
/* ── Sub-brand pill (for framework pages) ── */
.framework-badge { display:inline-flex; align-items:center; gap:8px; padding:6px 14px; border-radius:100px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-bottom:var(--space-lg); }
.fb-teal { background:var(--color-teal-light); color:var(--color-teal-dark); border:1px solid var(--color-teal-mid); }
.fb-blue { background:var(--color-cricos-light); color:var(--color-cricos); border:1px solid var(--color-cricos); }
.fb-purple { background:var(--color-elicos-light); color:var(--color-elicos); border:1px solid var(--color-elicos); }
/* ── Security trust badges ── */
.trust-badges { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-lg); }
@media(max-width:900px){ .trust-badges { grid-template-columns:repeat(2,1fr); } }
.trust-badge { border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-xl); text-align:center; background:var(--color-white); }
.trust-badge-icon { width:48px; height:48px; background:var(--color-teal-light); border-radius:12px; margin-inline:auto; margin-bottom:var(--space-md); display:flex; align-items:center; justify-content:center; border:1px solid var(--color-teal-mid); }
.trust-badge-icon svg { width:24px; height:24px; color:var(--color-teal-dark); }
.trust-badge h3 { font-size:15px; font-weight:700; color:var(--color-navy); margin-bottom:var(--space-xs); }
.trust-badge p { font-size:13px; color:var(--color-slate); line-height:1.55; }
</style>
</head>
<body class="">
<div id="site-header"></div>
<section class="page-hero" aria-labelledby="sec-hero-h1">
<div class="container">
<div class="page-hero-inner">
<span class="page-hero-label">Security &amp; data</span>
<h1 id="sec-hero-h1">Your compliance data.<br><span class="accent">Kept in Australia.<br>Kept secure.</span></h1>
<p>RTOSure handles sensitive compliance data for Australian colleges — trainer records, student welfare files, audit evidence, governance documentation. We take that responsibility seriously.</p>
</div>
</div>
</section>
<!-- SEC-S2: TRUST BADGES -->
<section class="content-section" aria-label="Security overview">
<div class="container">
<div class="centered mb-xl">
<span class="section-label">Our commitments</span>
<h2 class="section-heading">What we do to protect your data</h2>
</div>
<div class="trust-badges">
<div class="trust-badge">
<div class="trust-badge-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"/><rect x="2" y="14" width="20" height="8" rx="2" ry="2"/><line x1="6" y1="6" x2="6.01" y2="6"/><line x1="6" y1="18" x2="6.01" y2="18"/></svg></div>
<h3>Australian hosting</h3>
<p>All RTOSure data is stored on Australian servers. We do not host or process compliance data offshore.</p>
</div>
<div class="trust-badge">
<div class="trust-badge-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0110 0v4"/></svg></div>
<h3>Encryption</h3>
<p>Data encrypted in transit (TLS 1.2+) and at rest. Audit evidence, personal records, and governance documents are protected at every layer.</p>
</div>
<div class="trust-badge">
<div class="trust-badge-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 00-3-3.87"/><path d="M16 3.13a4 4 0 010 7.75"/></svg></div>
<h3>Access controls</h3>
<p>Role-based access control means staff only see what they need to. Admins manage permissions. All access is logged.</p>
</div>
<div class="trust-badge">
<div class="trust-badge-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><polyline points="9 12 11 14 15 10"/></svg></div>
<h3>Privacy Act compliant</h3>
<p>RTOSure is designed to support compliance with the Australian Privacy Act 1988 and the Australian Privacy Principles.</p>
</div>
</div>
</div>
</section>
<!-- SEC-S3: DETAIL -->
<section class="content-section alt" aria-label="Security details">
<div class="container" style="max-width:800px;">
<h2 class="section-heading mb-lg">Security detail</h2>
<div class="faq-item"><div class="faq-q">Where is our data stored?</div><div class="faq-a">RTOSure data is hosted on Australian servers. [Specific hosting provider and region to be confirmed — e.g. AWS Sydney, Azure Australia East.] We do not store or process your compliance data offshore.</div></div>
<div class="faq-item"><div class="faq-q">How is data encrypted?</div><div class="faq-a">All data in transit is encrypted using TLS 1.2 or higher. Data at rest is encrypted using AES-256. This includes all compliance documents, student records, trainer credentials, and governance files stored in your evidence register.</div></div>
<div class="faq-item"><div class="faq-q">Who can access our data?</div><div class="faq-a">Access is controlled at the college level. Your nominated administrator manages user roles and permissions. RTOSure staff do not access your data without your explicit permission, except for the purposes of support and system maintenance (logged).</div></div>
<div class="faq-item"><div class="faq-q">What happens to our data if we cancel?</div><div class="faq-a">On cancellation, you can export all your evidence, registers, and compliance records in standard formats before your account closes. Data is retained for [30 days / 90 days — to be confirmed] after cancellation, then permanently deleted.</div></div>
<div class="faq-item"><div class="faq-q">Is RTOSure compliant with the Australian Privacy Act?</div><div class="faq-a">RTOSure is designed to support your obligations under the Privacy Act 1988 and the Australian Privacy Principles. Our Privacy Policy details how we collect, store, and handle personal information. [Link to privacy policy once published.]</div></div>
<p style="font-size:13px;color:var(--color-muted);margin-top:var(--space-xl);font-style:italic;">Security detail is v1 — to be reviewed by technical team and legal counsel before launch.</p>
</div>
</section>
<section class="cta-strip" aria-label="Call to action">
<div class="container">
<div class="cta-strip-inner">
<div>
<h2>See RTOSure in action.</h2>
<p>30-45 minutes. Tailored to your framework. No hard sell.</p>
</div>
<div class="cta-strip-actions">
<a href="demo.html" class="btn btn-cta-white btn-lg">Book a Demo</a>
<a href="pricing.html" class="btn btn-outline-white btn-lg">View Pricing</a>
</div>
</div>
</div>
</section>
<div id="site-footer"></div>
<script>
(function(){
function loadComp(id,f){var el=document.getElementById(id);if(!el)return;fetch(f).then(function(r){return r.text();}).then(function(h){el.innerHTML=h;el.querySelectorAll('script').forEach(function(s){var n=document.createElement('script');n.textContent=s.textContent;document.head.appendChild(n);});});}
loadComp('site-header','header.html');
loadComp('site-footer','footer.html');
var obs=new IntersectionObserver(function(e){e.forEach(function(en){if(en.isIntersecting){en.target.style.opacity='1';en.target.style.transform='translateY(0)';}});},{threshold:.1,rootMargin:'0px 0px -40px 0px'});
document.querySelectorAll('.cap-card,.pricing-card,.team-card,.resource-card,.trust-badge,.stat-block,.faq-item').forEach(function(el){el.style.opacity='0';el.style.transform='translateY(20px)';el.style.transition='opacity .5s ease,transform .5s ease';obs.observe(el);});
})();
</script>
</body>
</html>