Added about, Contact, Privacy and Terms pages.
This commit is contained in:
parent
47489b2012
commit
3202a52b3c
31
PlotLine/Controllers/PublicController.cs
Normal file
31
PlotLine/Controllers/PublicController.cs
Normal file
@ -0,0 +1,31 @@
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using PlotLine.ViewModels;
|
||||
|
||||
namespace PlotLine.Controllers;
|
||||
|
||||
[AllowAnonymous]
|
||||
[Route("")]
|
||||
public sealed class PublicController : Controller
|
||||
{
|
||||
private const string SupportEmail = "hello@plotweaver.studio";
|
||||
private const string PolicyDate = "June 7, 2026";
|
||||
|
||||
[HttpGet("About")]
|
||||
public IActionResult About() => View(CreateModel());
|
||||
|
||||
[HttpGet("Contact")]
|
||||
public IActionResult Contact() => View(CreateModel());
|
||||
|
||||
[HttpGet("Privacy")]
|
||||
public IActionResult Privacy() => View(CreateModel());
|
||||
|
||||
[HttpGet("Terms")]
|
||||
public IActionResult Terms() => View(CreateModel());
|
||||
|
||||
private static PublicPageViewModel CreateModel() => new()
|
||||
{
|
||||
SupportEmail = SupportEmail,
|
||||
LastUpdated = PolicyDate
|
||||
};
|
||||
}
|
||||
@ -24,6 +24,12 @@ public sealed class PricingViewModel
|
||||
public bool IsSignedIn { get; set; }
|
||||
}
|
||||
|
||||
public sealed class PublicPageViewModel
|
||||
{
|
||||
public string SupportEmail { get; set; } = "support@plotweaver.studio";
|
||||
public string LastUpdated { get; set; } = "June 7, 2026";
|
||||
}
|
||||
|
||||
public sealed class RegisterViewModel
|
||||
{
|
||||
[Required(ErrorMessage = "Enter your email address.")]
|
||||
|
||||
@ -231,7 +231,7 @@
|
||||
<div class="testimonial-grid">
|
||||
<figure>
|
||||
<blockquote>"It feels like someone finally designed a planning tool for the way my fantasy series actually works."</blockquote>
|
||||
<figcaption>R. H., epic fantasy author</figcaption>
|
||||
<figcaption>Catherine Lynwood, women's fiction author</figcaption>
|
||||
</figure>
|
||||
<figure>
|
||||
<blockquote>"I stopped losing clues in old documents. The whole mystery is visible now, including the red herrings."</blockquote>
|
||||
|
||||
33
PlotLine/Views/Public/About.cshtml
Normal file
33
PlotLine/Views/Public/About.cshtml
Normal file
@ -0,0 +1,33 @@
|
||||
@model PublicPageViewModel
|
||||
@{
|
||||
ViewData["Title"] = "About";
|
||||
ViewData["ShellClass"] = "marketing-shell";
|
||||
}
|
||||
|
||||
<article class="marketing-home public-info-page">
|
||||
<section class="public-hero">
|
||||
<div class="marketing-container public-hero__inner">
|
||||
<p class="marketing-eyebrow">About PlotWeaver Studio</p>
|
||||
<h1>Built by a novelist. Designed for writers.</h1>
|
||||
<p class="marketing-lead">PlotWeaver Studio was created to help authors organise complex stories and write with confidence.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="public-content-section">
|
||||
<div class="marketing-container public-narrative">
|
||||
<p>PlotWeaver Studio was born from a simple frustration.</p>
|
||||
<p>While writing novels, I found myself constantly switching between Word documents, spreadsheets, notebooks, sticky notes, and countless pages of notes just to keep track of characters, plot threads, timelines, and important story details.</p>
|
||||
<p>Existing tools either felt too simplistic for complex stories or too complicated to fit naturally into a writer's process.</p>
|
||||
<p>PlotWeaver Studio was created to be the tool I wished I had: a place where characters, locations, relationships, plot lines, assets, scenes, and story structure could all work together.</p>
|
||||
<p>Whether you're writing your first novel or managing an entire series, PlotWeaver Studio is designed to help you stay organised, maintain continuity, and focus on what matters most:</p>
|
||||
<p><strong>telling great stories.</strong></p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="public-mission">
|
||||
<div class="marketing-container public-feature-panel">
|
||||
<p class="marketing-eyebrow">Our Mission</p>
|
||||
<h2>To help writers feel confident, organised, and empowered to finish the stories they want to tell.</h2>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
52
PlotLine/Views/Public/Contact.cshtml
Normal file
52
PlotLine/Views/Public/Contact.cshtml
Normal file
@ -0,0 +1,52 @@
|
||||
@model PublicPageViewModel
|
||||
@{
|
||||
ViewData["Title"] = "Contact";
|
||||
ViewData["ShellClass"] = "marketing-shell";
|
||||
}
|
||||
|
||||
<article class="marketing-home public-info-page">
|
||||
<section class="public-hero">
|
||||
<div class="marketing-container public-hero__inner">
|
||||
<p class="marketing-eyebrow">Contact</p>
|
||||
<h1>Get in touch</h1>
|
||||
<p class="marketing-lead">We'd love to hear from you.</p>
|
||||
<a class="marketing-btn marketing-btn--primary" href="mailto:@Model.SupportEmail">@Model.SupportEmail</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="public-content-section">
|
||||
<div class="marketing-container public-card-grid">
|
||||
<article class="public-card">
|
||||
<h2>General enquiries</h2>
|
||||
<p>For questions about PlotWeaver Studio, subscriptions, or whether it is right for your writing process, email <a href="mailto:@Model.SupportEmail">@Model.SupportEmail</a>.</p>
|
||||
</article>
|
||||
<article class="public-card">
|
||||
<h2>Support</h2>
|
||||
<p>If you're experiencing a problem, please include as much detail as possible, including screenshots if appropriate.</p>
|
||||
</article>
|
||||
<article class="public-card">
|
||||
<h2>Feedback and suggestions</h2>
|
||||
<p>For feature suggestions, we'd love to hear how PlotWeaver Studio could better support your writing process.</p>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="public-content-section public-content-section--soft">
|
||||
<div class="marketing-container">
|
||||
<div class="section-heading">
|
||||
<p class="marketing-eyebrow">Contact FAQ</p>
|
||||
<h2>Useful to know</h2>
|
||||
</div>
|
||||
<div class="faq-grid">
|
||||
<article>
|
||||
<h3>How quickly will I receive a response?</h3>
|
||||
<p>We aim to respond to enquiries as quickly as possible.</p>
|
||||
</article>
|
||||
<article>
|
||||
<h3>Can I suggest new features?</h3>
|
||||
<p>Absolutely. PlotWeaver Studio continues to evolve based on feedback from writers.</p>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
96
PlotLine/Views/Public/Privacy.cshtml
Normal file
96
PlotLine/Views/Public/Privacy.cshtml
Normal file
@ -0,0 +1,96 @@
|
||||
@model PublicPageViewModel
|
||||
@{
|
||||
ViewData["Title"] = "Privacy Policy";
|
||||
ViewData["ShellClass"] = "marketing-shell";
|
||||
}
|
||||
|
||||
<article class="marketing-home public-info-page">
|
||||
<section class="public-hero">
|
||||
<div class="marketing-container public-hero__inner">
|
||||
<p class="marketing-eyebrow">Privacy</p>
|
||||
<h1>Privacy Policy</h1>
|
||||
<p class="marketing-lead">Your stories remain yours.</p>
|
||||
<p class="public-updated">Last updated: @Model.LastUpdated</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="public-content-section">
|
||||
<div class="marketing-container public-policy">
|
||||
<section>
|
||||
<h2>Introduction</h2>
|
||||
<p>PlotWeaver Studio respects your privacy and is committed to protecting your personal information.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Information We Collect</h2>
|
||||
<p>We collect only the information necessary to provide the service, including:</p>
|
||||
<ul>
|
||||
<li>Email address</li>
|
||||
<li>Account authentication information</li>
|
||||
<li>Subscription and billing status information</li>
|
||||
<li>Content that you choose to create and store within PlotWeaver Studio</li>
|
||||
<li>Basic technical information required to operate and secure the service, such as IP addresses and login activity</li>
|
||||
</ul>
|
||||
<p>We do not collect phone numbers, postal addresses, or unnecessary personal information.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>How We Use Information</h2>
|
||||
<p>We use your information to:</p>
|
||||
<ul>
|
||||
<li>Provide and maintain the PlotWeaver Studio service</li>
|
||||
<li>Authenticate users and secure accounts</li>
|
||||
<li>Process subscriptions and payments</li>
|
||||
<li>Communicate important service information</li>
|
||||
<li>Improve and support the platform</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>User Content Ownership</h2>
|
||||
<p>You retain ownership of all stories, manuscripts, characters, notes, and other content you create within PlotWeaver Studio.</p>
|
||||
<p>PlotWeaver Studio does not claim ownership of your content.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Payments</h2>
|
||||
<p>Payments are processed securely by Stripe.</p>
|
||||
<p>PlotWeaver Studio does not store full payment card details.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Cookies and Local Storage</h2>
|
||||
<p>PlotWeaver Studio uses essential authentication cookies required for users to securely access their accounts.</p>
|
||||
<p>The application may also use browser local storage to remember interface preferences and improve the user experience.</p>
|
||||
<p>These technologies are used solely to provide core functionality.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Data Sharing</h2>
|
||||
<p>We do not sell personal information.</p>
|
||||
<p>Information may be shared only with trusted service providers necessary to operate the service, such as payment processors.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Data Retention</h2>
|
||||
<p>Information is retained only for as long as necessary to provide the service and comply with legal obligations.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Your Rights</h2>
|
||||
<p>Depending on your jurisdiction, you may have rights relating to access, correction, deletion, and portability of your personal information.</p>
|
||||
<p>To exercise these rights, please contact us.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Contact</h2>
|
||||
<p>For privacy-related enquiries, please contact:</p>
|
||||
<p><a href="mailto:@Model.SupportEmail">@Model.SupportEmail</a></p>
|
||||
</section>
|
||||
|
||||
@* <aside class="public-disclaimer">
|
||||
<p>This Privacy Policy is provided as a general policy template and should be reviewed to ensure compliance with applicable laws in your jurisdiction before production release.</p>
|
||||
</aside> *@
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
87
PlotLine/Views/Public/Terms.cshtml
Normal file
87
PlotLine/Views/Public/Terms.cshtml
Normal file
@ -0,0 +1,87 @@
|
||||
@model PublicPageViewModel
|
||||
@{
|
||||
ViewData["Title"] = "Terms of Service";
|
||||
ViewData["ShellClass"] = "marketing-shell";
|
||||
}
|
||||
|
||||
<article class="marketing-home public-info-page">
|
||||
<section class="public-hero">
|
||||
<div class="marketing-container public-hero__inner">
|
||||
<p class="marketing-eyebrow">Terms</p>
|
||||
<h1>Terms of Service</h1>
|
||||
<p class="marketing-lead">Please read these terms carefully before using PlotWeaver Studio.</p>
|
||||
<p class="public-updated">Last updated: @Model.LastUpdated</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="public-content-section">
|
||||
<div class="marketing-container public-policy">
|
||||
<section>
|
||||
<h2>Acceptance of Terms</h2>
|
||||
<p>By accessing or using PlotWeaver Studio, you agree to these Terms of Service.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Use of the Service</h2>
|
||||
<p>You agree to use PlotWeaver Studio lawfully and responsibly.</p>
|
||||
<p>You must not:</p>
|
||||
<ul>
|
||||
<li>Attempt unauthorised access to the service</li>
|
||||
<li>Interfere with the operation or security of the platform</li>
|
||||
<li>Use the service for unlawful purposes</li>
|
||||
<li>Attempt to reverse engineer or exploit the service</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>User Content</h2>
|
||||
<p>You retain ownership of all content you create within PlotWeaver Studio.</p>
|
||||
<p>You are responsible for the legality and appropriateness of the content you store.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Subscriptions and Billing</h2>
|
||||
<p>Paid subscriptions renew according to the billing period selected during purchase.</p>
|
||||
<p>You may cancel your subscription in accordance with the subscription management options provided.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Cancellation and Account Access</h2>
|
||||
<p>If a subscription ends, access to certain paid features may be restricted.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Limitation of Liability</h2>
|
||||
<p>PlotWeaver Studio is provided on an "as available" and "as is" basis.</p>
|
||||
<p>While reasonable efforts are made to maintain availability and reliability, uninterrupted access cannot be guaranteed.</p>
|
||||
<p>To the maximum extent permitted by law, PlotWeaver Studio shall not be liable for indirect, incidental, or consequential damages arising from the use of the service.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Backups</h2>
|
||||
<p>While reasonable measures may be taken to protect data, users are encouraged to maintain their own backups of important work.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Changes to the Service</h2>
|
||||
<p>PlotWeaver Studio may update or modify features and services over time.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Changes to Terms</h2>
|
||||
<p>These Terms of Service may be updated periodically.</p>
|
||||
<p>Continued use of the service constitutes acceptance of any updated terms.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Contact</h2>
|
||||
<p>Questions regarding these Terms of Service may be directed to:</p>
|
||||
<p><a href="mailto:@Model.SupportEmail">@Model.SupportEmail</a></p>
|
||||
</section>
|
||||
|
||||
@* <aside class="public-disclaimer">
|
||||
<p>These Terms of Service are provided as a general template and should be reviewed by a qualified legal professional before production release.</p>
|
||||
</aside> *@
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@ -120,6 +120,21 @@
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
@if ((ViewData["ShellClass"] as string)?.Contains("marketing-shell", StringComparison.OrdinalIgnoreCase) == true)
|
||||
{
|
||||
<footer class="public-footer" aria-label="Public site footer">
|
||||
<div class="marketing-container public-footer__inner">
|
||||
<a class="public-footer__brand" asp-controller="Home" asp-action="Index">PlotWeaver Studio</a>
|
||||
<nav class="public-footer__nav" aria-label="Footer navigation">
|
||||
<a asp-controller="Public" asp-action="About">About</a>
|
||||
<a asp-controller="Pricing" asp-action="Index">Pricing</a>
|
||||
<a asp-controller="Public" asp-action="Contact">Contact</a>
|
||||
<a asp-controller="Public" asp-action="Privacy">Privacy Policy</a>
|
||||
<a asp-controller="Public" asp-action="Terms">Terms of Service</a>
|
||||
</nav>
|
||||
</div>
|
||||
</footer>
|
||||
}
|
||||
|
||||
<div class="modal fade" id="plotlineConfirmModal" tabindex="-1" aria-labelledby="plotlineConfirmModalTitle" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
|
||||
@ -3102,6 +3102,218 @@ a:focus-visible {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.public-info-page {
|
||||
margin-top: -1rem;
|
||||
}
|
||||
|
||||
.public-hero {
|
||||
padding: clamp(2rem, 5vw, 3.75rem) 0 clamp(2.5rem, 6vw, 4.5rem);
|
||||
background:
|
||||
radial-gradient(circle at 18% 20%, rgba(212, 165, 116, 0.2), transparent 24rem),
|
||||
linear-gradient(180deg, var(--marketing-cream), var(--marketing-offwhite));
|
||||
}
|
||||
|
||||
.public-hero__inner {
|
||||
display: grid;
|
||||
justify-items: center;
|
||||
gap: 1.05rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.public-hero h1 {
|
||||
max-width: 13ch;
|
||||
}
|
||||
|
||||
.public-hero .marketing-lead {
|
||||
max-width: 50rem;
|
||||
}
|
||||
|
||||
.public-updated {
|
||||
margin: 0;
|
||||
border: 1px solid rgba(31, 42, 68, 0.12);
|
||||
border-radius: 999px;
|
||||
padding: 0.45rem 0.85rem;
|
||||
color: var(--marketing-muted);
|
||||
background: rgba(255, 253, 249, 0.78);
|
||||
font-weight: 760;
|
||||
}
|
||||
|
||||
.public-content-section,
|
||||
.public-mission {
|
||||
padding: clamp(3.5rem, 7vw, 6rem) 0;
|
||||
}
|
||||
|
||||
.public-content-section {
|
||||
background: var(--marketing-offwhite);
|
||||
}
|
||||
|
||||
.public-content-section--soft,
|
||||
.public-mission {
|
||||
background:
|
||||
radial-gradient(circle at 90% 20%, rgba(95, 120, 108, 0.12), transparent 24rem),
|
||||
var(--marketing-cream);
|
||||
}
|
||||
|
||||
.public-narrative,
|
||||
.public-policy {
|
||||
max-width: 860px;
|
||||
}
|
||||
|
||||
.public-narrative {
|
||||
display: grid;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.public-narrative p,
|
||||
.public-policy p,
|
||||
.public-policy li,
|
||||
.public-card p {
|
||||
color: var(--marketing-muted);
|
||||
font-size: clamp(1rem, 1.45vw, 1.13rem);
|
||||
line-height: 1.75;
|
||||
}
|
||||
|
||||
.public-narrative p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.public-narrative strong {
|
||||
color: var(--marketing-navy);
|
||||
font-family: Georgia, "Times New Roman", serif;
|
||||
font-size: clamp(1.7rem, 3vw, 2.45rem);
|
||||
line-height: 1.15;
|
||||
}
|
||||
|
||||
.public-feature-panel {
|
||||
border: 1px solid rgba(31, 42, 68, 0.11);
|
||||
border-radius: 28px;
|
||||
padding: clamp(2rem, 5vw, 4rem);
|
||||
background: rgba(255, 253, 249, 0.9);
|
||||
box-shadow: 0 22px 56px rgba(31, 42, 68, 0.1);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.public-feature-panel h2 {
|
||||
max-width: 860px;
|
||||
margin: 0 auto;
|
||||
font-size: clamp(2rem, 4vw, 3.6rem);
|
||||
}
|
||||
|
||||
.public-card-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.public-card {
|
||||
border: 1px solid rgba(31, 42, 68, 0.1);
|
||||
border-radius: 18px;
|
||||
padding: clamp(1.1rem, 2.2vw, 1.5rem);
|
||||
background:
|
||||
linear-gradient(180deg, rgba(255, 253, 249, 0.96), rgba(250, 248, 245, 0.88)),
|
||||
#fff;
|
||||
box-shadow: 0 16px 36px rgba(31, 42, 68, 0.07);
|
||||
}
|
||||
|
||||
.public-card h2,
|
||||
.public-policy h2 {
|
||||
margin: 0;
|
||||
color: var(--marketing-navy);
|
||||
font-family: Georgia, "Times New Roman", serif;
|
||||
font-size: clamp(1.35rem, 2.1vw, 1.85rem);
|
||||
}
|
||||
|
||||
.public-card p {
|
||||
margin: 0.7rem 0 0;
|
||||
}
|
||||
|
||||
.public-policy {
|
||||
display: grid;
|
||||
gap: clamp(1.4rem, 3vw, 2.1rem);
|
||||
}
|
||||
|
||||
.public-policy section {
|
||||
border-bottom: 1px solid rgba(31, 42, 68, 0.1);
|
||||
padding-bottom: clamp(1.2rem, 2.6vw, 1.8rem);
|
||||
}
|
||||
|
||||
.public-policy p {
|
||||
margin: 0.65rem 0 0;
|
||||
}
|
||||
|
||||
.public-policy ul {
|
||||
display: grid;
|
||||
gap: 0.55rem;
|
||||
margin: 0.75rem 0 0;
|
||||
padding-left: 1.25rem;
|
||||
}
|
||||
|
||||
.public-policy a,
|
||||
.public-card a {
|
||||
color: var(--marketing-navy);
|
||||
font-weight: 820;
|
||||
}
|
||||
|
||||
.public-disclaimer {
|
||||
border: 1px solid rgba(212, 165, 116, 0.38);
|
||||
border-radius: 18px;
|
||||
padding: 1rem 1.1rem;
|
||||
background: rgba(212, 165, 116, 0.13);
|
||||
}
|
||||
|
||||
.public-disclaimer p {
|
||||
margin: 0;
|
||||
color: #6b4a22;
|
||||
font-size: 0.96rem;
|
||||
font-weight: 720;
|
||||
}
|
||||
|
||||
.public-footer {
|
||||
border-top: 1px solid rgba(255, 250, 242, 0.12);
|
||||
background: #1f2a44;
|
||||
}
|
||||
|
||||
.public-footer__inner {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
align-items: center;
|
||||
padding-top: 1.25rem;
|
||||
padding-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.public-footer__brand {
|
||||
color: #fffaf2;
|
||||
font-family: Georgia, "Times New Roman", serif;
|
||||
font-size: 1.25rem;
|
||||
font-weight: 700;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.public-footer__brand:hover,
|
||||
.public-footer__brand:focus {
|
||||
color: #d4a574;
|
||||
}
|
||||
|
||||
.public-footer__nav {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-end;
|
||||
gap: 0.55rem 1rem;
|
||||
}
|
||||
|
||||
.public-footer__nav a {
|
||||
color: rgba(255, 250, 242, 0.76);
|
||||
font-size: 0.92rem;
|
||||
font-weight: 760;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.public-footer__nav a:hover,
|
||||
.public-footer__nav a:focus {
|
||||
color: #d4a574;
|
||||
}
|
||||
|
||||
.pricing-feature-list {
|
||||
display: grid;
|
||||
gap: 0.65rem;
|
||||
@ -3240,7 +3452,8 @@ a:focus-visible {
|
||||
}
|
||||
|
||||
.comparison-grid,
|
||||
.faq-grid {
|
||||
.faq-grid,
|
||||
.public-card-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@ -3352,6 +3565,19 @@ a:focus-visible {
|
||||
.pricing-card-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.public-hero {
|
||||
padding-top: 1.8rem;
|
||||
}
|
||||
|
||||
.public-footer__inner {
|
||||
align-items: flex-start;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.public-footer__nav {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 520px) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user