/*
Theme Name:   Rutt Visuals
Theme URI:    https://ruttvisuals.com
Description:  Divi starter child theme for Rutt Visuals: headshots, personal branding and team portraits. Builds the pages from native Divi modules with no per-module styling, so the design lives in Divi's global settings. Adds a team calculator, headshot-day slot picker, inquiry forms and local SEO schema.
Author:       Rutt Visuals
Template:     Divi
Version:      2.2.0
Text Domain:  rutt-visuals
*/

/* Only the theme's interactive pieces are styled here (calculator, slots, booking forms).
   They inherit fonts and colors from Divi; their buttons use Divi's global button style.
   Everything else is designed in Divi. */

body.rv [hidden]{display:none!important}
.rv-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* Team calculator */
.rv-calc{display:flex;flex-direction:column;gap:16px}
.rv-calc input[type=range]{width:100%}
.rv-calc .rv-n{font-size:2.4em;font-weight:700;line-height:1.1}
.rv-calc .rv-out{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.rv-calc .rv-out b{display:block;font-size:1.6em;line-height:1.15}
.rv-calc .rv-out span{font-size:.85em;opacity:.75}
.rv-calc-note{font-size:.85em;opacity:.75;margin:0}
@media (max-width:520px){.rv-calc .rv-out{grid-template-columns:1fr}}

/* Headshot-day slots */
.rv-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-bottom:20px}
.rv-slot{font:inherit;padding:10px 6px;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;opacity:.8}
.rv-slot[aria-pressed="true"]{opacity:1;font-weight:700;outline:2px solid currentColor;outline-offset:2px}
.rv-slot:disabled{text-decoration:line-through;opacity:.35;cursor:not-allowed}

/* Booking tabs and forms */
.rv-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.rv-tabs button{font:inherit;padding:10px 14px;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;opacity:.6}
.rv-tabs button[aria-selected="true"]{opacity:1;font-weight:700}
form.rv-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:760px}
form.rv-form .full{grid-column:1/-1}
@media (max-width:640px){form.rv-form{grid-template-columns:1fr}}
.rv-fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.rv-fld input,.rv-fld select,.rv-fld textarea{font:inherit;padding:10px 12px;border:1px solid rgba(128,128,128,.5);width:100%;box-sizing:border-box}
.rv-fld textarea{min-height:110px}
.rv-ok{padding:14px 16px;border-left:3px solid currentColor;margin-bottom:16px}

/* "Book a session" menu item as a button (the menu item has the CSS class rv-menu-cta).
   Remove this rule, or change it, if you design the header in the Theme Builder. */
#top-menu li.rv-menu-cta > a{background:#2e5c4f;color:#fff!important;padding:10px 16px!important;border-radius:2px}

/* =====================================================================
   RUTT VISUALS DESIGN  (contact sheet, v4)
   Colors, fonts, sizes, spacing, backgrounds, shadows, tilt and hover
   now live in each Divi module (and the "RV" global colors).
   This file only holds what Divi has no setting for:
   column layouts, the film strip, red pencil marks, inline handwriting,
   lists/tables/FAQ structure, gallery grid, header logo and menu details.
   ===================================================================== */
:root{
  --rv-paper:#e9ebe6; --rv-ink:#121314; --rv-black:#121212;
  --rv-red:#c8321f; --rv-note:#b8291a; --rv-red-dk:#f0614a; --rv-rule:#c9ccc5;
  --rv-rule-dk:#2f3131; --rv-gray:#7b7f78; --rv-light:#e9ebe6;
  --rv-h:420px; --rv-speed:70s;
  --rv-hand:'Covered By Your Grace','Bradley Hand',cursive;
  --rv-sans:'Archivo','Helvetica Neue',Arial,sans-serif;
}
@media (max-width:980px){:root{--rv-h:300px}}
@media (max-width:640px){:root{--rv-h:220px}}

body.rv{background:var(--rv-paper);color:var(--rv-ink);font-family:var(--rv-sans);-webkit-font-smoothing:antialiased}
body.rv #page-container,body.rv #main-content,body.rv #et-main-area,body.rv .et-l--post{background:var(--rv-paper)}
body.rv #page-container,body.rv #et-main-area{overflow-x:clip}

/* ---------- Layout (Divi has no grid columns that stack like this) ---------- */
.rv .rv-s.et_pb_section{position:relative;margin:0}
.rv .rv-s.rv-dark{color:var(--rv-light)}
.rv .rv-s .et_pb_row{margin-left:auto;margin-right:auto}
.rv .rv-s .et_pb_row + .et_pb_row{margin-top:56px}
.rv .rv-s .et_pb_column{display:flex;flex-direction:column;gap:20px;margin:0}
.rv .rv-s .et_pb_module{margin:0}
.rv .rv-s .et_pb_row.rv-g{display:grid!important;gap:24px 40px;align-items:start}
.rv .rv-s .et_pb_row.rv-g > .et_pb_column{width:auto!important;max-width:none!important;flex:none!important;margin:0!important;min-width:0}
.rv .rv-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.rv .rv-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.rv .rv-g-sess{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,.72fr)}
.rv .rv-g4{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr))}
.rv .rv-g-hero{grid-template-columns:minmax(0,3fr) minmax(0,1fr);align-items:end!important;gap:24px 48px!important}
.rv .rv-g-split{grid-template-columns:minmax(0,7fr) minmax(0,4fr);align-items:center!important;gap:40px 96px!important}
.rv .rv-g-about{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center!important;gap:40px 120px!important}
.rv .rv-g-side{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:24px 96px!important}
.rv .rv-s.rv-cards .rv-g3{gap:32px 36px}
.rv .rv-s.rv-hero .et_pb_row + .et_pb_row{margin-top:56px}
.rv .rv-cta.rv-g > .rv-btnrow{justify-content:flex-end;align-self:end}
.rv .rv-formwrap{max-width:900px}
@media (max-width:980px){
  .rv .rv-g-hero,.rv .rv-g-split,.rv .rv-g-about,.rv .rv-g-side{grid-template-columns:minmax(0,1fr)}
  .rv .rv-g-about{gap:56px!important}
  .rv .rv-g-sess{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rv .rv-g-sess > .et_pb_column:nth-child(3){grid-column:1/-1}
  .rv .rv-cta.rv-g > .rv-btnrow{justify-content:flex-start}
}
@media (max-width:820px){.rv .rv-g3{grid-template-columns:minmax(0,1fr)}.rv .rv-g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .rv .rv-g2,.rv .rv-g-sess,.rv .rv-g4{grid-template-columns:minmax(0,1fr)}
  .rv .rv-s .et_pb_row + .et_pb_row,.rv .rv-s.rv-hero .et_pb_row + .et_pb_row{margin-top:32px}
}

/* ---------- Text structure (sizes and colors are set per module in Divi) ---------- */
.rv .rv-s p{padding:0;margin:0 0 1em}
.rv .rv-s .et_pb_text_inner > :last-child{margin-bottom:0}
.rv .rv-s h1,.rv .rv-s h2,.rv .rv-s h3,.rv .rv-s h4{padding:0;margin:0 0 .45em}
.rv .rv-s h1{margin:0}
.rv .rv-s a{text-decoration-thickness:2px;text-underline-offset:3px}
.rv .rv-s ul{padding:0 0 0 1.1em;margin:0 0 1em}
.rv .rv-s li{margin:0 0 .35em}
.rv .rv-s p:empty,.rv .rv-steps > br,.rv .rv-step > br,.rv .rv-areas > br,.rv .rv-faq > br{display:none}
.rv .rv-s .et_pb_text_inner > p,.rv .rv-faq p{max-width:68ch}
.rv .rv-s .rv-card .et_pb_text_inner p,.rv .rv-s .rv-keyline p,.rv .rv-s .rv-trusted p{max-width:none}
.rv .rv-small,.rv .rv-small p{font-size:16px}
.rv .rv-keyline p{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-bottom:18px;border-bottom:1px solid var(--rv-rule);margin:0}
.rv .rv-trusted p{margin:0;padding-top:18px;border-top:1px solid var(--rv-rule)}
@media (min-width:981px){.rv .rv-keep{white-space:nowrap}}

/* Small grey label used inside a longer text block (e.g. "How a session works") */
.rv .rv-s h2.rv-eyebrow{font-size:15px;font-weight:700;font-stretch:100%;font-variation-settings:normal;letter-spacing:.12em;line-height:1.4;text-transform:uppercase;color:var(--rv-gray)!important;margin:0 0 14px}
.rv .rv-s.rv-dark h2.rv-eyebrow{color:#8a8e87!important}
.rv .rv-s .rv-card .rv-eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rv-gray);margin:0}

/* Handwriting used inline inside text (whole-note modules are set in Divi) */
.rv .rv-note{font-family:var(--rv-hand);font-weight:400;font-size:32px;line-height:1.1;letter-spacing:.01em;text-transform:none;color:var(--rv-note)}
.rv .rv-dark .rv-note{color:var(--rv-red-dk)}
.rv .rv-note.rv-sm{font-size:26px}
@media (max-width:640px){.rv .rv-note{font-size:27px}}
.rv .rv-tilt{display:inline-block;transform:rotate(-3deg)}
.rv .rv-tilt-2{display:inline-block;transform:rotate(-1.5deg)}

/* Red grease-pencil marks (CSS drawings, so the words stay editable) */
.rv .rv-under{position:relative;white-space:nowrap;display:inline-block}
.rv .rv-under::after{content:"";position:absolute;left:0;right:0;bottom:-.16em;height:.2em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 40' preserveAspectRatio='none'%3E%3Cpath d='M6 22 C 160 6, 380 34, 594 14' fill='none' stroke='%23c8321f' stroke-width='7' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat;pointer-events:none}
.rv .rv-circle{position:relative;display:inline-block}
.rv .rv-circle::after{content:"";position:absolute;left:-.16em;right:-.16em;top:-.16em;bottom:-.14em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 160' preserveAspectRatio='none'%3E%3Cpath d='M150 8 C 262 4, 298 44, 294 84 C 290 132, 228 154, 140 152 C 52 150, 6 124, 8 80 C 10 36, 70 8, 176 12 C 226 14, 262 26, 282 46' fill='none' stroke='%23e0412b' stroke-width='6' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat;pointer-events:none}
.rv .rv-double{position:relative;display:inline-block}
.rv .rv-double::after{content:"";position:absolute;left:-.04em;right:-.04em;bottom:-.24em;height:.24em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 40' preserveAspectRatio='none'%3E%3Cpath d='M6 12 C 120 4, 260 18, 394 8' fill='none' stroke='%23e0412b' stroke-width='6' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M30 30 C 140 22, 270 34, 380 24' fill='none' stroke='%23e0412b' stroke-width='5' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat;pointer-events:none}
.rv .rv-check{position:relative;display:inline-block}
.rv .rv-check::before{content:"";position:absolute;right:-.62em;top:-.2em;width:.5em;height:.42em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 100'%3E%3Cpath d='M10 52 C 24 62, 34 76, 42 90 C 62 56, 86 26, 114 6' fill='none' stroke='%23e0412b' stroke-width='9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- Buttons (look is set per button in Divi) ---------- */
.rv .rv-s .et_pb_button_module_wrapper{margin:0}
.rv .rv-s .et_pb_column.rv-btnrow{flex-direction:row;flex-wrap:wrap;align-items:center;gap:18px 14px}
.rv .rv-s .et_pb_column.rv-btnrow > .et_pb_module:not(.et_pb_button_module_wrapper){flex:1 0 100%}

/* ---------- Images ---------- */
.rv .rv-s .et_pb_image,.rv .rv-s .et_pb_image_wrap{display:block;width:100%;max-width:none}
.rv .rv-s .et_pb_image img{display:block;width:100%;height:auto}
.rv .rv-crop{position:relative;overflow:visible}
.rv .rv-crop::after{content:"";position:absolute;inset:-40px;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23c8321f' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath vector-effect='non-scaling-stroke' d='M2 14 C 1.6 9, 1.8 5, 2.4 1.6 C 6 1.2, 10 1.4, 14 1.8'/%3E%3Cpath vector-effect='non-scaling-stroke' d='M86 1.4 C 90 1.6, 94 1.4, 98 2 C 98.4 6, 98.2 10, 97.8 14'/%3E%3Cpath vector-effect='non-scaling-stroke' d='M98.2 86 C 98.4 90, 98 94, 97.6 98 C 94 98.4, 90 98.2, 86 97.8'/%3E%3Cpath vector-effect='non-scaling-stroke' d='M14 98.2 C 10 98.4, 6 98, 2.2 97.6 C 1.8 94, 2 90, 1.6 86'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat}
.rv .rv-arrow-in{position:relative}
.rv .rv-arrow-in::before{content:"";position:absolute;left:-120px;bottom:70px;width:130px;height:80px;z-index:2;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 120'%3E%3Cg fill='none' stroke='%23e0412b' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 96 C 60 110, 120 90, 176 34'/%3E%3Cpath d='M150 30 C 160 32, 170 32, 180 30 C 180 42, 178 52, 174 62'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
@media (max-width:980px){.rv .rv-arrow-in::before{display:none}.rv .rv-s .et_pb_image.rv-print{max-width:460px}.rv .rv-trio .et_pb_image.rv-print{max-width:none}.rv .rv-crop::after{inset:-28px}}
@media (max-width:640px){.rv .rv-crop::after{inset:-18px}}

/* ---------- Film strip (a Divi Gallery turned into a scrolling strip by rv.js) ---------- */
.rv .rv-sprk::before,.rv .rv-sprk::after{content:"";position:absolute;left:0;right:0;height:20px;background:repeating-linear-gradient(90deg,transparent 0 16px,#2a2b2b 16px 30px,transparent 30px 44px) 0 5px/44px 10px repeat-x;pointer-events:none}
.rv .rv-sprk::before{top:0}
.rv .rv-sprk::after{bottom:0}
.rv .rv-s.rv-hero-in + .rv-strip-sec{margin-top:-1px!important}
.rv .rv-s.rv-hero-in + .rv-strip-sec::before{display:none}
.rv .rv-strip-sec:not(.rv-strip-sm){--rv-h:520px}
.rv .rv-strip-sm{--rv-h:320px}
.rv.page-id-130 .rv-strip-sm,.rv.page-id-131 .rv-strip-sm{--rv-h:460px}
@media (max-width:980px){.rv .rv-strip-sec:not(.rv-strip-sm){--rv-h:400px}.rv .rv-strip-sm{--rv-h:240px}.rv.page-id-130 .rv-strip-sm,.rv.page-id-131 .rv-strip-sm{--rv-h:340px}}
@media (max-width:640px){.rv .rv-strip-sec:not(.rv-strip-sm){--rv-h:300px}.rv .rv-strip-sm{--rv-h:190px}.rv.page-id-130 .rv-strip-sm,.rv.page-id-131 .rv-strip-sm{--rv-h:260px}}
.rv .rv-strip .et_pb_gallery_items{display:flex!important;gap:14px;overflow:hidden;padding:26px 0}
.rv .rv-strip .et_pb_gallery_item{flex:none;width:auto!important;margin:0!important;clear:none!important;display:block!important}
.rv .rv-strip .et_pb_gallery_image img{height:var(--rv-h);width:auto}
.rv .rv-strip .et_overlay{display:none}
.rv .rv-strip.is-live .et_pb_gallery_items,.rv .rv-strip.is-live .et_pb_gallery_pagination{display:none!important}
.rv .rv-reel{overflow:hidden;padding:26px 0}
.rv .rv-track{display:flex;gap:14px;width:max-content;padding-right:14px;animation:rv-scroll var(--rv-speed) linear infinite}
.rv .rv-reel:hover .rv-track{animation-play-state:paused}
.rv .rv-frame{position:relative;flex:none;height:var(--rv-h);margin:0}
.rv .rv-frame img{height:100%;width:auto;display:block;max-width:none}
.rv .rv-pick{position:absolute;left:-16px;top:-16px;width:calc(100% + 32px);height:calc(100% + 32px);overflow:visible;pointer-events:none}
.rv .rv-pick path{stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset .5s ease,opacity 0s .5s}
.rv .rv-frame:hover .rv-pick path{stroke-dashoffset:0;opacity:1;transition:stroke-dashoffset .5s ease,opacity 0s}
@keyframes rv-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.rv .rv-track{animation:none}.rv .rv-reel{overflow-x:auto}}

/* ---------- Cards (white card, shadow, tilt and hover are set per column in Divi) ---------- */
.rv .rv-s .rv-card{gap:14px;position:relative}
.rv .rv-s .rv-card h3{margin:6px 0 .3em}
.rv .rv-s .rv-card.rv-flat h3{margin-top:0}
.rv .rv-s .rv-card h3 a{text-decoration:none;color:inherit}
.rv .rv-s .rv-card h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.rv .rv-s .rv-card .rv-go{display:inline-block;transition:transform .4s ease}
.rv .rv-s .rv-card:hover .rv-go{transform:translateX(4px)}
.rv .rv-s .rv-card .rv-price{font-family:var(--rv-hand);color:var(--rv-note);font-size:34px;line-height:1.1;margin:0 0 .3em}
.rv .rv-s .rv-card.rv-flat .rv-price{font-size:46px;margin:.1em 0 .35em}
.rv .rv-s .rv-card .et_pb_button_module_wrapper{position:relative;z-index:2;margin-top:auto}

/* ---------- Session steps (Shoot. Pick. Keep.) ---------- */
.rv .rv-steps{display:flex;flex-direction:column}
.rv .rv-step{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:12px 28px;align-items:end;padding:28px 0 30px;border-top:1px solid var(--rv-rule)}
.rv .rv-dark .rv-step{border-color:var(--rv-rule-dk)}
.rv .rv-step .rv-num{font-family:var(--rv-hand);color:var(--rv-note);font-size:32px;line-height:1;transform:rotate(-6deg);align-self:start}
.rv .rv-dark .rv-step .rv-num{color:var(--rv-red-dk)}
.rv .rv-step .rv-word{font-weight:900;font-stretch:62%;font-size:clamp(64px,7vw,124px);line-height:.8;letter-spacing:-.01em;text-transform:uppercase}
.rv .rv-step p{margin:0 0 6px!important;max-width:30ch;justify-self:end}
@media (max-width:640px){.rv .rv-step{grid-template-columns:auto minmax(0,1fr)}.rv .rv-step p{grid-column:1/-1;justify-self:start;max-width:none}}

/* ---------- Lists, tables, FAQ, areas, stats ---------- */
.rv .rv-areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px}
.rv .rv-areas > div{border-top:2px solid currentColor;padding-top:14px}
.rv .rv-s .rv-areas h3{font-size:20px;margin:0 0 .3em}
.rv .rv-s .rv-areas p{font-size:16px;margin:0}
@media (max-width:640px){.rv .rv-areas{grid-template-columns:minmax(0,1fr)}}
.rv .rv-faq > div{padding:22px 0;border-top:1px solid currentColor}
.rv .rv-faq > div:last-child{border-bottom:1px solid currentColor}
.rv .rv-s .rv-faq h3{font-size:21px;margin:0 0 .35em;max-width:60ch}
.rv .rv-s .rv-faq p{font-size:17px;margin:0}
.rv .rv-table{width:100%;border-collapse:collapse;font-size:17px;margin:0 0 1em}
.rv .rv-table td,.rv .rv-table th{padding:12px 0;border-top:1px solid var(--rv-rule);text-align:left;vertical-align:top}
.rv .rv-table tr:last-child td{border-bottom:1px solid var(--rv-rule)}
.rv .rv-table td:last-child,.rv .rv-table th:last-child{text-align:right;font-weight:700;padding-left:16px}
.rv .rv-table th{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--rv-gray);border-top:0}
.rv .rv-dark .rv-table td{border-color:var(--rv-rule-dk)}
.rv .rv-ticks{list-style:none;padding:0!important}
.rv .rv-ticks li{position:relative;padding-left:30px}
.rv .rv-ticks li::before{content:"";position:absolute;left:0;top:.3em;width:18px;height:15px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 100'%3E%3Cpath d='M10 52 C 24 62, 34 76, 42 90 C 62 56, 86 26, 114 6' fill='none' stroke='%23c8321f' stroke-width='12' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.rv .rv-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 24px}
.rv .rv-g-split .rv-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.rv .rv-stats div{border-top:2px solid currentColor;padding-top:12px}
.rv .rv-dark .rv-stats div{border-color:var(--rv-rule-dk)}
.rv .rv-stats b{display:block;font-weight:900;font-stretch:70%;font-size:clamp(40px,5vw,64px);line-height:1}
.rv .rv-stats span{font-size:15px}
@media (max-width:640px){.rv .rv-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rv .rv-steps8{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.rv .rv-steps8 > div{border-top:2px solid currentColor;padding-top:14px}
.rv .rv-steps8 h3{margin:0 0 .3em}
.rv .rv-steps8 .rv-num{display:block;font-family:var(--rv-hand);color:var(--rv-note);font-size:30px;line-height:1;margin-bottom:6px}
.rv .rv-dark .rv-steps8 .rv-num{color:var(--rv-red-dk)}
.rv .rv-steps8 p{font-size:16px;margin:0}
@media (max-width:980px){.rv .rv-steps8{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.rv .rv-steps8{grid-template-columns:minmax(0,1fr)}}
.rv .rv-trio .rv-note{margin-top:14px}

/* ---------- Work galleries: clean grid, 5 / 3 / 1 across ---------- */
.rv .rv-s .rv-grid .et_pb_gallery_items{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.rv .rv-s .rv-grid .et_pb_gallery_item{width:auto!important;margin:0!important;clear:none!important;display:block!important;background:none;padding:0;box-shadow:none;transform:none!important}
.rv .rv-s .rv-grid .et_pb_gallery_image{position:relative;overflow:visible}
.rv .rv-s .rv-grid .et_pb_gallery_image a{display:block;position:relative}
.rv .rv-s .rv-grid img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transition:filter .35s ease}
.rv .rv-s .rv-grid .et_overlay{display:none!important}
.rv .rv-s .rv-grid .et_pb_gallery_image a:hover img{filter:saturate(1.15) contrast(1.03)}
.rv .rv-s .rv-grid .et_pb_gallery_image a::after{content:"";position:absolute;top:10px;right:10px;width:22px;height:22px;opacity:0;transform:scale(.6) rotate(-20deg);transition:opacity .25s ease,transform .35s cubic-bezier(.2,.8,.2,1);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cg fill='none' stroke='%23e3262b' stroke-width='5' stroke-linecap='round'%3E%3Cpath d='M20.5 4 C 19.6 14, 20.3 26, 19.4 36'/%3E%3Cpath d='M4 19.6 C 14 20.5, 26 19.2, 36 20.4'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;pointer-events:none}
.rv .rv-s .rv-grid .et_pb_gallery_image a::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--rv-red);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.8,.2,1);z-index:1;pointer-events:none}
.rv .rv-s .rv-grid .et_pb_gallery_image a:hover::after{opacity:1;transform:scale(1) rotate(0)}
.rv .rv-s .rv-grid .et_pb_gallery_image a:hover::before{transform:scaleX(1)}
@media (max-width:980px){.rv .rv-s .rv-grid .et_pb_gallery_items{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
@media (max-width:640px){.rv .rv-s .rv-grid .et_pb_gallery_items{grid-template-columns:minmax(0,1fr);gap:12px}}
@media (prefers-reduced-motion:reduce){.rv .rv-s .rv-grid img,.rv .rv-s .rv-grid .et_pb_gallery_image a::before,.rv .rv-s .rv-grid .et_pb_gallery_image a::after{transition:none}}
/* Lightbox: just the photo on near-black, no title, caption or counter */
.mfp-bg{background:#121212!important;opacity:.96!important}
.mfp-title,.mfp-counter,.mfp-bottom-bar{display:none!important}
.mfp-figure:after{box-shadow:none!important;background:none!important}
.mfp-img{padding:40px 0!important}
.mfp-close{color:#e9ebe6!important;opacity:.8}
.mfp-arrow{opacity:.5}
.mfp-arrow:hover{opacity:1}

/* ---------- Theme forms ---------- */
.rv .rv-s .rv-fld input,.rv .rv-s .rv-fld select,.rv .rv-s .rv-fld textarea{background:#fff;border:1px solid var(--rv-rule);border-radius:0;color:var(--rv-ink)}
.rv .rv-s form button,.rv .rv-s .rv-form button,.rv .rv-s .rv-calc a.et_pb_button{font-family:var(--rv-sans);font-weight:700;font-size:15px;border:0;border-radius:0;padding:15px 22px;background:var(--rv-ink);color:var(--rv-paper);cursor:pointer}
.rv .rv-s.rv-dark form button{background:var(--rv-paper);color:var(--rv-black)}
.rv .rv-s .rv-slot{border-radius:0}
.rv .rv-calc input[type=range]{-webkit-appearance:auto!important;appearance:auto!important;accent-color:var(--rv-red);height:28px;background:transparent!important;padding:0!important;border:0!important}

/* ---------- Header (menu fonts and colors are in the Theme Builder header) ---------- */
.rv .et-l--header .et_pb_menu__logo-wrap{width:auto!important;max-width:none!important;flex:none}
.rv .et-l--header .et_pb_menu__logo{position:relative}
.rv .et-l--header .et_pb_menu__logo img{height:30px!important;width:auto!important;max-height:none!important}
@media (max-width:980px){.rv .et-l--header .et_pb_menu__logo img{height:24px!important}}
.rv .et-l--header .et_pb_menu__logo::after{content:"";position:absolute;inset:-10px -12px;opacity:0;transform:scale(1.08);transition:opacity .25s ease,transform .4s cubic-bezier(.2,.8,.2,1);pointer-events:none;background:
 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M2.2 17.5 C 1.9 12, 2 7, 2.4 2.3 C 7 1.9, 12 2.1, 17.6 2.4' fill='none' stroke='%23e3262b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") left top/18px 18px no-repeat,
 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M2.4 2.2 C 8 2.4, 13 1.9, 17.7 2.4 C 18.1 7, 17.9 12, 17.6 17.6' fill='none' stroke='%23e3262b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right top/18px 18px no-repeat,
 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M17.8 2.4 C 18 8, 17.7 13, 17.5 17.7 C 12 18.1, 7 17.9, 2.3 17.6' fill='none' stroke='%23e3262b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right bottom/18px 18px no-repeat,
 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M17.6 17.8 C 12 18, 7 17.6, 2.4 17.5 C 1.9 12, 2.1 7, 2.3 2.4' fill='none' stroke='%23e3262b' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") left bottom/18px 18px no-repeat}
.rv .et-l--header .et_pb_menu__logo:hover::after{opacity:1;transform:scale(1)}
.rv .et-l--header .et-menu > li > a:hover{color:var(--rv-red)!important;opacity:1!important}
.rv .et-l--header .et-menu > li.rv-menu-cta > a{border:0!important;padding:0!important;background:none!important;text-decoration:underline!important;text-decoration-color:var(--rv-red)!important;text-decoration-thickness:3px!important;text-underline-offset:7px}
.rv .et-l--header .et_mobile_menu{background:var(--rv-paper)!important;border-top-color:var(--rv-red)!important}
.rv .et-l--header .mobile_menu_bar::before{color:var(--rv-ink)!important}

/* ---------- Footer (colors and fonts are in the Theme Builder footer) ---------- */
.rv .rv-footer ul{list-style:none;padding:0!important;margin:0}
.rv .rv-footer li{margin:0 0 8px;padding:0}
.rv .rv-footer a{text-decoration:none}
.rv .rv-footer a:hover{color:var(--rv-red-dk)}
.rv .rv-footer p{max-width:none}
.rv .rv-footer .rv-flogo img{width:180px!important;height:auto}
.rv .rv-footer .rv-copy p{font-size:13px;color:#6f736d;border-top:1px solid var(--rv-rule-dk);padding-top:20px;margin:0}
html{scroll-behavior:smooth}
#team,#policies{scroll-margin-top:24px}
.rv .rv-s .rv-teamcard h3{font-size:clamp(22px,2vw,28px)}
.rv .rv-s .rv-teamcard .rv-price{font-size:34px}
/* What to Expect: steps as film frames */
.rv .rv-frames{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.rv .rv-fr{border:1px solid var(--rv-rule-dk);background:#181919;padding:26px 24px 30px;display:flex;flex-direction:column;gap:6px;min-height:220px}
.rv .rv-fr .rv-bnum{font-family:var(--rv-hand);color:var(--rv-red-dk);font-size:64px;line-height:.9;margin-bottom:10px;align-self:flex-start}
.rv .rv-s .rv-fr h3{font-weight:900;font-stretch:75%;font-size:32px;line-height:1;text-transform:uppercase;margin:0 0 .3em;color:var(--rv-light)}
.rv .rv-s .rv-fr p{font-size:16px;line-height:1.5;color:#b9bcb5;margin:0}
@media (max-width:980px){.rv .rv-frames{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.rv .rv-frames{grid-template-columns:minmax(0,1fr)}.rv .rv-fr{min-height:0}}
.mfp-bg,.mfp-bg.mfp-ready,.mfp-gallery.mfp-bg,.et_pb_gallery_lightbox.mfp-bg{background:#121212!important;opacity:.97!important}
/* Work hover: soft white corner marks inset 15px, like the logo; no plus, no red line */
.rv .rv-s .rv-grid .et_pb_gallery_image a::before{content:none!important;display:none!important}
.rv .rv-s .rv-grid .et_pb_gallery_image a::after{top:15px!important;right:15px!important;bottom:15px!important;left:15px!important;width:auto!important;height:auto!important;transform:scale(1.04)!important;opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M2.2 17.5 C 1.9 12, 2 7, 2.4 2.3 C 7 1.9, 12 2.1, 17.6 2.4' fill='none' stroke='%23ffffff' stroke-opacity='0.6' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") left top/20px 20px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M2.4 2.2 C 8 2.4, 13 1.9, 17.7 2.4 C 18.1 7, 17.9 12, 17.6 17.6' fill='none' stroke='%23ffffff' stroke-opacity='0.6' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right top/20px 20px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M17.8 2.4 C 18 8, 17.7 13, 17.5 17.7 C 12 18.1, 7 17.9, 2.3 17.6' fill='none' stroke='%23ffffff' stroke-opacity='0.6' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right bottom/20px 20px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M17.6 17.8 C 12 18, 7 17.6, 2.4 17.5 C 1.9 12, 2.1 7, 2.3 2.4' fill='none' stroke='%23ffffff' stroke-opacity='0.6' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") left bottom/20px 20px no-repeat!important;transition:opacity .25s ease,transform .4s cubic-bezier(.2,.8,.2,1)!important}
.rv .rv-s .rv-grid .et_pb_gallery_image a:hover::after{opacity:1;transform:scale(1)!important}
.rv .rv-s p.rv-lead{font-size:inherit}
/* Headshot Day interest chips */
.rv .rv-chips{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:4px 0 0;min-width:0}
.rv .rv-chips legend{padding:0;margin-bottom:8px;font-size:inherit;font-weight:inherit}
.rv .rv-chip{position:relative;margin:0;cursor:pointer}
.rv .rv-chip input{position:absolute;opacity:0;width:1px;height:1px}
.rv .rv-chip span{display:inline-block;padding:9px 14px;border:1px solid var(--rv-rule);background:#fff;color:var(--rv-ink);font-size:15px;line-height:1.2;transition:background .15s,color .15s,border-color .15s}
.rv .rv-chip:hover span{border-color:var(--rv-ink)}
.rv .rv-chip input:checked+span{background:var(--rv-ink);border-color:var(--rv-ink);color:var(--rv-paper)}
.rv .rv-chip input:focus-visible+span{outline:2px solid var(--rv-red);outline-offset:2px}
.rv #rv-interest form.rv-form{max-width:none}
.rv .rv-s .et_pb_row.rv-tight + .et_pb_row{margin-top:-20px} /* section gap 60 - 20 = 40px */
