/* Reflections In Print - Custom Styles */
/* ====================================== */

:root{
--rip-primary:#66184E;
--rip-secondary:#0C8140;
--rip-soft:#FCEBDF;
--rip-text:#2A2A2A;
--rip-bg:#FFFFFF;
/* type scale */
--rip-h1-size:56px; --rip-h1-lh:62px;
--rip-h2-size:42px; --rip-h2-lh:48px;
--rip-sec-title-size:18px; --rip-sec-title-lh:20px;
--rip-body-size:18px; --rip-body-lh:28px;
--rip-list-size:16px; --rip-list-lh:26px;
--rip-nav-size:14px; --rip-nav-lh:24px;
--rip-btn-size:16px; --rip-btn-lh:24px;
--rip-footer-size:14px; --rip-footer-lh:20px;
}
body{
font-family:"Merriweather", serif;
color:var(--rip-text);
font-size:var(--rip-body-size);
line-height:var(--rip-body-lh);
background:var(--rip-bg);
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
}
h1, .display-1{
font-weight:400;
font-size:var(--rip-h1-size);
line-height:var(--rip-h1-lh);
letter-spacing:0;
margin-bottom:.6rem;
}
h1.emph, .display-1.emph, h1 em, .display-1 em{ 
font-weight:900; 
font-style:italic; 
}
h2, .headline{
font-weight:400;
font-size:var(--rip-h2-size);
line-height:var(--rip-h2-lh);
letter-spacing:0;
margin-bottom:.5rem;
}
h2.emph, .headline.emph{ font-weight:900; font-style:italic; }
.section-title{
font-weight:700;
font-size:var(--rip-sec-title-size);
line-height:var(--rip-sec-title-lh);
text-transform:uppercase;
letter-spacing:0;
margin-bottom:.5rem;
}
p, .rip-body{
font-weight:400;
font-size:var(--rip-body-size);
line-height:var(--rip-body-lh);
}
ul, ol{
font-size:var(--rip-list-size);
line-height:var(--rip-list-lh);
}
.navbar .nav-link{
font-weight:700;
font-size:var(--rip-nav-size);
line-height:var(--rip-nav-lh);
text-transform:uppercase;
color:var(--rip-text);
position:relative;
}
.navbar .nav-link:hover,
.navbar .nav-link:focus{ color:var(--rip-primary); }
.navbar .nav-link.active{ color:var(--rip-primary); }
.navbar .nav-link::after{
content:"";
position:absolute; left:0; right:0; bottom:-6px; height:2px;
background:var(--rip-primary); transform:scaleX(0); transform-origin:left; transition:transform .2s ease;
}
.navbar .nav-link:hover::after{ transform:scaleX(1); }
.btn-primary{ 
background:var(--rip-primary); 
border-color:var(--rip-primary); 
color:#fff;
}
.btn-primary:hover{ 
background:var(--rip-secondary); 
border-color:var(--rip-secondary); 
}
.btn-outline-primary{ 
color:var(--rip-primary); 
border-color:var(--rip-primary); 
}
.btn-outline-primary:hover{ 
background:var(--rip-primary); 
color:#fff; 
}
.btn{ 
font-weight:700; 
font-size:var(--rip-btn-size); 
line-height:var(--rip-btn-lh); 
text-transform:uppercase; 
letter-spacing:.2px; 
padding: .5rem 1.5rem;
}
.footer-text{ 
font-size:var(--rip-footer-size); 
line-height:var(--rip-footer-lh); 
color:#666; 
}

.wrapper {
    padding:0;
}
.rip-hero {
    position: relative;
    overflow: hidden;
    background-color: var(--rip-soft);
    background-image: linear-gradient(283deg, rgba(252, 235, 223, 0) 0%, rgba(252, 235, 223, 1) 100%), url(../img/RIP-Banner.png);
    background-position: left center, right center;
    background-size: 100% 100%, cover;
    background-repeat: no-repeat;
    background-blend-mode: normal;
    padding: 10rem 0;
}
.rip-hero .hero-card{
border-radius:1rem; 
overflow:hidden; 
box-shadow:0 .75rem 2rem rgba(0,0,0,.12);
height: 450px;
background: var(--rip-soft);
display: flex;
align-items: center;
justify-content: center;
}
.rip-hero .hero-card img{
width: 100%;
height: 100%;
object-fit: cover;
}
.rip-thumb{ 
position:relative; 
border-radius:1rem; 
overflow:hidden; 
transition:transform .25s ease, box-shadow .25s ease; 
cursor: pointer;
display: block;
height: 300px;
}
.rip-thumb img{ 
width:100%; 
height:100%; 
object-fit:cover; 
transition:transform .35s ease; 
}
.rip-thumb:hover{ 
transform:translateY(-4px); 
box-shadow:0 .75rem 2rem rgba(0,0,0,.15); 
}
.rip-thumb .overlay{
position:absolute; 
inset:0;
background:linear-gradient(to top, rgba(102,24,78,.55), rgba(102,24,78,0) 60%);
opacity:0; 
transition:opacity .25s ease;
}
.rip-thumb:hover .overlay{ opacity:1; }
.rip-thumb:hover img{ transform:scale(1.05); }
.rip-pill{
position:absolute; 
left:.75rem; 
bottom:.75rem;
background:rgba(12,129,64,.9); 
color:#fff; 
padding:.35rem .6rem;
border-radius:999px; 
font-weight:700; 
font-size:.85rem;
}
.offcanvas .nav-link{ 
padding:.75rem 0; 
border-bottom:1px solid rgba(0,0,0,.06); 
}
.about{
background: var(--rip-soft);

padding:4rem;
}
/* Header and Navigation */
.site-header {
	background: #fff;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	position: sticky;
	top: 0;
	z-index: 1100;
}

.admin-bar .site-header {
	top: 32px;
}
.navbar-brand img {
height: 50px;
width: auto;
}
.navbar-toggler {
border: none;
}
.navbar-toggler:focus {
box-shadow: none;
}
.nav-cta {
margin-left: 1rem;
}

/* Service Grid */
.service-card {
background: #fff;
border-radius: 1rem;
padding: 2rem;
box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.1);
height: 100%;
}
.service-card h3 {
font-weight: 700;
font-size: 20px;
margin-bottom: 1rem;
color: var(--rip-primary);
}
.service-list {
list-style: none;
padding-left: 0;
}
.service-list li {
padding: .5rem 0;
padding-left: 1.5rem;
position: relative;
}
.service-list li::before {
content: "✓";
position: absolute;
left: 0;
color: var(--rip-secondary);
font-weight: 700;
}

/* Section Spacing */
.rip-section {
padding: 5rem 0;
}
.rip-section-soft {
background: var(--rip-soft);
}

/* Portfolio Grid */
.portfolio-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 2rem;
margin-bottom: 3rem;
}

.rip-flipbook-row {
max-width: 1180px;
margin: 0 auto;
}

.flipbook-item {
background: transparent;
padding: 0;
box-shadow: none;
display: flex;
justify-content: center;
}

.flipbook-item img {
width: 325px;
}

.portfolio-filter .btn {
min-width: 160px;
}

.portfolio-filter .btn.active {
background-color: var(--rip-secondary);
border-color: var(--rip-secondary);
color: #fff;
}

.portfolio-filter .btn.active:focus,
.portfolio-filter .btn.active:hover {
background-color: var(--rip-secondary);
border-color: var(--rip-secondary);
color: #fff;
}


.page-header {
	background-color: var(--rip-primary);
	color: #fff;
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	padding: 3rem 0;
	text-align: center;
}

.page-header > * {
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
}



/* Process Timeline */
.process-timeline {
position: relative;
padding: 2rem 0;
}
.process-step {
display: flex;
margin-bottom: 3rem;
position: relative;
}
.process-step:not(:last-child)::after {
content: "";
position: absolute;
left: 25px;
top: 50px;
bottom: -3rem;
width: 2px;
background: var(--rip-soft);
}
.process-icon {
width: 50px;
height: 50px;
border-radius: 50%;
background: var(--rip-primary);
color: #fff;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
margin-right: 2rem;
font-weight: 700;
}
.process-content h3 {
font-weight: 700;
font-size: 20px;
margin-bottom: .5rem;
}

/* Contact Form */
.contact-form {
background: #fff;
border-radius: 1rem;
padding: 2rem;
box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.1);
}
.contact-form label {
font-weight: 700;
margin-bottom: .5rem;
}
.contact-form input,
.contact-form textarea {
width: 100%;
padding: .75rem;
border: 1px solid #e0e0e0;
}

.contact-form input:focus,
.contact-form textarea:focus {
outline: none;
border-color: var(--rip-primary);
}
/* Footer */
.site-footer {
background: var(--rip-text);
color: #fff;
padding: 3rem 0 2rem;
margin-top: 4rem;
}
.site-footer a {
color: #fff;
text-decoration: none;
}
.site-footer a:hover {
color: var(--rip-soft);
}
.footer-social {
display: flex;
gap: 1rem;
margin-top: 1rem;
}
.footer-social a {
display: flex;
width: 35px;
height: 35px;
border-radius: 50%;
background: rgba(255,255,255,.1);
align-items: center;
justify-content: center;
transition: background .2s ease;
}
.footer-social a:hover {
background: var(--rip-primary);
}

/* Testimonial */
.testimonial-block {
background: var(--rip-soft);
border-radius: 1rem;
padding: 2rem;
font-style: italic;
position: relative;
}
.testimonial-block::before {
content: "“";
font-size: 60px;
color: var(--rip-primary);
position: absolute;
top: -10px;
left: 20px;
opacity: .3;
}

/* Responsive */
@media (max-width: 991.98px){
h1, .display-1{ font-size:44px; line-height:50px; }
h2, .headline{ font-size:32px; line-height:38px; }
.navbar-nav { margin-top: 1rem; }
.nav-cta { margin-left: 0; margin-top: 1rem; }
.portfolio-grid {
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}
}
@media (max-width: 767.98px){
h1, .display-1{ font-size:36px; line-height:42px; }
h2, .headline{ font-size:28px; line-height:34px; }
.rip-section { padding: 3rem 0; }
.portfolio-grid {
grid-template-columns: 1fr;
}
.process-step {
flex-direction: column;
}
.process-icon {
margin-bottom: 1rem;
}
.process-step:not(:last-child)::after {
display: none;
}
}

/* Utility Classes */
.text-primary { color: var(--rip-primary) !important; }
.text-secondary { color: var(--rip-secondary) !important; }
.bg-soft { background: var(--rip-soft) !important; }
.mb-4 { margin-bottom: 2rem !important; }
.mt-4 { margin-top: 2rem !important; }
.py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; }
