Files
homeproz/wp-content/themes/homeproz/page-templates/page-templates.scss
T
Hanson.xyz Dev 183e1b92c9 Add 6 reusable page templates with ACF integration
Introduces layout-focused templates for marketing pages:
- Content with Sidebar: 70/30 grid with callout boxes
- Alternating Blocks: Zigzag image/text sections
- Service Detail: Hero + features grid + FAQ accordion
- Card Grid: Configurable 2/3/4 column card layouts
- Long-Form Article: Clean reading layout with related links
- Landing Page: Conversion-focused with benefits and testimonial

Each template has corresponding ACF field groups for content
management. Sample pages created under /page-template-examples/.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 00:50:33 -06:00

586 lines
13 KiB
SCSS

// ===========================================
// PAGE TEMPLATES STYLES
// ===========================================
// -----------------------------
// 1. Content with Sidebar
// -----------------------------
.Content_Sidebar {
.content-sidebar-section {
padding: 4rem 0;
}
.content-sidebar-layout {
display: grid;
grid-template-columns: 1fr;
gap: 3rem;
@media (min-width: 992px) {
grid-template-columns: 7fr 3fr;
}
}
.content-sidebar-main {
h2, h3, h4 {
margin-top: 1.5rem;
margin-bottom: 0.75rem;
}
p {
margin-bottom: 1rem;
line-height: 1.7;
}
ul, ol {
margin-bottom: 1rem;
padding-left: 1.5rem;
}
}
.content-sidebar-aside {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.sidebar-callout-box {
background: var(--color-surface, #1a1a1a);
border: 1px solid var(--color-border, #333);
border-radius: 8px;
padding: 1.5rem;
.sidebar-callout-title {
font-size: 1.125rem;
margin-bottom: 0.75rem;
color: var(--color-accent, #c45c26);
}
.sidebar-callout-content {
font-size: 0.9375rem;
color: var(--color-text-muted, #aaa);
margin-bottom: 1rem;
p:last-child {
margin-bottom: 0;
}
}
}
}
// -----------------------------
// 2. Alternating Blocks
// -----------------------------
.Alternating_Blocks {
.alternating-blocks-section {
padding: 2rem 0;
}
.alternating-block {
padding: 3rem 0;
&:nth-child(even) {
background: var(--color-surface, #1a1a1a);
}
}
.alternating-block-inner {
display: grid;
grid-template-columns: 1fr;
gap: 2rem;
align-items: center;
@media (min-width: 768px) {
grid-template-columns: 1fr 1fr;
gap: 4rem;
}
}
.alternating-block--reverse {
.alternating-block-inner {
@media (min-width: 768px) {
direction: rtl;
> * {
direction: ltr;
}
}
}
}
.alternating-block-image {
img {
width: 100%;
height: auto;
border-radius: 8px;
}
}
.alternating-block-title {
font-size: 1.75rem;
margin-bottom: 1rem;
}
.alternating-block-text {
color: var(--color-text-muted, #aaa);
margin-bottom: 1.5rem;
p {
margin-bottom: 1rem;
}
}
}
// -----------------------------
// 3. Service Detail
// -----------------------------
.Service_Detail {
.service-intro-section {
padding: 3rem 0;
max-width: 800px;
margin: 0 auto;
.service-intro-content {
font-size: 1.125rem;
line-height: 1.8;
}
}
.service-features-section {
padding: 3rem 0;
background: var(--color-surface, #1a1a1a);
}
.service-features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
}
.service-feature-card {
background: var(--color-bg, #0a0a0a);
border: 1px solid var(--color-border, #333);
border-radius: 8px;
padding: 2rem;
text-align: center;
}
.service-feature-icon {
color: var(--color-accent, #c45c26);
margin-bottom: 1rem;
}
.service-feature-title {
font-size: 1.25rem;
margin-bottom: 0.5rem;
}
.service-feature-desc {
color: var(--color-text-muted, #aaa);
font-size: 0.9375rem;
}
.service-faq-section {
padding: 4rem 0;
max-width: 800px;
margin: 0 auto;
}
.service-faq-heading {
font-size: 2rem;
margin-bottom: 2rem;
text-align: center;
}
.service-faq-list {
display: flex;
flex-direction: column;
gap: 1rem;
}
.service-faq-item {
background: var(--color-surface, #1a1a1a);
border: 1px solid var(--color-border, #333);
border-radius: 8px;
overflow: hidden;
&[open] {
.service-faq-question::after {
transform: rotate(180deg);
}
}
}
.service-faq-question {
padding: 1.25rem 1.5rem;
font-weight: 600;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
list-style: none;
&::-webkit-details-marker {
display: none;
}
&::after {
content: '';
border: solid var(--color-accent, #c45c26);
border-width: 0 2px 2px 0;
padding: 4px;
transform: rotate(45deg);
transition: transform 0.2s;
}
}
.service-faq-answer {
padding: 0 1.5rem 1.25rem;
color: var(--color-text-muted, #aaa);
}
}
// -----------------------------
// 4. Card Grid
// -----------------------------
.Card_Grid {
.card-grid-section {
padding: 4rem 0;
}
.card-grid-intro {
max-width: 800px;
margin: 0 auto 3rem;
text-align: center;
}
.card-grid {
display: grid;
gap: 2rem;
&.card-grid--2col {
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
@media (min-width: 768px) {
grid-template-columns: repeat(2, 1fr);
}
}
&.card-grid--3col {
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
@media (min-width: 992px) {
grid-template-columns: repeat(3, 1fr);
}
}
&.card-grid--4col {
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
@media (min-width: 1200px) {
grid-template-columns: repeat(4, 1fr);
}
}
}
.grid-card {
background: var(--color-surface, #1a1a1a);
border: 1px solid var(--color-border, #333);
border-radius: 8px;
overflow: hidden;
transition: transform 0.2s, box-shadow 0.2s;
&:hover {
transform: translateY(-4px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}
}
.grid-card-image {
aspect-ratio: 16 / 10;
overflow: hidden;
img {
width: 100%;
height: 100%;
object-fit: cover;
}
}
.grid-card-content {
padding: 1.5rem;
}
.grid-card-title {
font-size: 1.25rem;
margin-bottom: 0.5rem;
}
.grid-card-desc {
color: var(--color-text-muted, #aaa);
font-size: 0.9375rem;
margin-bottom: 1rem;
}
.grid-card-link {
color: var(--color-accent, #c45c26);
font-weight: 500;
&:hover {
text-decoration: underline;
}
}
}
// -----------------------------
// 5. Long-Form Article
// -----------------------------
.Long_Form_Article {
.article-breadcrumbs {
padding: 1rem 0;
background: var(--color-surface, #1a1a1a);
border-bottom: 1px solid var(--color-border, #333);
}
.breadcrumb-list {
display: flex;
align-items: center;
gap: 0.5rem;
list-style: none;
padding: 0;
margin: 0;
font-size: 0.875rem;
li:not(:last-child)::after {
content: '/';
margin-left: 0.5rem;
color: var(--color-text-muted, #666);
}
a {
color: var(--color-text-muted, #aaa);
&:hover {
color: var(--color-accent, #c45c26);
}
}
}
.breadcrumb-current {
color: var(--color-text, #fff);
}
.article-content-wrapper {
padding: 4rem 0;
}
.article-header {
max-width: 800px;
margin: 0 auto 3rem;
text-align: center;
}
.article-title {
font-size: 2.5rem;
margin-bottom: 1rem;
@media (min-width: 768px) {
font-size: 3rem;
}
}
.article-subtitle {
font-size: 1.25rem;
color: var(--color-text-muted, #aaa);
}
.article-body {
max-width: 800px;
margin: 0 auto;
font-size: 1.0625rem;
line-height: 1.8;
h2 {
font-size: 1.75rem;
margin: 2.5rem 0 1rem;
}
h3 {
font-size: 1.375rem;
margin: 2rem 0 0.75rem;
}
p {
margin-bottom: 1.25rem;
}
ul, ol {
margin-bottom: 1.25rem;
padding-left: 1.5rem;
}
li {
margin-bottom: 0.5rem;
}
blockquote {
border-left: 4px solid var(--color-accent, #c45c26);
padding-left: 1.5rem;
margin: 2rem 0;
font-style: italic;
color: var(--color-text-muted, #aaa);
}
}
.article-related {
max-width: 800px;
margin: 3rem auto 0;
padding-top: 2rem;
border-top: 1px solid var(--color-border, #333);
}
.article-related-heading {
font-size: 1.25rem;
margin-bottom: 1rem;
}
.article-related-list {
list-style: none;
padding: 0;
li {
margin-bottom: 0.5rem;
}
a {
color: var(--color-accent, #c45c26);
&:hover {
text-decoration: underline;
}
}
}
}
// -----------------------------
// 6. Landing Page
// -----------------------------
.Landing_Page {
.landing-hero {
min-height: 60vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
position: relative;
background-size: cover;
background-position: center;
background-color: var(--color-surface, #1a1a1a);
&.has-background {
color: #fff;
}
}
.landing-hero-overlay {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.6);
}
.landing-hero-content {
position: relative;
z-index: 1;
max-width: 800px;
padding: 3rem 1rem;
}
.landing-hero-title {
font-size: 2.5rem;
margin-bottom: 1rem;
@media (min-width: 768px) {
font-size: 3.5rem;
}
}
.landing-hero-subtitle {
font-size: 1.25rem;
margin-bottom: 2rem;
opacity: 0.9;
}
.landing-hero-cta {
font-size: 1.125rem;
padding: 1rem 2.5rem;
}
.landing-benefits-section {
padding: 4rem 0;
background: var(--color-bg, #0a0a0a);
}
.landing-benefits-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 2rem;
text-align: center;
}
.landing-benefit {
padding: 1.5rem;
}
.landing-benefit-icon {
color: var(--color-accent, #c45c26);
margin-bottom: 1rem;
}
.landing-benefit-title {
font-size: 1.25rem;
margin-bottom: 0.5rem;
}
.landing-benefit-desc {
color: var(--color-text-muted, #aaa);
font-size: 0.9375rem;
}
.landing-testimonial-section {
padding: 4rem 0;
background: var(--color-surface, #1a1a1a);
}
.landing-testimonial {
max-width: 800px;
margin: 0 auto;
text-align: center;
}
.landing-testimonial-quote {
font-size: 1.5rem;
font-style: italic;
line-height: 1.6;
margin-bottom: 1.5rem;
@media (min-width: 768px) {
font-size: 1.75rem;
}
}
.landing-testimonial-footer {
display: flex;
flex-direction: column;
gap: 0.25rem;
}
.landing-testimonial-author {
font-weight: 600;
font-style: normal;
}
.landing-testimonial-title {
color: var(--color-text-muted, #aaa);
font-size: 0.875rem;
}
}