| Current Path : /home/happyrenas/restaurant.myreco.online/public/ |
Linux webd005.cluster105.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 |
| Current File : /home/happyrenas/restaurant.myreco.online/public/style.css |
:root {
--blue: #04a2e8;
--blue-dark: #0079b3;
--sand: #cbc3ba;
--text: #222222;
--muted: #5f6670;
--bg: #f7f7f7;
--white: #ffffff;
--line: #e4e1dd;
--shadow: 0 18px 50px rgba(18, 37, 54, 0.12);
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
color: var(--text);
background: var(--bg);
line-height: 1.6;
}
img {
max-width: 100%;
display: block;
}
a {
color: inherit;
}
.site-header {
position: sticky;
top: 0;
z-index: 20;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
min-height: 76px;
padding: 14px clamp(18px, 4vw, 56px);
background: var(--bg);
border-bottom: 1px solid var(--line);
backdrop-filter: blur(12px);
}
.brand img {
width: 132px;
height: auto;
}
.brand-text {
display: inline-flex;
align-items: baseline;
gap: 1px;
color: #7c7773;
text-decoration: none;
}
.brand-main {
font-size: 1.28rem;
font-weight: 900;
letter-spacing: 0;
}
.brand-dot {
color: #4c4f54;
font-size: 0.54rem;
font-weight: 800;
}
.main-nav {
display: flex;
align-items: center;
gap: 8px;
}
.language-switcher {
display: flex;
align-items: center;
gap: 6px;
font-size: 0.78rem;
font-weight: 900;
}
.language-switcher a {
padding: 6px 7px;
border-radius: 999px;
color: #30343a;
text-decoration: none;
}
.language-switcher a:hover {
background: rgba(4, 162, 232, 0.12);
color: var(--blue-dark);
}
.main-nav a {
padding: 10px 14px;
border-radius: 999px;
color: #30343a;
font-size: 0.95rem;
font-weight: 700;
text-decoration: none;
transition: background 0.2s ease, color 0.2s ease;
}
.main-nav a:hover,
.main-nav a.active {
background: rgba(4, 162, 232, 0.12);
color: var(--blue-dark);
}
.nav-toggle {
display: none;
width: 44px;
height: 44px;
border: 1px solid var(--line);
border-radius: 10px;
background: var(--white);
cursor: pointer;
}
.nav-toggle span:not(.sr-only) {
display: block;
width: 20px;
height: 2px;
margin: 5px auto;
background: var(--text);
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.hero,
.page-hero,
.section,
.cta-band {
width: min(1120px, calc(100% - 36px));
margin: 0 auto;
}
.hero {
display: grid;
grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
gap: clamp(28px, 5vw, 64px);
align-items: center;
padding: clamp(48px, 7vw, 84px) 0 38px;
}
.hero h1,
.page-hero h1 {
margin: 0;
font-size: clamp(2.7rem, 7vw, 5.8rem);
line-height: 0.95;
letter-spacing: 0;
}
.hero-subtitle {
margin: 18px 0 8px;
color: var(--blue-dark);
font-size: clamp(1.35rem, 3vw, 2rem);
font-weight: 800;
}
.hero-text,
.hero-proof,
.page-hero p {
max-width: 650px;
color: var(--muted);
font-size: 1.12rem;
}
.hero-proof {
padding-left: 16px;
border-left: 4px solid var(--blue);
color: #343a40;
font-weight: 700;
}
.hero-actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 28px;
}
.hero-media img,
.section-image {
width: 100%;
border-radius: 8px;
box-shadow: var(--shadow);
object-fit: cover;
}
.hero-media img {
max-height: 520px;
}
.hero-fade-media img {
border-radius: 0;
box-shadow: none;
mix-blend-mode: multiply;
-webkit-mask-image: radial-gradient(ellipse at center, #000 58%, rgba(0, 0, 0, 0.88) 72%, transparent 100%);
mask-image: radial-gradient(ellipse at center, #000 58%, rgba(0, 0, 0, 0.88) 72%, transparent 100%);
}
.compact-image {
max-height: 320px;
object-fit: contain;
border-radius: 0;
box-shadow: none;
mix-blend-mode: multiply;
-webkit-mask-image: radial-gradient(ellipse at center, #000 62%, rgba(0, 0, 0, 0.88) 76%, transparent 100%);
mask-image: radial-gradient(ellipse at center, #000 62%, rgba(0, 0, 0, 0.88) 76%, transparent 100%);
}
.phone-fade-image {
max-height: 360px;
object-fit: contain;
border-radius: 0;
box-shadow: none;
mix-blend-mode: multiply;
-webkit-mask-image: radial-gradient(ellipse at center, #000 62%, rgba(0, 0, 0, 0.88) 76%, transparent 100%);
mask-image: radial-gradient(ellipse at center, #000 62%, rgba(0, 0, 0, 0.88) 76%, transparent 100%);
}
.eyebrow {
margin: 0 0 10px;
color: var(--blue-dark);
font-size: 0.82rem;
font-weight: 800;
letter-spacing: 0;
text-transform: uppercase;
}
.section {
padding: clamp(48px, 7vw, 78px) 0;
}
.section-muted {
width: 100%;
max-width: none;
padding-left: max(18px, calc((100% - 1120px) / 2));
padding-right: max(18px, calc((100% - 1120px) / 2));
background: var(--sand);
}
.split-section {
display: grid;
grid-template-columns: 1fr 0.82fr;
gap: clamp(26px, 5vw, 56px);
align-items: center;
}
.split-section.reverse {
grid-template-columns: 0.85fr 1fr;
}
.section h2,
.cta-band h2,
.price-card h2,
.contact-card h2 {
margin: 0 0 16px;
font-size: clamp(1.7rem, 3.4vw, 2.7rem);
line-height: 1.08;
letter-spacing: 0;
}
.section p,
.price-card li,
.contact-card p {
color: var(--muted);
font-size: 1.03rem;
}
.strong-line {
color: var(--text) !important;
font-weight: 800;
}
.section-heading {
max-width: 920px;
margin-bottom: 28px;
}
.section-heading h2 {
white-space: nowrap;
}
.cards,
.pricing-grid {
display: grid;
gap: 18px;
}
.three-cards,
.pricing-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.card,
.price-card,
.contact-card,
.urgency-card {
border: 1px solid var(--line);
border-radius: 8px;
background: var(--white);
box-shadow: 0 8px 28px rgba(18, 37, 54, 0.08);
}
.card {
padding: 26px;
}
.card h3 {
margin: 0 0 10px;
font-size: 1.25rem;
}
.card p {
margin-bottom: 0;
}
.card-note {
display: block;
margin-top: 6px;
font-size: 0.86rem;
white-space: nowrap;
}
.cta-band {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
margin-top: 18px;
margin-bottom: 28px;
padding: clamp(28px, 5vw, 46px);
border-radius: 8px;
background: var(--sand);
color: var(--text);
}
.cta-band h2 {
margin-bottom: 0;
}
.cta-band .eyebrow {
color: var(--blue-dark);
}
.button {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 46px;
padding: 12px 22px;
border: 1px solid var(--blue);
border-radius: 999px;
background: var(--blue);
color: var(--white);
font-size: 0.95rem;
font-weight: 800;
text-decoration: none;
text-transform: uppercase;
white-space: nowrap;
transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.button:hover {
transform: translateY(-2px);
background: var(--blue-dark);
border-color: var(--blue-dark);
}
.button-secondary {
background: var(--white);
color: var(--blue-dark);
}
.button-full {
width: 100%;
}
.text-link {
color: var(--blue-dark);
font-weight: 800;
}
.urgency-section {
padding-top: 24px;
}
.urgency-card {
padding: clamp(18px, 4vw, 34px);
background: transparent;
border: 0;
box-shadow: none;
text-align: center;
}
.urgency-card h2 {
font-size: clamp(1.45rem, 2.7vw, 2.25rem);
font-style: italic;
}
.page-hero {
padding: clamp(58px, 8vw, 96px) 0 clamp(28px, 5vw, 54px);
}
.page-hero.compact {
padding-bottom: 18px;
}
.pricing-section {
padding-top: 26px;
}
.price-card {
position: relative;
display: flex;
flex-direction: column;
min-height: 100%;
padding: 28px;
}
.price-card.featured {
border-color: rgba(4, 162, 232, 0.5);
box-shadow: 0 22px 60px rgba(4, 162, 232, 0.18);
}
.badge {
align-self: flex-start;
margin: 0 0 14px;
padding: 5px 10px;
border-radius: 999px;
background: rgba(4, 162, 232, 0.14);
color: var(--blue-dark) !important;
font-size: 0.78rem !important;
font-weight: 900;
}
.badge.muted {
background: var(--sand);
color: #555 !important;
}
.price {
margin: 0 0 18px;
}
.price strong {
display: block;
color: var(--text);
font-size: clamp(2rem, 4vw, 2.8rem);
line-height: 1;
}
.price span {
color: var(--muted);
font-weight: 700;
}
.price-card ul {
flex: 1;
margin: 0 0 24px;
padding-left: 20px;
}
.contact-section {
display: grid;
grid-template-columns: 1fr 0.8fr;
gap: clamp(26px, 5vw, 54px);
align-items: center;
}
.contact-card {
padding: clamp(28px, 5vw, 48px);
}
.contact-card h2 a {
color: var(--blue-dark);
text-decoration: none;
overflow-wrap: anywhere;
}
.site-footer {
display: flex;
justify-content: space-between;
gap: 16px;
padding: 28px clamp(18px, 4vw, 56px);
border-top: 1px solid var(--line);
background: var(--white);
color: var(--muted);
}
.site-footer a {
color: var(--blue-dark);
font-weight: 800;
text-decoration: none;
}
@media (max-width: 980px) {
.section-heading h2 {
white-space: normal;
}
}
@media (max-width: 860px) {
.site-header {
min-height: 68px;
}
.nav-toggle {
display: block;
}
.main-nav {
position: absolute;
top: 100%;
left: 0;
right: 0;
display: none;
flex-direction: column;
align-items: stretch;
padding: 14px 18px 18px;
background: var(--white);
border-bottom: 1px solid var(--line);
}
.language-switcher {
width: 100%;
justify-content: flex-end;
}
.main-nav.open {
display: flex;
}
.main-nav a {
border-radius: 8px;
}
.hero,
.split-section,
.split-section.reverse,
.contact-section,
.three-cards,
.pricing-grid {
grid-template-columns: 1fr;
}
.hero {
padding-top: 38px;
}
.hero-media {
order: -1;
}
.cta-band,
.site-footer {
flex-direction: column;
align-items: flex-start;
}
.button {
width: auto;
}
.hero-actions .button {
width: 100%;
}
}
@media (max-width: 520px) {
.hero,
.page-hero,
.section,
.cta-band {
width: min(100% - 28px, 1120px);
}
.brand img {
width: 112px;
}
.hero h1,
.page-hero h1 {
font-size: 2.55rem;
}
.hero-actions {
flex-direction: column;
}
.card,
.price-card,
.contact-card,
.urgency-card,
.cta-band {
padding: 22px;
}
}
/* Public MyReco forms */
.form-section {
padding-top: 40px;
padding-bottom: 48px;
}
.myreco-form {
max-width: 900px;
margin: 0 auto;
}
.myreco-form-card {
background: rgba(255, 255, 255, 0.88);
border: 1px solid rgba(32, 32, 32, 0.08);
border-radius: 8px;
box-shadow: 0 22px 55px rgba(32, 32, 32, 0.08);
padding: 32px;
}
.form-heading {
max-width: 720px;
margin-bottom: 24px;
}
.form-heading h2 {
color: var(--blue-dark);
}
.public-form {
display: grid;
gap: 18px;
}
.public-form label {
display: grid;
gap: 8px;
color: var(--text);
font-weight: 800;
}
.public-form input,
.public-form select {
width: 100%;
min-height: 48px;
border: 1px solid rgba(32, 32, 32, 0.18);
border-radius: 8px;
background: #fff;
color: var(--text);
font: inherit;
font-weight: 600;
padding: 10px 12px;
}
.form-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 14px;
}
.form-results {
display: grid;
gap: 8px;
}
.form-result {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
width: 100%;
border: 1px solid rgba(0, 155, 219, 0.22);
border-radius: 8px;
background: rgba(234, 247, 253, 0.75);
color: var(--text);
cursor: pointer;
font: inherit;
padding: 12px 14px;
text-align: left;
}
.form-result strong {
color: var(--blue);
flex: 0 0 auto;
font-size: 0.78rem;
text-transform: uppercase;
}
.form-selected {
border-left: 4px solid var(--blue);
background: rgba(234, 247, 253, 0.72);
border-radius: 8px;
padding: 16px 18px;
}
.form-selected h3 {
margin: 4px 0 8px;
}
.form-muted,
.form-status {
color: var(--muted);
margin: 0;
}
.form-status.success {
color: #087f5b;
font-weight: 800;
}
.form-status.error,
.form-error {
color: #b42318;
font-weight: 800;
margin: 0;
}
.form-hp {
position: absolute;
left: -9999px;
width: 1px !important;
height: 1px !important;
}
@media (max-width: 760px) {
.myreco-form-card {
padding: 22px;
}
.form-grid {
grid-template-columns: 1fr;
}
.form-result {
align-items: flex-start;
flex-direction: column;
}
}
.tariff-visual-section {
padding-top: 8px;
padding-bottom: 18px;
}
.tariff-visual-card {
max-width: 900px;
margin: 0 auto;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 22px 55px rgba(32, 32, 32, 0.08);
background: #fff;
}
.tariff-visual-card img {
display: block;
width: 100%;
height: auto;
}
/* Tarifs refinements 20260513-14 */
.pricing-section {
background: #cbc3ba;
}
.pricing-section .pricing-grid {
align-items: stretch;
}
.pricing-section .price-card {
display: flex;
flex-direction: column;
min-height: 100%;
padding-top: 48px;
position: relative;
}
.pricing-section .price-card .badge {
left: 24px;
margin: 0;
position: absolute;
top: 20px;
}
.pricing-section .price-card ul {
flex: 1;
}
.stripe-link {
display: flex;
align-items: center;
justify-content: center;
margin-top: 18px;
}
.stripe-link img {
display: block;
width: min(100%, 220px);
height: auto;
border-radius: 4px;
}
/* Feedback 20260514 */
.pricing-section {
background: #cbc3ba;
max-width: none;
padding-left: max(24px, calc((100vw - 900px) / 2));
padding-right: max(24px, calc((100vw - 900px) / 2));
}
.pricing-section .pricing-grid {
max-width: 900px;
margin-left: auto;
margin-right: auto;
}
.pricing-section .price-card {
max-width: 280px;
width: 100%;
margin-left: auto;
margin-right: auto;
}
.form-result {
transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.form-result:hover,
.form-result:focus-visible {
background: #dff3fb;
border-color: var(--blue);
transform: translateY(-1px);
}
.booking-feature {
align-items: center;
}
.booking-feature-image {
max-height: 420px;
object-fit: contain;
}
@media (max-width: 760px) {
.pricing-section {
padding-left: 22px;
padding-right: 22px;
}
.pricing-section .pricing-grid {
gap: 18px;
}
.pricing-section .price-card {
max-width: min(100%, 330px);
}
.booking-feature-image {
max-height: 360px;
width: 100%;
}
}
/* Feedback 20260514 final */
.pricing-section {
width: 100%;
max-width: none;
margin-left: 0;
margin-right: 0;
box-sizing: border-box;
background: #cbc3ba;
padding-left: max(34px, calc((100vw - 1060px) / 2));
padding-right: max(34px, calc((100vw - 1060px) / 2));
}
.pricing-section .pricing-grid {
max-width: 1060px;
margin-left: auto;
margin-right: auto;
grid-template-columns: repeat(3, minmax(300px, 1fr));
align-items: stretch;
}
.pricing-section .price-card {
display: grid;
grid-template-rows: minmax(4.1rem, auto) minmax(3.2rem, auto) 1fr auto;
max-width: none;
min-width: 0;
align-content: start;
}
.pricing-section .price-card h2 {
min-height: 4.1rem;
margin-bottom: 10px;
font-size: clamp(1.45rem, 1.65vw, 1.82rem);
line-height: 1.1;
overflow-wrap: normal;
word-break: normal;
hyphens: none;
}
.pricing-section .price {
display: flex;
align-items: baseline;
min-height: 3.2rem;
margin-bottom: 16px;
}
.pricing-section .price strong {
display: flex;
align-items: baseline;
gap: 6px;
white-space: nowrap;
}
.pricing-section .price > span {
display: block;
margin-top: 4px;
}
.tax-label {
font-size: 0.42em;
line-height: 1;
font-weight: 900;
}
.pricing-section .price-card ul {
align-self: start;
}
.partner-list {
margin-top: 16px;
padding-top: 14px;
border-top: 1px solid rgba(4, 162, 232, 0.18);
}
.partner-list-title {
margin: 0 0 8px;
color: var(--text) !important;
font-size: 0.9rem !important;
font-weight: 800;
}
.partner-list ul {
display: grid;
gap: 5px;
margin: 0;
padding-left: 18px;
}
.partner-list li {
color: var(--muted);
font-size: 0.95rem;
}
.mobile-locality-link,
.desktop-locality-qr {
display: none;
}
.desktop-locality-qr {
display: grid;
gap: 16px;
margin-top: 16px;
padding: 22px;
border-radius: 8px;
background: #cbc3ba;
text-align: center;
}
.desktop-locality-qr p {
max-width: 520px;
margin: 0 auto;
color: var(--text);
font-weight: 800;
line-height: 1.35;
}
.desktop-locality-qr img {
width: min(220px, 100%);
height: auto;
margin: 0 auto;
border-radius: 8px;
background: #fff;
}
.booking-feature-image {
border-radius: 0;
box-shadow: none;
mix-blend-mode: multiply;
-webkit-mask-image: radial-gradient(ellipse at center, #000 58%, rgba(0, 0, 0, 0.86) 72%, transparent 100%);
mask-image: radial-gradient(ellipse at center, #000 58%, rgba(0, 0, 0, 0.86) 72%, transparent 100%);
}
@media (max-width: 980px) {
.pricing-section .pricing-grid {
grid-template-columns: 1fr;
max-width: 390px;
}
}
@media (max-width: 760px) {
.pricing-section {
padding-left: 28px;
padding-right: 28px;
}
.pricing-section .price-card {
max-width: 350px;
margin-left: auto;
margin-right: auto;
}
.pricing-section .price-card h2 {
font-size: clamp(1.45rem, 7vw, 1.82rem);
}
.desktop-locality-qr {
display: none;
}
.mobile-locality-link {
display: grid;
gap: 14px;
margin-top: 16px;
padding: 22px;
border-radius: 8px;
background: #cbc3ba;
}
.mobile-locality-link p {
margin: 0;
color: var(--text);
font-weight: 800;
line-height: 1.35;
}
.mobile-locality-link .button {
width: 100%;
}
}
/* Contact form */
.contact-form-section {
padding-top: 22px;
}
.contact-public-card {
background: #cbc3ba;
}
.contact-public-form .field {
padding: 18px;
border-radius: 8px;
background: #fff;
}
.contact-public-form textarea {
min-height: 140px;
resize: vertical;
}
.field-label {
margin: 0 0 10px;
color: var(--text) !important;
font-weight: 800;
}
.required {
color: #c5221f;
}
.form-hint {
margin: 8px 0 0;
color: var(--muted);
font-size: 0.92rem;
}
.checkbox-group {
display: grid;
gap: 10px;
}
.checkbox-item {
display: flex;
align-items: center;
gap: 10px;
color: var(--text);
font-weight: 600;
}
.checkbox-item input {
width: 18px;
min-height: 18px;
}
/* Contact cleanup 20260514 */
.contact-public-form .checkbox-item {
display: flex;
grid-template-columns: none;
align-items: center;
gap: 10px;
}
.contact-public-form .checkbox-item input {
flex: 0 0 18px;
width: 18px;
min-height: 18px;
margin: 0;
}
.contact-public-form .checkbox-item span {
line-height: 1.25;
}
/* OVH package contact refinements */
.contact-public-form .field > label {
display: block;
}
.contact-public-form .field > label > input,
.contact-public-form .field > label > textarea {
display: block;
margin-top: 8px;
}
/* Contact textarea sizing 20260514 */
.public-form textarea {
width: 100%;
box-sizing: border-box;
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
color: var(--text);
font: inherit;
font-weight: 600;
padding: 10px 12px;
}
.contact-public-form .field > label > textarea {
width: 100%;
max-width: 100%;
}