Photographe Mariage Saint-Hilaire-du-Harcouët (50) | SNK Studio

/*
* DESIGN SYSTEM & VARIABLES
* Visionary, Elegant, High-End
*/
:root {
–color-bg: #F9F7F5;
/* Cream/Off-white for luxury feel */
–color-text: #2C2C2C;
/* Soft Black */
–color-accent: #A68A64;
/* Muted Gold/Bronze */
–color-secondary: #645757;
/* Brown-Grey from user brand */
–color-light: #FFFFFF;

–font-heading: ‘Cormorant Garamond’, serif;
–font-body: ‘Montserrat’, sans-serif;
–font-hand: ‘Dancing Script’, cursive;

–spacing-unit: 8px;
–container-width: 1200px;

–transition-slow: 0.6s cubic-bezier(0.22, 1, 0.36, 1);
–transition-fast: 0.3s ease;

/* Footer Specifics */
–snk-dark: #323437;
–snk-gold: #d4af37;
–snk-beige: #F4E8E1;
}

/* RESET & BASE */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
font-family: var(–font-body);
color: var(–color-text);
background-color: var(–color-bg);
line-height: 1.8;
font-weight: 300;
overflow-x: hidden;
font-size: 16px;
}

h1,
h2,
h3,
h4 {
font-family: var(–font-heading);
font-weight: 400;
line-height: 1.2;
margin-bottom: 1.5rem;
color: var(–color-text);
}

h1 {
font-size: clamp(2.5rem, 5vw, 4.5rem);
letter-spacing: -0.02em;
}

h2 {
font-size: clamp(2rem, 4vw, 3rem);
position: relative;
padding-bottom: 20px;
}

h2::after {
content:  »;
position: absolute;
bottom: 0;
left: 0;
width: 60px;
height: 1px;
background-color: var(–color-accent);
}

p {
margin-bottom: 1.5rem;
}

.container {
max-width: var(–container-width);
margin: 0 auto;
padding: 0 40px;
}

.text-center {
text-align: center;
}

.text-center h2::after {
left: 50%;
transform: translateX(-50%);
}

/* BUTTONS */
.btn {
display: inline-block;
padding: 18px 40px;
text-decoration: none;
font-family: var(–font-body);
font-weight: 400;
font-size: 0.85rem;
letter-spacing: 2px;
text-transform: uppercase;
transition: var(–transition-fast);
border: 1px solid transparent;
cursor: pointer;
}

.btn-primary {
background-color: var(–color-text);
color: var(–color-light);
}

.btn-primary:hover {
background-color: transparent;
color: var(–color-text);
border-color: var(–color-text);
}

.btn-secondary {
background-color: transparent;
color: var(–color-text);
border-color: var(–color-text);
}

.btn-secondary:hover {
background-color: var(–color-text);
color: var(–color-light);
}

/* HERO SECTION */
.hero {
height: 90vh;
/* Nearly full screen */
display: flex;
align-items: center;
justify-content: center;
position: relative;
background-image: url(‘https://snkstudio.fr/wp-content/uploads/city-landing-assets/images/hero-saint-hilaire-du-harcouët.webp’);
background-size: cover;
background-position: center;
background-attachment: fixed;
/* Parallax effect */
}

.hero-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.4);
z-index: 1;
}

.hero-content {
position: relative;
z-index: 2;
text-align: center;
color: var(–color-light);
max-width: 800px;
padding: 20px;
animation: fadeUp 1.2s ease-out forwards;
}

.hero-content h1 {
color: var(–color-light);
}

.hero-content p {
font-family: var(–font-heading);
font-style: italic;
font-size: 1.5rem;
margin-bottom: 40px;
opacity: 0.9;
}

.hero .btn-primary {
background-color: var(–color-light);
color: var(–color-text);
border-color: var(–color-light);
}

.hero .btn-primary:hover {
background-color: transparent;
color: var(–color-light);
}

/* SECTION 1: STORYTELLING */
.section-storytelling {
padding: 100px 0;
}

.story-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
}

.story-text {
padding-right: 20px;
}

.story-image .story-image-grid .grid-img:nth-child(6) {
aspect-ratio: 1/1;
}

.story-image .story-image-grid .grid-img:nth-child(7) {
aspect-ratio: 3/4;
}

.story-image .story-image-grid .grid-img:hover {
border-radius: 4px;
box-shadow: 20px 20px 0px var(–color-accent);
transition: transform 0.5s ease;
}

.story-image img {
border-radius: 4px;
box-shadow: 20px 20px 0px var(–color-accent);
transition: transform 0.5s ease;
}

.story-image:hover img {
/* No zoom as requested */
}

/* SECTION 2: APPROACH (Icons) */
.section-approach {
padding: 100px 0;
background-color: #fff;
}

.approach-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 40px;
margin-top: 60px;
}

.approach-card {
padding: 40px;
background: var(–color-bg);
border: 1px solid rgba(0, 0, 0, 0.05);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.approach-card:hover {
transform: translateY(-10px);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.05);
}

.approach-icon {
color: var(–color-accent);
margin-bottom: 25px;
display: flex;
justify-content: center;
align-items: center;
transition: transform 0.4s ease;
}

.approach-card {
text-align: center;
padding: 40px;
background: var(–color-bg);
border: 1px solid rgba(0, 0, 0, 0.05);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.approach-card:hover .approach-icon {
transform: scale(1.1) rotate(5deg);
}

/* Subtle float animation */
@keyframes lucide-float {
0% {
transform: translateY(0);
}

50% {
transform: translateY(-5px);
}

100% {
transform: translateY(0);
}
}

.approach-card .approach-icon {
animation: lucide-float 3s ease-in-out infinite;
}

.approach-card:nth-child(2) .approach-icon {
animation-delay: 0.5s;
}

.approach-card:nth-child(3) .approach-icon {
animation-delay: 1s;
}

/* CTA BANNER */
.cta-banner {
padding: 180px 0;
background-color: #000;
background-image: url(‘https://snkstudio.fr/wp-content/uploads/2025/04/portrait-du-photographe-de-mariage-en-normandie-a-saint-hilaire-du-harcouet-style-documentaire-478×640.jpg’);
background-attachment: fixed;
background-size: contain;
/* Smaller, fits viewport height */
background-position: right center;
background-repeat: no-repeat;
color: var(–color-light);
text-align: left;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
}

.cta-banner::before {
content:  »;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* Fade from solid black on left to transparent on right */
background: linear-gradient(to right,
rgba(0, 0, 0, 1) 0%,
rgba(0, 0, 0, 0.9) 30%,
rgba(0, 0, 0, 0) 70%);
z-index: 1;
}

.cta-banner .container {
position: relative;
z-index: 2;
width: 100%;
max-width: var(–container-width);
margin: 0 auto;
padding: 0 40px;
}

.cta-banner .cta-content {
max-width: 600px;
/* Constrain text to left side */
}

.cta-banner p {
font-family: var(–font-heading);
font-size: 2.8rem;
margin-bottom: 40px;
font-style: italic;
line-height: 1.2;
}

.cta-banner .btn {
border-color: var(–color-light);
color: var(–color-light);
background: transparent;
}

.cta-banner .btn:hover {
background-color: var(–color-light);
color: #000;
}

/* SECTION 3: TESTIMONIALS */
.section-testimonials {
padding: 100px 0;
}

.testimonial-block {
max-width: 800px;
margin: 0 auto;
text-align: center;
font-family: var(–font-heading);
}

.testimonial-text {
font-size: 1.8rem;
font-style: italic;
margin-bottom: 30px;
color: var(–color-secondary);
}

.testimonial-author {
font-family: var(–font-body);
font-weight: 500;
color: var(–color-text);
font-size: 0.9rem;
letter-spacing: 1px;
text-transform: uppercase;
}

.trustpilot-link {
display: inline-block;
margin-top: 40px;
font-weight: 600;
border-bottom: 1px solid var(–color-text);
}

/* SECTION 4: FAQ */
.section-faq {
padding: 120px 0;
background-image: url(‘https://snkstudio.fr/wp-content/uploads/textured_faq_bg_v3.png’);
background-attachment: fixed;
background-size: cover;
background-color: #fff;
}

.faq-item {
border-bottom: 1px solid #eee;
margin-bottom: 20px;
}

.faq-question {
padding: 20px 0;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
font-family: var(–font-heading);
font-size: 1.4rem;
color: var(–color-secondary);
}

.faq-question::after {
content: ‘+’;
font-family: var(–font-body);
font-weight: 300;
}

.faq-answer {
max-height: 0;
overflow: hidden;
transition: max-height 0.4s ease;
color: #666;
}

.faq-item.active .faq-answer {
max-height: 500px;
padding-bottom: 20px;
}

.faq-item.active .faq-question::after {
content: ‘-‘;
}

/* FOOTER CTA */
.footer-cta {
padding: 120px 0;
text-align: center;
background-color: #F4E8E1;
/* Beige tint from branding */
}

.footer-cta h2 {
font-size: 3rem;
}

/* TYPEWRITER ANIMATION FOR FOOTER */
.handwritten-container {
font-family: var(–font-hand);
font-size: 3rem;
/* Much larger as requested */
color: var(–color-text);
/* Ensure high contrast */
min-height: 1.5em;
margin-bottom: 40px;
display: block;
}

#typing-text {
border-right: 3px solid var(–color-accent);
/* The cursor */
padding-right: 5px;
animation: blink-caret .75s step-end infinite;
}

@keyframes blink-caret {

from,
to {
border-color: transparent
}

50% {
border-color: var(–color-accent)
}
}

/* ANIMATIONS */
@keyframes fadeUp {
from {
opacity: 0;
transform: translateY(30px);
}

to {
opacity: 1;
transform: translateY(0);
}
}

/* RESPONSIVE */
@media (max-width: 768px) {
.story-grid {
grid-template-columns: 1fr;
}

h1 {
font-size: 2.5rem;
}

h2 {
font-size: 2rem;
}

.story-image {
margin-top: 40px;
order: -1;
}

.handwritten-container {
font-size: 2rem;
}
}

/* Premium Footer Styles */
.snk-footer {
background-color: var(–snk-dark);
color: var(–snk-beige);
font-family: ‘Outfit’, sans-serif;
padding: 90px 20px 30px;
position: relative;
overflow: hidden;
border-top: 3px solid var(–snk-gold);
margin-top: 80px;
}

.snk-footer::before {
content: « SNK »;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 25vw;
font-family: ‘Cardo’, serif;
font-style: italic;
color: rgba(255, 255, 255, 0.015);
pointer-events: none;
white-space: nowrap;
z-index: 1;
}

.footer-grid {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: 1.2fr 1fr 1.8fr 1.2fr;
gap: 40px;
position: relative;
z-index: 2;
}

.footer-col h4 {
font-family: ‘Cardo’, serif;
font-style: italic;
font-size: 1.5rem;
color: #ffffff;
margin-bottom: 25px;
letter-spacing: 0.5px;
}

.footer-about p {
line-height: 1.7;
color: var(–snk-beige);
font-weight: 300;
font-size: 0.95rem;
opacity: 0.9;
}

.footer-links ul {
list-style: none;
padding: 0;
margin: 0;
}

.footer-links li {
margin-bottom: 10px;
}

.footer-links a {
color: var(–snk-beige);
text-decoration: none;
transition: all 0.3s ease;
font-size: 0.9rem;
font-weight: 300;
display: inline-flex;
align-items: center;
opacity: 0.8;
}

.footer-links a:hover {
color: var(–snk-gold);
padding-left: 8px;
opacity: 1;
}

.seo-list {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 5px 20px;
}

.seo-list li a {
font-size: 0.85rem;
color: rgba(244, 232, 225, 0.6);
}

.social-icons {
display: flex;
gap: 12px;
margin-top: 25px;
}

.social-icons a {
width: 38px;
height: 38px;
border: 1px solid rgba(244, 232, 225, 0.2);
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%;
color: var(–snk-beige);
font-size: 1rem;
text-decoration: none;
transition: 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.social-icons a:hover {
border-color: var(–snk-gold);
background: var(–snk-gold);
color: var(–snk-dark);
transform: translateY(-3px);
}

.footer-contact-block {
display: flex;
flex-direction: column;
gap: 15px;
}

.phone-number {
font-family: ‘Cardo’, serif;
font-style: italic;
font-size: 1.5rem;
color: var(–snk-gold);
text-decoration: none;
transition: 0.3s;
}

.btn-footer {
display: inline-block;
text-align: center;
background: transparent;
color: var(–snk-gold);
padding: 10px 20px;
border: 1px solid var(–snk-gold);
text-transform: uppercase;
font-size: 0.8rem;
letter-spacing: 1px;
transition: 0.3s;
text-decoration: none;
}

.btn-footer:hover {
background: var(–snk-gold);
color: var(–snk-dark);
}

.footer-bottom {
max-width: 1200px;
margin: 60px auto 0;
padding-top: 25px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
display: flex;
justify-content: space-between;
align-items: center;
font-size: 0.8rem;
color: rgba(244, 232, 225, 0.5);
}

.footer-bottom-links a {
color: inherit;
text-decoration: none;
margin-left: 20px;
transition: 0.3s;
}

@media (max-width: 992px) {
.footer-grid {
grid-template-columns: 1fr 1fr;
gap: 40px;
}

.seo-list {
grid-template-columns: 1fr;
}
}

@media (max-width: 600px) {
.footer-grid {
grid-template-columns: 1fr;
text-align: center;
}

.social-icons {
justify-content: center;
}

.footer-bottom {
flex-direction: column;
gap: 15px;
}
}

.hero-logo {
width: 280px;
margin: 0 auto 30px auto;
display: block;
filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.9));
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
cursor: pointer;
padding: 20px;
border-radius: 4px;
background-color: rgba(255, 255, 255, 0);
}
.hero-logo:hover {
transform: scale(1.05);
background-color: rgba(255, 255, 255, 1);
filter: none;
box-shadow: 0 15px 40px rgba(0,0,0,0.3);
}

.story-grid { align-items: start !important; }
.story-image-grid {
column-count: 2;
column-gap: 15px;
position: relative;
margin-bottom: 20px;
}
.story-image .story-image-grid .grid-img {
display: block;
width: 100%;
margin-bottom: 15px !important;
object-fit: cover;
border-radius: 8px;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
transition: all 0.4s ease;
filter: grayscale(20%);
}
.story-image .story-image-grid .grid-img:nth-child(1) { aspect-ratio: 4/5; }
.story-image .story-image-grid .grid-img:nth-child(2) { aspect-ratio: 1/1; }
.story-image .story-image-grid .grid-img:nth-child(3) { aspect-ratio: 3/4; }
.story-image .story-image-grid .grid-img:nth-child(4) { aspect-ratio: 16/9; }
.story-image .story-image-grid .grid-img:hover {
filter: grayscale(0%);
box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}
@media (max-width: 768px) { .story-image-grid { column-count: 2; } }

{
« @context »: « https://schema.org »,
« @type »: « LocalBusiness »,
« additionalType »: « PhotographyBusiness »,
« name »: « SNK Studio – Photographe Mariage Saint-Hilaire-du-Harcouët »,
« url »: « https://www.snkstudio.fr/ »,
« telephone »: « +33651032838 »,
« priceRange »: « €€ »,
« address »: {
« @type »: « PostalAddress »,
« addressLocality »: « Saint-Hilaire-du-Harcouët »,
« postalCode »: « 50600 »,
« addressCountry »: « FR »
},
« geo »: {
« @type »: « GeoCoordinates »,
« latitude »: « 48.5772 »,
« longitude »: « -1.0925 »
},
« aggregateRating »: {
« @type »: « AggregateRating »,
« ratingValue »: « 5 »,
« reviewCount »: « 109 »
},
« description »: « Photographe de mariage à Saint-Hilaire-du-Harcouët. Antoine (SNK Studio) immortalise votre union avec une approche cinématographique et authentique. »
}

Logo SNK Studio

Photographe Mariage à Saint-Hilaire-du-Harcouët – SNK Studio

Au cœur de la Baie, mon port d’attache

Vérifier si votre date est libre

Photographe mariage à Saint-Hilaire-du-Harcouët : votre histoire mérite l’exception

C’est ici que bat le cœur de mon activité. Saint-Hilaire-du-Harcouët, carrefour entre la Normandie, la Bretagne et le Maine, offre un cadre verdoyant et authentique. Photographe mariage à Saint-Hilaire-du-Harcouët, je joue à domicile pour capturer votre bonheur dans ces paysages qui m’inspirent au quotidien.

Les Plans d’Eau du Prieuré offrent des reflets magiques au coucher du soleil pour des photos de couple empreintes de poésie.

Lieux de réception :
Je connais parfaitement les domaines prisés du secteur comme Le Domaine de la Fenderie ou Le Château de la Paluelle (proche). Chaque lieu a ses secrets de lumière que je maîtrise.

Séance Couple :
Pour vos portraits, les décors de Les Plans d’Eau du Prieuré ou La Voie Verte offrent un cadre romantique unique. Je vous guide vers les meilleures perspectives.

Mon style : Reportage Vivant

Je ne suis pas un photographe qui vous demande de « poser
». Je suis un conteur visuel qui capte les instants vrais.

Esthétique cinématographique

Chaque image est travaillée avec une attention particulière aux lumières, aux cadres et aux
émotions. Inspiré par le cinéma, je crée des photos qui ressemblent à des scènes de film —
intemporelles et profondément émouvantes.

Discrétion & spontanéité

Les meilleurs moments naissent quand on oublie l’appareil. C’est pourquoi je me fonds dans votre
journée, capturant les regards complices et les éclats de rire sans jamais interrompre le fil de
vos émotions.

Expertise locale

Du Scriptorial aux sentiers secrets offrant les plus belles vues sur la baie, je
vous guide vers les spots qui sublimeront vos portraits — quelle que soit la météo normande.

Vous planifiez un mariage à Saint-Hilaire-du-Harcouët ou ses environs ?


Contactez-moi

Pourquoi les mariés de Saint-Hilaire-du-Harcouët me font confiance

« Nous avions choisi le Manoir de la Cour pour notre mariage, et il a su
capturer chaque instant avec une sensibilité incroyable. Les photos du coucher de soleil face au
Mont sont tout simplement magiques. »

— Marion & Thomas, mariés en juin 2024 à Avranches

Questions fréquentes — Mariage Saint-Hilaire-du-Harcouët

Connais-tu des endroits secrets pour les photos de couple à Saint-Hilaire ?

Étant basé ici, je connais des chemins creux et des points de vue sur la Sélune que peu de gens soupçonnent. Je pourrai vous emmener dans des lieux intimes et sauvages à deux pas du centre-ville.

Te déplaces-tu aux domaines autour de Saint-Hilaire-du-Harcouët ?

Absolument ! Basé à Saint-Hilaire-du-Harcouët, je suis proche de Saint-Hilaire-du-Harcouët. Je couvre toute la Normandie et la Bretagne. Les frais de déplacement sont inclus dans un rayon de 50km.

Comment gères-tu la lumière changeante de la Baie ?

La lumière de la baie est un atout ! Je surveille la météo et les marées pour prévoir les
meilleurs moments. Même un ciel couvert offre une lumière douce et flatteuse (« softbox
naturelle ») idéale for les portraits.

L’écosystème de votre mariage à Saint-Hilaire-du-Harcouët

En tant que photographe habitué de la région, voici mes recommandations :

Lieux de Réception Prestige

Domaine de la Fenderie &
Salle des Fêtes de Virey

Prestataire Coup de Cœur

L’Atelier Floral

.local-recos-block { background-color: #fbfbfb; padding: 60px 0; border-top: 1px solid rgba(0,0,0,0.03); font-family: var(–font-heading); }
.reco-intro { font-family: var(–font-body); font-size: 0.95rem; color: #666; margin-bottom: 40px; max-width: 600px; margin-left: auto; margin-right: auto; }
.reco-grid { display: flex; justify-content: center; gap: 60px; flex-wrap: wrap; }
.reco-item { text-align: center; }
.reco-label { display: block; font-size: 0.85rem; letter-spacing: 2px; text-transform: uppercase; color: var(–color-accent); margin-bottom: 10px; }
.reco-value { font-size: 1.3rem; font-style: italic; color: var(–color-text); }
.reco-value a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(0,0,0,0.1); transition: border-color 0.3s; }
.reco-value a:hover { border-color: var(–color-accent); }
@media (max-width: 768px) { .reco-grid { gap: 30px; flex-direction: column; } }

// FAQ Toggle
document.querySelectorAll(‘.faq-question’).forEach(item => {
item.addEventListener(‘click’, event => {
const parent = item.parentElement;
parent.classList.toggle(‘active’);
})
})

// Scroll Reveal
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.style.opacity = 1;
entry.target.style.transform = ‘translateY(0)’;
}
});
}, { threshold: 0.1 });

document.querySelectorAll(‘section h2, .approach-card’).forEach(el => {
el.style.opacity = 0;
el.style.transform = ‘translateY(20px)’;
el.style.transition = ‘all 0.6s ease-out’;
observer.observe(el);
});

// TYPING ANIMATION SCRIPT
const textToType = « Racontez-moi votre histoire et vérifions si votre date est disponible. »;
const typingElement = document.getElementById(‘typing-text’);
let typeIndex = 0;
let hasStartedTyping = false;

// Start typing when element comes into view
const typingObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting && !hasStartedTyping) {
hasStartedTyping = true;
typeWriter();
}
});
}, { threshold: 0.5 });

typingObserver.observe(typingElement);

function typeWriter() {
if (typeIndex 0.5 – Math.random());
const selected = shuffled.slice(0, 7);

const gridHtml = `

${selected.map(img => `Mariage Normandie`).join( »)}

`;
gridContainer.innerHTML = gridHtml;
}

renderPortfolioGrid();

Trustpilot
Appeler Réserver