Initial commit

This commit is contained in:
ponzischeme89
2026-05-02 08:26:18 +12:00
commit b7ea05f150
119 changed files with 13641 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
}
body {
font-family: var(--font-body);
font-size: 15px;
line-height: 1.6;
color: var(--text);
background: var(--off-white);
}
img {
display: block;
max-width: 100%;
height: auto;
}
a {
color: inherit;
text-decoration: none;
}
button,
input,
textarea {
font: inherit;
}
+73
View File
@@ -0,0 +1,73 @@
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 12px;
padding: 14px 32px;
font-size: 15px;
font-weight: 600;
border-radius: 40px;
cursor: pointer;
transition:
background 0.2s,
color 0.2s,
border-color 0.2s,
transform 0.16s cubic-bezier(0.22, 1, 0.36, 1),
box-shadow 0.2s ease,
filter 0.2s ease;
border: none;
-webkit-tap-highlight-color: transparent;
touch-action: manipulation;
}
@media (hover: hover) {
.btn:hover {
transform: translateY(-2px) scale(1.012);
box-shadow: 0 12px 24px rgba(17, 20, 24, 0.14);
}
}
.btn:active {
transform: translateY(1px) scale(0.985);
box-shadow: 0 4px 10px rgba(17, 20, 24, 0.12);
filter: saturate(1.03);
}
.btn-green {
background: var(--green);
color: #fff;
}
.btn-green:hover {
background: #172217;
}
.btn-yellow {
background: var(--yellow);
color: #000;
}
.btn-yellow:hover {
background: #e6bb00;
}
.btn-outline {
background: transparent;
color: #fff;
border: 2px solid #fff;
}
.btn-outline:hover {
background: #fff;
color: var(--green);
}
.btn-outline-green {
color: var(--green);
border-color: var(--green);
}
.btn-outline-green:hover {
background: var(--green);
color: #fff;
}
+359
View File
@@ -0,0 +1,359 @@
.form-inner {
max-width: 920px;
}
.booking-header {
text-align: center;
margin-bottom: 44px;
}
.booking-title {
display: inline-flex;
align-items: baseline;
justify-content: center;
gap: 14px;
margin-bottom: 28px;
font-family: var(--font-head);
font-size: 68px;
font-weight: 800;
line-height: 0.96;
letter-spacing: -0.04em;
}
.booking-title-plain {
color: #000;
}
.booking-title-highlight {
position: relative;
color: var(--yellow);
}
.booking-title-highlight::after {
content: '';
position: absolute;
left: 0;
right: -8px;
bottom: -18px;
height: 28px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 34' fill='none'%3E%3Cpath d='M4 24C67 10 131 4 198 5c43 1 82 6 118 18' stroke='%23192419' stroke-width='8' stroke-linecap='round'/%3E%3C/svg%3E")
center/contain no-repeat;
}
.booking-stepper {
display: flex;
align-items: center;
justify-content: center;
gap: 28px;
}
.booking-step {
display: inline-flex;
align-items: center;
gap: 12px;
border: 0;
background: transparent;
color: #000;
cursor: pointer;
padding: 0;
transition: transform 0.14s cubic-bezier(0.22, 1, 0.36, 1);
-webkit-tap-highlight-color: transparent;
touch-action: manipulation;
}
.booking-step-number {
width: 56px;
height: 56px;
border: 3px solid #111;
border-radius: 50%;
display: inline-flex;
align-items: center;
justify-content: center;
font-family: var(--font-head);
font-size: 24px;
font-weight: 700;
background: #fff;
transition:
background 0.2s,
border-color 0.2s,
transform 0.16s cubic-bezier(0.22, 1, 0.36, 1),
box-shadow 0.2s ease;
}
.booking-step.active .booking-step-number {
background: #eadbbf;
}
@media (hover: hover) {
.booking-step:hover .booking-step-number {
transform: translateY(-2px) scale(1.04);
box-shadow: 0 10px 20px rgba(17, 20, 24, 0.1);
}
}
.booking-step:active .booking-step-number {
transform: translateY(1px) scale(0.96);
}
.booking-step-label {
font-family: var(--font-head);
font-size: 18px;
font-weight: 700;
}
.booking-step-divider {
width: 1px;
height: 92px;
background: #cfd2d6;
}
.booking-form {
display: flex;
flex-direction: column;
align-items: stretch;
}
.booking-panel {
display: flex;
flex-direction: column;
gap: 18px;
}
.booking-panel-banner {
background: #eadbbf;
color: #34363a;
border-radius: 30px 30px 0 0;
padding: 28px 32px 42px;
text-align: center;
font-family: var(--font-body);
font-size: 15px;
line-height: 1.35;
}
.booking-card-grid {
display: grid;
gap: 0;
}
.booking-card-grid-with-banner {
margin-top: -30px;
}
.booking-card-grid-owner {
grid-template-columns: repeat(3, 1fr);
}
.booking-card-grid-dog {
grid-template-columns: repeat(2, 1fr);
}
.booking-field-card {
background: #fff;
border-radius: 28px;
padding: 32px 38px 30px;
box-shadow: 0 10px 30px rgba(17, 20, 24, 0.04);
}
.booking-field-card-group {
padding: 30px 32px;
}
.booking-field-card-wide,
.booking-field-card-full {
grid-column: span 1;
}
.booking-field-card-full {
grid-column: 1 / -1;
}
.booking-field-group {
display: grid;
gap: 24px;
}
.booking-field-group-owner {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.booking-field-stack {
min-width: 0;
}
.booking-field-card label,
.booking-service-label {
display: inline-flex;
align-items: center;
gap: 7px;
margin-bottom: 10px;
font-family: var(--font-head);
font-size: 15px;
font-weight: 700;
color: #34363a;
}
.booking-required {
color: var(--yellow);
}
.booking-field-card input,
.booking-field-card textarea {
width: 100%;
border: 3px solid #111;
border-radius: 20px;
background: #fff;
padding: 16px 28px;
font-size: 16px;
line-height: 1.2;
color: #34363a;
transition:
background 0.2s,
border-color 0.2s;
}
.booking-field-card input:hover,
.booking-field-card textarea:hover {
background: #f6f0e5;
}
.booking-field-card input:focus,
.booking-field-card textarea:focus {
outline: none;
border-color: var(--green);
background: #f6f0e5;
}
.booking-field-card textarea {
min-height: 140px;
resize: vertical;
}
.booking-service-row {
display: grid;
grid-template-columns: 220px 1fr;
align-items: center;
gap: 24px;
background: #fff;
border-radius: 28px;
padding: 22px 28px;
box-shadow: 0 10px 30px rgba(17, 20, 24, 0.04);
}
.booking-service-options {
display: flex;
flex-wrap: wrap;
gap: 16px 22px;
}
.booking-check-option {
display: inline-flex;
align-items: center;
gap: 14px;
font-family: var(--font-head);
font-size: 16px;
font-weight: 600;
color: #34363a;
cursor: pointer;
}
.booking-check-option input {
position: absolute;
opacity: 0;
pointer-events: none;
}
.booking-check-box {
width: 30px;
height: 30px;
border: 3px solid #111;
border-radius: 8px;
display: inline-flex;
align-items: center;
justify-content: center;
flex: none;
transition:
background 0.2s,
border-color 0.2s;
}
.booking-check-option input:checked + .booking-check-box {
background: var(--yellow);
border-color: #111;
}
.booking-check-option input:checked + .booking-check-box::after {
content: '';
width: 10px;
height: 16px;
border-right: 3px solid #111;
border-bottom: 3px solid #111;
transform: rotate(40deg) translate(-1px, -2px);
}
.booking-actions {
display: flex;
align-items: center;
margin-top: 28px;
}
.booking-actions-next {
justify-content: center;
}
.booking-actions-final {
justify-content: space-between;
}
.booking-next-button,
.booking-submit-button {
display: inline-flex;
align-items: center;
gap: 14px;
padding: 18px 34px;
font-family: var(--font-head);
font-size: 18px;
font-weight: 700;
}
.booking-next-button .icon,
.booking-submit-button .icon {
font-size: 18px;
}
.booking-field-card input.input-invalid,
.booking-field-card textarea.input-invalid {
border-color: #c94040;
}
.booking-field-card-invalid,
.booking-field-stack-invalid {
box-shadow: 0 10px 30px rgba(201, 64, 64, 0.08);
}
.field-error {
display: flex;
align-items: center;
gap: 7px;
margin: 10px 0 0;
color: #c94040;
font-size: 13px;
font-weight: 600;
animation: fieldErrorIn 0.16s ease;
}
.field-error .icon {
font-size: 13px;
flex-shrink: 0;
}
@keyframes fieldErrorIn {
from {
opacity: 0;
transform: translateY(-3px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
+311
View File
@@ -0,0 +1,311 @@
header {
z-index: 100;
background: var(--green);
}
nav,
.mobile-menu,
.hero-inner,
.promise-inner,
.services-inner,
.values-inner,
.testimonials-inner,
.info-inner,
.form-inner,
.footer-inner,
.footer-bottom {
max-width: var(--max-w);
margin: 0 auto;
}
nav {
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
padding: 16px 50px;
}
.nav-links {
display: flex;
gap: 4px;
align-items: center;
list-style: none;
}
.nav-links li {
position: relative;
}
.nav-links > li > a {
color: #fff;
font-weight: 500;
display: flex;
align-items: center;
gap: 6px;
white-space: nowrap;
padding: 8px 16px;
border-radius: 40px;
transition: background 0.15s, color 0.15s;
}
.nav-links > li > a:hover {
background: #fff;
color: var(--green);
}
.nav-links > li > a.nav-link-active {
background: #eadbbf;
color: #000;
}
.mega-chevron {
font-size: 11px;
transition: transform 0.2s;
}
.has-mega:hover .mega-chevron {
transform: rotate(180deg);
}
.mega-menu {
position: absolute;
top: 100%;
left: 0;
padding-top: 12px;
z-index: 200;
opacity: 0;
visibility: hidden;
transform: translateY(-6px);
transition:
opacity 0.18s ease,
transform 0.18s ease,
visibility 0.18s;
}
.mega-menu-inner {
background: #fff;
border-radius: 20px;
padding: 16px;
display: flex;
flex-direction: row;
gap: 6px;
box-shadow:
0 4px 6px rgba(0, 0, 0, 0.04),
0 16px 40px rgba(0, 0, 0, 0.12);
min-width: 400px;
}
.has-mega:hover .mega-menu {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.mega-service {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
padding: 16px 14px 14px;
border-radius: 14px;
flex: 1;
text-decoration: none;
color: var(--text);
transition: background 0.15s;
}
.mega-service:hover {
background: rgba(33, 48, 33, 0.05);
}
.mega-icon {
width: 64px;
height: 64px;
background: var(--green);
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
color: #fff;
transition: background 0.15s;
}
.mega-service:hover .mega-icon {
background: #2d4230;
}
.mega-service-label {
font-weight: 700;
font-size: 14px;
color: #000;
white-space: nowrap;
}
.mega-service-desc {
font-size: 12px;
font-weight: 400;
color: var(--gray);
text-align: center;
line-height: 1.3;
margin-top: -4px;
}
.nav-right {
display: flex;
align-items: center;
gap: 20px;
justify-content: flex-end;
}
.mobile-phone {
display: none;
align-items: center;
gap: 8px;
padding: 8px 12px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.08);
color: #fff;
font-size: 14px;
font-weight: 700;
line-height: 1;
text-decoration: none;
white-space: nowrap;
}
.mobile-phone .icon {
font-size: 14px;
}
.instagram-icon {
color: #fff;
font-size: 26px;
line-height: 1;
display: flex;
align-items: center;
justify-content: center;
}
.instagram-icon:hover {
color: var(--yellow);
}
.mobile-menu {
display: none;
flex-direction: column;
gap: 0;
background: #fff;
padding: 0 0 18px;
}
.mobile-menu.open {
display: flex;
}
.mobile-menu a {
color: #0a304e;
font-weight: 700;
opacity: 0;
}
.mobile-menu a:hover {
color: #0a304e;
}
.mobile-menu a.mobile-link-active {
background: #eadbbf;
color: #0a304e;
}
.hamburger {
display: none;
align-items: center;
justify-content: center;
cursor: pointer;
background: none;
border: none;
padding: 4px;
color: #fff;
font-size: 26px;
transition:
transform 0.14s cubic-bezier(0.22, 1, 0.36, 1),
opacity 0.2s ease;
-webkit-tap-highlight-color: transparent;
touch-action: manipulation;
}
.hamburger .icon {
display: block;
line-height: 1;
}
@media (hover: hover) {
.hamburger:hover {
transform: translateY(-1px) scale(1.06);
}
}
.hamburger:active {
transform: translateY(1px) scale(0.94);
}
.hero-inner,
.promise-inner {
display: flex;
align-items: center;
gap: 60px;
width: 100%;
}
.promise-inner,
.services-inner,
.values-inner,
.testimonials-inner,
.info-inner,
.form-inner {
padding: 0 50px;
}
.services-grid,
.values-grid,
.testimonials-grid {
margin-top: 48px;
}
.services-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
}
.values-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
}
.testimonials-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 28px;
}
.info-inner {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: start;
}
.footer-inner {
display: grid;
grid-template-columns: 2fr 1.4fr 2fr;
gap: 60px;
margin-bottom: 48px;
align-items: start;
}
.social-links {
display: flex;
gap: 14px;
}
+543
View File
@@ -0,0 +1,543 @@
@media (max-width: 1024px) {
nav,
.mobile-menu {
padding-left: 30px;
padding-right: 30px;
}
#hero {
padding-left: 30px;
padding-right: 30px;
}
.promise-inner,
.services-inner,
.values-inner,
.testimonials-inner,
.info-inner,
.form-inner {
padding-left: 30px;
padding-right: 30px;
}
footer {
padding-left: 30px;
padding-right: 30px;
}
.hero-text h1 {
font-size: 40px;
}
.values-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 768px) {
@keyframes mobileMenuBounceIn {
0% {
opacity: 0;
transform: translateY(-10px) scaleY(0.98);
}
70% {
opacity: 1;
transform: translateY(2px) scaleY(1.01);
}
100% {
opacity: 1;
transform: translateY(0) scaleY(1);
}
}
@keyframes mobileMenuItemIn {
0% {
opacity: 0;
transform: translateY(-6px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
header {
background: #fff;
border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
nav {
grid-template-columns: auto minmax(0, 1fr) auto auto;
padding: 20px 24px;
column-gap: 12px;
}
.logo {
justify-content: flex-start;
justify-self: start;
}
.logo img {
height: 25px;
width: auto;
}
.mobile-phone {
display: inline-flex;
justify-self: center;
align-self: center;
padding: 9px 12px;
background: rgba(33, 48, 33, 0.06);
color: var(--green);
font-size: 13px;
}
.mobile-phone .icon {
font-size: 13px;
}
.nav-links {
display: none;
}
.nav-right {
display: flex;
gap: 18px;
justify-content: flex-end;
grid-column: 3;
}
.nav-right .btn {
display: none;
}
.instagram-icon {
color: #0a304e;
font-size: 24px;
}
.hamburger {
display: flex;
color: #2e3031;
grid-column: 4;
justify-self: end;
}
.mobile-menu {
max-width: none;
padding-left: 0;
padding-right: 0;
transform-origin: top center;
}
.mobile-menu.open {
animation: mobileMenuBounceIn 220ms cubic-bezier(0.22, 1, 0.36, 1);
}
.mobile-menu a {
display: block;
padding: 14px 24px;
border-bottom: none;
font-size: 16px;
line-height: 1.35;
animation: mobileMenuItemIn 220ms ease-out forwards;
}
.mobile-menu.open a:nth-child(1) {
animation-delay: 30ms;
}
.mobile-menu.open a:nth-child(2) {
animation-delay: 60ms;
}
.mobile-menu.open a:nth-child(3) {
animation-delay: 90ms;
}
.mobile-menu.open a:nth-child(4) {
animation-delay: 120ms;
}
.mobile-menu.open a:nth-child(5) {
animation-delay: 150ms;
}
.mobile-menu.open a:nth-child(6) {
animation-delay: 180ms;
}
.mobile-menu.open a:nth-child(7) {
animation-delay: 210ms;
}
#hero {
min-height: auto;
padding: 50px 20px 0;
}
.hero-inner {
flex-direction: column;
gap: 24px;
align-items: stretch;
text-align: left;
padding: 0;
}
.hero-text {
display: flex;
flex-direction: column;
align-items: flex-start;
width: 100%;
}
.hero-text h1,
.hero-heading {
margin-bottom: 22px;
font-size: 38px;
line-height: 1.08;
}
.hero-heading-desktop {
display: none;
}
.hero-text h1 .hero-heading-mobile {
display: block;
color: #fff;
font-family: var(--font-head);
font-size: 33.5px;
font-weight: 800;
line-height: 1.08;
letter-spacing: -0.04em;
white-space: pre-line;
}
.hero-buttons {
width: 100%;
justify-content: flex-start;
gap: 10px;
padding-right: 18px;
}
.hero-buttons .btn {
flex: 0 0 auto;
width: auto;
min-width: 0;
padding: 17px 28px;
font-size: 15px;
font-weight: 700;
text-align: center;
border-radius: 999px;
-webkit-tap-highlight-color: transparent;
touch-action: manipulation;
}
.hero-buttons .btn:last-child {
margin-right: 12px;
}
.hero-buttons .btn-yellow {
background: #e8dbc1;
color: #000;
}
.hero-buttons .btn-outline {
background: var(--yellow);
color: #000;
border: none;
}
.hero-buttons .btn:active {
transform: translateY(1px) scale(0.985);
}
.hero-buttons .btn-yellow:active {
background: #dccdb1;
}
.hero-buttons .btn-outline:active {
background: #e6bb00;
}
.hero-img {
flex: none;
width: 100%;
max-width: none;
margin: 0;
display: flex;
justify-content: center;
align-items: flex-end;
}
.hero-img img {
width: min(100%, 500px);
max-width: 100%;
margin: 0 auto -7px;
object-fit: contain;
object-position: center top;
transform: none;
}
#intro {
padding: 30px 24px 24px;
}
.intro-trust-badge {
grid-template-columns: 1fr;
gap: 14px;
padding: 18px 18px 16px;
border-radius: 22px;
}
.intro-trust-mark {
width: 48px;
height: 48px;
font-size: 21px;
}
#intro p {
font-size: 17px;
line-height: 1.45;
font-weight: 600;
margin-bottom: 0;
}
.intro-trust-meta {
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
#intro a {
gap: 8px;
padding: 8px 14px;
font-size: 15px;
}
.intro-trust-stars {
font-size: 13px;
}
.promise-inner {
flex-direction: column;
padding: 0 24px;
}
.promise-text {
order: 1;
}
.promise-img {
order: 2;
flex: none;
width: 100%;
max-width: 320px;
margin: 0 auto;
}
.services-grid,
.values-grid,
.testimonials-grid,
.info-inner,
.field-group,
.footer-inner {
grid-template-columns: 1fr;
}
.service-icon-bubble {
width: 78px;
height: 78px;
margin-bottom: 20px;
}
.service-card .service-card-icon {
font-size: 30px;
}
.mobile-menu a.mobile-link-active {
background: var(--yellow);
color: #0a304e;
}
.booking-header {
margin-bottom: 34px;
}
.booking-title {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
width: 100%;
font-size: 34px;
line-height: 0.98;
margin-bottom: 24px;
text-align: center;
}
.booking-title-highlight::after {
left: 12px;
right: 12px;
bottom: -14px;
height: 20px;
}
.booking-stepper {
gap: 12px;
align-items: flex-start;
}
.booking-step {
flex-direction: column;
gap: 8px;
flex: 1;
}
.booking-step-number {
width: 46px;
height: 46px;
font-size: 20px;
}
.booking-step-label {
font-size: 15px;
text-align: center;
}
.booking-step-divider {
margin-top: 22px;
height: 1px;
width: 36px;
}
.booking-panel-banner {
padding: 22px 18px 34px;
border-radius: 24px 24px 0 0;
font-size: 15px;
line-height: 1.45;
}
.booking-card-grid-owner,
.booking-card-grid-dog {
grid-template-columns: 1fr;
}
.booking-field-group-owner {
grid-template-columns: 1fr;
gap: 18px;
}
.booking-field-card {
padding: 24px 22px;
border-radius: 24px;
}
.booking-field-card-group {
padding: 24px 22px;
}
.booking-field-card label,
.booking-service-label {
font-size: 16px;
}
.booking-field-card input,
.booking-field-card textarea {
padding: 14px 18px;
font-size: 15px;
border-width: 2px;
border-radius: 18px;
}
.booking-service-row {
grid-template-columns: 1fr;
gap: 16px;
padding: 22px;
border-radius: 24px;
}
.booking-service-options {
gap: 12px 18px;
}
.booking-check-option {
font-size: 15px;
}
.booking-check-box {
width: 24px;
height: 24px;
border-width: 2px;
border-radius: 6px;
}
.booking-actions-final {
gap: 14px;
flex-direction: column-reverse;
align-items: stretch;
}
.booking-actions-final .btn,
.booking-actions-next .btn {
justify-content: center;
}
.services-inner,
.values-inner,
.testimonials-inner,
.info-inner,
.form-inner {
padding: 0 24px;
}
.section-heading {
font-size: 30px;
}
footer {
padding: 48px 24px 28px;
}
.footer-inner {
gap: 36px;
}
.footer-action {
order: -1;
}
.footer-book-note {
text-align: left;
}
.footer-nav a {
padding: 11px 0;
}
.footer-bottom {
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
#instagram {
padding: 48px 24px;
}
}
@media (max-width: 480px) {
.mobile-phone {
gap: 6px;
padding: 9px 10px;
font-size: 12px;
}
.mobile-phone span {
letter-spacing: -0.01em;
}
}
+537
View File
@@ -0,0 +1,537 @@
section {
padding: 80px 0;
}
#hero {
background: var(--green);
color: #fff;
padding: 44px 50px 0;
display: flex;
align-items: center;
min-height: 500px;
overflow: hidden;
}
.hero-inner {
align-items: flex-end;
}
.hero-text,
.promise-text {
flex: 1;
}
.hero-text {
padding-bottom: 44px;
}
.hero-buttons {
display: flex;
gap: 16px;
flex-wrap: wrap;
}
.hero-img {
flex: 0 0 46%;
display: flex;
justify-content: flex-end;
align-self: flex-end;
margin-top: 0;
}
.hero-img img {
width: min(100%, 530px);
margin: -12px -18px -72px 0;
}
#intro {
background: #fff;
padding: 8px 50px 26px;
text-align: left;
}
.intro-trust-badge {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 18px;
align-items: center;
width: 100%;
max-width: 960px;
margin: 0;
padding: 18px 22px;
border-radius: 26px;
background: linear-gradient(180deg, #ffffff 0%, #fbf8f2 100%);
box-shadow:
0 1px 0 rgba(17, 20, 24, 0.04),
0 14px 34px rgba(17, 20, 24, 0.06);
}
.intro-trust-mark {
display: inline-flex;
align-items: center;
justify-content: center;
width: 56px;
height: 56px;
border-radius: 50%;
background: #fff;
color: #e00706;
font-size: 24px;
box-shadow: inset 0 0 0 1px rgba(14, 27, 41, 0.08);
}
.intro-trust-copy {
min-width: 0;
}
#intro p {
font-size: 18px;
font-weight: 600;
line-height: 1.35;
max-width: none;
margin: 0;
color: #34363a;
}
.intro-trust-meta {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
margin-top: 12px;
}
.intro-trust-stars {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--yellow);
font-size: 14px;
}
#intro a {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 9px 16px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.92);
color: var(--green);
font-size: 16px;
font-weight: 700;
text-decoration: none;
box-shadow: inset 0 0 0 1px rgba(14, 27, 41, 0.08);
}
#intro a .icon {
color: #e00706;
font-size: 20px;
}
#promise,
#testimonials,
#info {
background: var(--off-white);
}
#services,
#reservation {
background: #fff;
}
.promise-text h2 {
text-align: center;
}
.promise-text p {
margin-bottom: 28px;
font-size: 16px;
max-width: 520px;
}
.promise-text .btn {
display: block;
width: fit-content;
margin: 0 auto;
}
.promise-text {
order: 2;
}
.promise-img {
order: 1;
flex: 0 0 48%;
max-width: 560px;
display: flex;
justify-content: center;
align-items: flex-end;
}
.promise-img img {
width: 100%;
max-width: 560px;
}
.service-card {
background: var(--off-white);
border-radius: 20px;
padding: 40px 32px;
text-align: center;
transition:
transform 0.18s cubic-bezier(0.22, 1, 0.36, 1),
box-shadow 0.22s ease;
}
.service-icon-bubble {
display: inline-flex;
align-items: center;
justify-content: center;
width: 88px;
height: 88px;
margin: 0 auto 24px;
border-radius: 50%;
box-shadow:
inset 0 0 0 1px rgba(17, 20, 24, 0.05),
0 10px 24px rgba(17, 20, 24, 0.08);
}
.service-icon-bubble {
background: linear-gradient(180deg, #ffe173 0%, #ffd54a 100%);
}
@media (hover: hover) {
.service-card:hover {
transform: translateY(-6px) scale(1.01);
box-shadow: 0 18px 38px rgba(0, 0, 0, 0.1);
}
}
.service-card:active {
transform: translateY(-1px) scale(0.992);
}
.service-card .service-card-icon {
font-size: 34px;
color: var(--green);
margin-bottom: 0;
}
.service-card a.btn {
margin-top: 18px;
}
#values,
footer {
background: var(--green);
color: #fff;
}
#values .section-heading,
#testimonials .section-heading {
text-align: center;
}
#services .section-heading {
text-align: center;
}
footer {
padding: 60px 50px 32px;
}
.values-inner .section-heading {
color: #fff;
}
.value-card {
background: rgba(255, 255, 255, 0.07);
border-radius: 16px;
padding: 32px 28px;
border: 1px solid rgba(255, 255, 255, 0.12);
transition:
transform 0.18s cubic-bezier(0.22, 1, 0.36, 1),
box-shadow 0.22s ease,
border-color 0.22s ease;
}
@media (hover: hover) {
.value-card:hover {
transform: translateY(-5px);
box-shadow: 0 18px 34px rgba(0, 0, 0, 0.14);
border-color: rgba(255, 255, 255, 0.18);
}
}
.value-card:active {
transform: translateY(-1px) scale(0.994);
}
.value-card .value-card-icon {
font-size: 28px;
color: var(--yellow);
margin-bottom: 16px;
}
.value-card p {
font-size: 14px;
line-height: 1.7;
opacity: 0.85;
}
.testimonial-card {
background: #fff;
border-radius: 20px;
padding: 36px 32px;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
transition:
transform 0.18s cubic-bezier(0.22, 1, 0.36, 1),
box-shadow 0.22s ease;
}
@media (hover: hover) {
.testimonial-card:hover {
transform: translateY(-4px);
box-shadow: 0 18px 34px rgba(0, 0, 0, 0.09);
}
}
.testimonial-card:active {
transform: translateY(-1px) scale(0.994);
}
.stars {
color: var(--yellow);
font-size: 18px;
margin-bottom: 14px;
}
.reviewer {
font-weight: 700;
font-size: 14px;
}
.reviewer span {
font-weight: 400;
color: var(--gray);
}
.info-copy {
margin-top: 10px;
}
.info-copy a {
color: var(--green);
font-weight: 600;
}
.faq details {
border-bottom: 1px solid #ddd;
padding: 16px 0;
}
.faq summary {
font-weight: 600;
cursor: pointer;
list-style: none;
display: flex;
justify-content: space-between;
align-items: center;
}
.faq summary::-webkit-details-marker {
display: none;
}
.faq summary::after {
content: '+';
font-size: 20px;
color: var(--green);
}
.faq details[open] summary::after {
content: '';
}
.faq details p {
margin-top: 10px;
color: var(--gray);
}
#instagram {
background: var(--yellow);
text-align: center;
padding: 60px 50px;
}
.instagram-blurb {
margin: -8px 0 24px;
font-size: 16px;
color: rgba(0, 0, 0, 0.6);
}
#instagram .btn {
background: var(--green);
color: #fff;
}
.footer-logo {
display: block;
margin-bottom: 20px;
}
.footer-brand p {
font-size: 14px;
line-height: 1.6;
opacity: 0.65;
margin-bottom: 24px;
white-space: pre-line;
}
.social-links a {
width: 40px;
height: 40px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.1);
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
transition: background 0.2s, color 0.2s;
}
.social-links a:hover {
background: var(--yellow);
color: #000;
}
.footer-col-label {
margin: 0 0 16px;
font-family: var(--font-head);
font-size: 10px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
opacity: 0.45;
}
.footer-nav {
list-style: none;
}
.footer-nav li {
margin: 0;
}
.footer-nav a {
display: block;
padding: 8px 0;
font-size: 15px;
font-weight: 500;
opacity: 0.75;
transition: opacity 0.18s;
}
.footer-nav a:hover {
opacity: 1;
}
.footer-book-btn {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
width: 100%;
padding: 15px 22px;
border-radius: 999px;
background: var(--yellow);
color: #000;
font-weight: 700;
font-size: 15px;
transition: background 0.2s, transform 0.15s;
margin-bottom: 10px;
}
.footer-book-btn:hover {
background: #ffe033;
transform: translateY(-1px);
}
.footer-book-note {
margin: 0 0 20px;
font-size: 13px;
opacity: 0.5;
text-align: center;
}
.footer-reviews {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 9px 16px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.07);
border: 1px solid rgba(255, 255, 255, 0.12);
font-size: 13px;
opacity: 0.8;
transition: background 0.2s, opacity 0.2s;
}
.footer-reviews:hover {
background: rgba(255, 255, 255, 0.13);
opacity: 1;
}
.footer-contact {
display: flex;
flex-direction: column;
gap: 8px;
margin-top: 16px;
padding-top: 16px;
border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-contact-link {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 13px;
font-weight: 500;
opacity: 0.7;
transition: opacity 0.18s;
}
.footer-contact-link:hover {
opacity: 1;
}
.footer-contact-link .icon {
font-size: 12px;
opacity: 0.8;
}
.footer-bottom {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px;
border-top: 1px solid rgba(255, 255, 255, 0.1);
padding-top: 24px;
font-size: 13px;
opacity: 0.5;
}
.footer-legal {
display: flex;
gap: 20px;
}
.footer-legal a {
opacity: 0.8;
transition: opacity 0.2s;
}
.footer-legal a:hover {
opacity: 1;
}
+108
View File
@@ -0,0 +1,108 @@
.logo {
display: flex;
align-items: center;
justify-content: center;
}
.logo img,
.footer-logo {
display: block;
}
.logo img {
height: 30px;
width: auto;
}
.nav-links a,
.mobile-menu a {
font-weight: 500;
}
.section-heading,
.promise-text h2,
.info-block h2,
#instagram h2 {
font-family: var(--font-head);
font-weight: 700;
}
.section-heading {
font-size: 42px;
color: #000;
margin-bottom: 20px;
}
.hero-text h1 {
font-family: var(--font-head);
font-size: 50.2px;
font-weight: 800;
line-height: 1.1;
margin-bottom: 28px;
color: #fff;
}
.hero-text h1 .hero-heading-mobile {
display: none;
}
.hero-title-main,
.hero-title-connector,
.hero-title-highlight {
color: #fff;
}
.promise-text h2 {
font-size: 42px;
margin-bottom: 20px;
}
.promise-text p,
.info-block p,
.faq details p,
.testimonial-card blockquote {
font-size: 15px;
line-height: 1.7;
}
.service-card h3,
.value-card h3 {
font-family: var(--font-head);
font-weight: 700;
}
.service-card h3 {
font-size: 20px;
margin-bottom: 12px;
}
.value-card h3 {
font-size: 18px;
margin-bottom: 10px;
}
.info-block h2 {
font-size: 30px;
margin-bottom: 16px;
}
.info-block h3 {
font-size: 16px;
font-weight: 700;
margin: 20px 0 8px;
}
#instagram h2 {
font-size: 36px;
margin-bottom: 20px;
}
footer h4 {
font-family: var(--font-head);
font-size: 14px;
font-weight: 700;
margin-bottom: 16px;
letter-spacing: 0.5px;
opacity: 0.6;
text-transform: uppercase;
}
+14
View File
@@ -0,0 +1,14 @@
:root {
--green: #213021;
--yellow: #ffd100;
--gray: #59606d;
--beige: #e5d6c2;
--off-white: #fbfbfb;
--text: #2e3031;
--max-w: 1280px;
--font-body: 'Readex Pro', sans-serif;
--font-head: 'Unbounded', sans-serif;
/* Legacy "navy" tokens now intentionally render as Goodwalk green. */
--navy: var(--green);
}