/*
Theme Name: Shooting Photo Bergerac
Author: Johnny Wilst
Description: Adaptation WordPress du site Shooting Photo Bergerac, avec personnalisation et demandes de réservation.
Version: 1.2.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: shooting-photo-bergerac
*/
:root { --background:#f3efe8; --foreground:#101820; --card:#fff; --card-foreground:#101820; --popover:#fff; --popover-foreground:#101820; --primary:#a66f36; --primary-foreground:#fff; --secondary:#e8dfd2; --secondary-foreground:#101820; --muted:#e9e4dc; --muted-foreground:#66615a; --accent:#d7b98f; --accent-foreground:#101820; --destructive:#b42318; --border:#d8d0c5; --input:#d8d0c5; --ring:#a66f36; --radius:.25rem; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--background); color:var(--foreground); font-family:Arial,Helvetica,sans-serif; } a { color:inherit; text-decoration:none; }
.nav-shell { position:absolute; z-index:10; top:0; left:0; width:100%; height:88px; padding:0 clamp(22px,5vw,76px); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; color:white; border-bottom:1px solid rgba(255,255,255,.22); }
.brand { display:flex; align-items:center; gap:10px; font-size:11px; line-height:1.15; letter-spacing:.16em; } .brand svg { width:34px;height:34px;color:#d8a766; } .brand b { font-weight:700; }
.nav-links { display:flex; gap:34px; font-size:14px; } .nav-links a,.nav-cta { transition:opacity .2s; } .nav-links a:hover,.nav-cta:hover { opacity:.7; } .nav-cta { justify-self:end; border-bottom:1px solid #d8a766; padding:8px 0; font-size:13px; }
.hero { position:relative; min-height:760px; height:100vh; max-height:980px; display:flex; align-items:center; color:white; overflow:hidden; background:#101820; }
.hero-image { position:absolute; inset:0;  background-size:cover; background-position:center 38%; transform:scale(1.01); }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,15,20,.84) 0%,rgba(7,15,20,.46) 48%,rgba(7,15,20,.12) 100%),linear-gradient(0deg,rgba(7,15,20,.42),transparent 48%); }
.hero-copy { position:relative; z-index:1; width:min(720px,88vw); margin-left:clamp(24px,9vw,142px); padding-top:74px; } .eyebrow { margin:0 0 24px; font-size:12px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:#e1ba83; } .eyebrow.dark { color:#a66f36; }
.hero h1,.section-intro h2,.booking-heading h2,footer h2 { margin:0; font-family:Georgia,'Times New Roman',serif; font-weight:400; } .hero h1 { font-size:clamp(58px,8.2vw,126px); line-height:.86; letter-spacing:-.055em; } .hero h1 em { font-weight:400; color:#d8a766; }
.hero-copy>p:not(.eyebrow) { max-width:540px; margin:30px 0; font-family:Georgia,serif; font-size:20px; line-height:1.55; color:#eee8df; }
.hero-button { display:inline-flex; align-items:center; gap:22px; border:1px solid rgba(255,255,255,.5); padding:15px 20px; font-size:14px; letter-spacing:.03em; } .hero-button svg { width:17px; }
.hero-signature { position:absolute; z-index:1; right:clamp(24px,5vw,75px); bottom:46px; margin:0; text-align:right; font-family:Georgia,serif; font-style:italic; font-size:20px; } .hero-signature span { font:10px Arial,sans-serif; letter-spacing:.22em; text-transform:uppercase; color:#d8a766; }
.services-section { padding:110px clamp(24px,7vw,110px) 125px; } .section-intro { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:64px; } .section-intro h2 { width:68%; font-size:clamp(42px,5.5vw,78px); line-height:.98; letter-spacing:-.04em; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #b9afa2; border-bottom:1px solid #b9afa2; } .service-card { padding:36px 36px 42px; border-right:1px solid #b9afa2; } .service-card:last-child { border:0; } .service-top { display:flex; justify-content:space-between; color:#a66f36; font-size:12px; } .service-top svg { width:27px; height:27px; stroke-width:1.35; } .service-card h3 { margin:65px 0 16px; font:400 38px Georgia,serif; } .service-card p { min-height:82px; margin:0 0 34px; color:#5f5a54; font-size:16px; line-height:1.65; } .service-card a { display:flex; justify-content:space-between; padding-top:14px; border-top:1px solid #c8bfb4; font-size:13px; font-weight:700; }
.booking-section { padding:110px clamp(24px,7vw,110px) 120px; color:white; background:#101820; } .booking-heading { display:grid; grid-template-columns:.7fr 1.4fr 1fr; gap:38px; align-items:end; margin-bottom:58px; } .booking-heading h2 { font-size:clamp(46px,5vw,74px); line-height:.98; color:#f5f0e8; } .booking-heading>p:last-child { margin:0; color:#bfc6c7; line-height:1.65; }
.booking-panel { display:grid; grid-template-columns:.86fr 1.14fr; background:#f6f2ec; color:#101820; } .calendar-side,.booking-form { padding:clamp(28px,4vw,58px); } .calendar-side { border-right:1px solid #d1c8bd; } .panel-title { display:flex; align-items:flex-start; gap:15px; margin-bottom:30px; } .panel-title svg { color:#a66f36; } .panel-title h3 { margin:0 0 6px; font:400 25px Georgia,serif; } .panel-title p { margin:0; color:#716b64; font-size:14px; }
.booking-calendar { width:100%; padding:0; --cell-size:48px; } .booking-calendar>div,.booking-calendar [data-slot='calendar'] { width:100%; } .booking-calendar table { width:100%; } .calendar-legend { display:flex; gap:24px; margin-top:24px; font-size:13px; color:#716b64; } .calendar-legend span { display:flex; align-items:center; gap:8px; } .calendar-legend i { width:10px;height:10px;border:1px solid #a66f36;border-radius:50%; } .calendar-legend .unavailable { background:#ccc5bc;border-color:#ccc5bc; }
.booking-form { display:flex; flex-direction:column; gap:18px; } .booking-form label { display:flex; flex-direction:column; gap:8px; font-size:13px; font-weight:700; letter-spacing:.02em; } .form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; } .form-control { width:100%; min-height:46px; border-radius:0; background:#fff; border-color:#cbc2b7; font-size:15px; font-weight:400; } .submit-button { min-height:51px; width:100%; border-radius:0; background:#a66f36; font-size:14px; } .form-message { margin:0; color:#28704c; font-size:14px; line-height:1.5; } .form-message.error { color:#a4382f; } .privacy-note { margin:0; color:#817b74; font-size:12px; line-height:1.5; }
footer { position:relative; display:grid; grid-template-columns:1.5fr 1fr; gap:60px; padding:100px clamp(24px,7vw,110px) 46px; background:#c89b5c; color:#101820; } .footer-mark { display:block; margin-bottom:35px; } .footer-mark svg { width:40px;height:40px; } footer h2 { font-size:clamp(48px,6vw,88px); letter-spacing:-.045em; } .footer-contact { align-self:end; font-size:16px; line-height:1.7; } .footer-contact>a { text-decoration:underline; text-underline-offset:4px; } .footer-legal { grid-column:1/-1; margin:70px 0 0; padding-top:22px; border-top:1px solid rgba(16,24,32,.3); font-size:12px; }
@media (max-width:800px) { .nav-shell{grid-template-columns:1fr auto;height:76px}.nav-links{display:none}.nav-cta{font-size:12px}.hero{min-height:690px}.hero-copy{margin-left:24px}.hero-signature{display:none}.section-intro{display:block}.section-intro h2{width:100%}.services-grid{grid-template-columns:1fr}.service-card{border-right:0;border-bottom:1px solid #b9afa2}.service-card:last-child{border-bottom:0}.service-card h3{margin-top:35px}.service-card p{min-height:0}.booking-heading{grid-template-columns:1fr}.booking-panel{grid-template-columns:1fr}.calendar-side{border-right:0;border-bottom:1px solid #d1c8bd}.form-row{grid-template-columns:1fr}footer{grid-template-columns:1fr}.booking-calendar{--cell-size:42px}} 
@media (max-width:460px){.nav-cta{display:none}.hero h1{font-size:55px}.booking-calendar{--cell-size:36px}.calendar-side,.booking-form{padding:25px 18px}.services-section,.booking-section{padding-left:18px;padding-right:18px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.hero-image{width:100%;height:100%;object-fit:cover;object-position:center 38%}
.hero h1{line-height:1.03}
.admin-bar .nav-shell{top:32px}
input,select,textarea,button{font:inherit}
.form-control{border:1px solid #cbc2b7;padding:12px}
.submit-button{color:white;border:0;cursor:pointer;padding:14px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a66f36;outline-offset:3px}
.calendar-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;text-transform:capitalize}
.calendar-bar button{background:transparent;border:1px solid #b9afa2;font-size:24px;min-width:40px;cursor:pointer}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.calendar-grid>span{font-size:13px;padding:8px 0}
.calendar-grid button{aspect-ratio:1;border:1px solid #b9afa2;background:white;color:#101820;cursor:pointer;min-width:0;padding:0}
.calendar-grid button:disabled{background:#e9e4dc;color:#999;cursor:default}
.calendar-grid button[aria-pressed=true]{background:#a66f36;color:white}
#calendar-status{font-size:14px;line-height:1.5;color:#5f5a54}
.booking-notice{border:1px solid #d8a766;padding:18px;line-height:1.5}
.spb-honey{position:absolute;left:-10000px}
.skip-link{position:absolute;top:-100px;z-index:100;background:white;padding:16px;color:#101820}
.skip-link:focus{top:0}
.standard-content{padding:140px 7vw 70px;min-height:70vh}
body:not(.home) .nav-shell{background:#101820}
.standard-content img{max-width:100%;height:auto}
.footer-contact{overflow-wrap:anywhere}
@media(max-width:782px){.admin-bar .nav-shell{top:46px}}

.service-card .service-price{min-height:0;color:#101820;font:400 34px Georgia,serif;margin:20px 0 28px}
.service-price span{display:block;font:14px/1.5 Arial,sans-serif;margin-top:8px;color:#5f5a54}
.wedding-pricing{padding-top:80px}
.pricing-intro h2{font:400 clamp(34px,4vw,56px)/1.1 Georgia,serif;margin:0 0 36px}
.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.price-card{border:1px solid #b9afa2;padding:34px;background:#f9f6f1}
.price-category{font-size:14px;color:#716b64;margin:0 0 18px}
.price-card h3{font:400 32px Georgia,serif;margin:0}
.price-amount{font:400 clamp(36px,4vw,54px) Georgia,serif;margin:32px 0;white-space:nowrap}
.price-button{display:block;border:1px solid #a66f36;text-align:center;padding:15px;font-size:14px}
.price-premium{background:#101820;color:#fff;border-color:#101820}
.price-premium .price-category{color:#e1ba83}
.pricing-note{font-size:14px;line-height:1.6;color:#5f5a54;margin-top:24px}
.booking-form [hidden]{display:none}
@media(max-width:900px){.pricing-grid{grid-template-columns:1fr}.price-card{padding:28px}}

/* Formules affichées uniquement après le choix de la prestation Mariages. */
.wedding-pricing[hidden] { display:none !important; }
.wedding-pricing { scroll-margin-top:32px; }
.service-card { display:flex; flex-direction:column; }
.service-card > a { margin-top:auto; }
#spb-show-weddings:focus-visible { outline:2px solid #a66f36; outline-offset:6px; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Descriptions des trois reportages de mariage. */
.pricing-intro h2{margin-bottom:20px}
.pricing-description{max-width:760px;font-size:16px;line-height:1.7;color:#5f5a54;margin:0 0 36px}
.price-card{display:flex;flex-direction:column}
.price-tagline{font:italic 400 23px/1.35 Georgia,serif;margin:0 0 18px}
.price-description,.price-inclusions{font-size:16px;line-height:1.65}
.price-description{margin:0 0 20px}
.price-inclusions{padding-left:20px;margin:0 0 30px}
.price-inclusions li{padding-left:4px;margin-bottom:10px}
.price-card .price-button{margin-top:auto}
