- Refactor AboutController to PageController to handle multiple static pages:
- /about
- /services/{slug} (diagnostic, sports, pre-post, neuro)
- /contact (new)
- New template riverside-pt-contact.html.twig:
- Contact details (address, phone, email)
- Office hours
- 'Send us a message' section directing to booking tool
- Multiple 'Make an Appointment' links back to /home#book-an-appointment
- Updated riverside_pt.routing.yml with riverside_pt.contact route
- Registered 'riverside_pt_contact' theme in riverside_pt.module
- Updated riverside_pt.install to skip legacy node creation for 'Contact' (and previously About/Services) to avoid alias conflicts
- Minor updates to home template, header handling, libraries (scroll support), and other controllers for consistency with page flows and email/booking features
All details pages (/about, /services/*, /contact) now include clear links back to 'Make an Appointment'.
62 lines
1.5 KiB
CSS
62 lines
1.5 KiB
CSS
@import url('https://fonts.googleapis.com/css2?family=Hedvig+Letters+Sans:wght@400;500;600&display=swap');
|
|
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@layer base {
|
|
html {
|
|
background-color: theme('colors.pt-blue.400');
|
|
scroll-behavior: smooth;
|
|
}
|
|
/* Neutralise any theme container constraints */
|
|
.page-wrapper {
|
|
max-width: none;
|
|
padding-inline: 0;
|
|
}
|
|
/* Hide Olivero/theme chrome we don't use */
|
|
.site-header,
|
|
.sticky-header-toggle,
|
|
.social-bar {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
/* Mobile nav: max-height slide can't be expressed with utilities alone */
|
|
@media (max-width: calc(theme('screens.md') - 1px)) {
|
|
#rpt-main-nav {
|
|
flex: none;
|
|
position: static;
|
|
order: 10;
|
|
width: 100%;
|
|
background: #fff;
|
|
border-top: 1px solid theme('colors.gray.200');
|
|
max-height: 0;
|
|
overflow: hidden;
|
|
opacity: 0;
|
|
transition: max-height 0.3s ease, opacity 0.25s ease;
|
|
}
|
|
#rpt-main-nav.is-open {
|
|
max-height: 500px;
|
|
opacity: 1;
|
|
}
|
|
#rpt-main-nav ul {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
}
|
|
|
|
/* Hamburger open-state animation */
|
|
.rpt-header__hamburger[aria-expanded="true"] span:nth-child(1) {
|
|
width: 100% !important;
|
|
transform: translateY(10px) rotate(45deg);
|
|
}
|
|
.rpt-header__hamburger[aria-expanded="true"] span:nth-child(2) {
|
|
opacity: 0;
|
|
}
|
|
.rpt-header__hamburger[aria-expanded="true"] span:nth-child(3) {
|
|
width: 100% !important;
|
|
transform: translateY(-10px) rotate(-45deg);
|
|
}
|
|
}
|