/* ============================================
   JF COMMUNICATIONS — REDESIGN SYSTEM
   Shared across all pages. Load this only —
   do not use styles.css or cinematic-theme.css
   alongside it.
   ============================================ */

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Raleway',sans-serif;font-weight:300;color:#22201c;background:#faf8f4;}
a{color:inherit;}
img{max-width:100%;display:block;}

/* ===== NAV ===== */
.nav{position:fixed;top:0;left:0;right:0;z-index:59;display:flex;justify-content:space-between;
  align-items:center;padding:1.5rem 3rem;color:#f2ede4;
  background:#000;
  border-bottom:1px solid rgba(201,168,106,.16);}
.dish-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;gap:.2rem;}
.dish-badge img{height:38px;width:auto;display:block;}
.dish-badge span{font-family:'Raleway',sans-serif;font-weight:600;font-size:.68rem;
  letter-spacing:.02em;color:#e9e9e9;}
.nav:not(.nav-compact) .hamburger-btn{display:none;}
.nav.nav-compact .dish-badge{display:none;}
.nav-mark{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;text-decoration:none;
  display:flex;align-items:center;gap:.6rem;}
.nav-mark img{height:72px;width:auto;display:block;}
.nav-links{display:flex;gap:2.5rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;list-style:none;}
.nav-links a{text-decoration:none;opacity:.75;transition:opacity .3s;}
.nav-links a:hover,.nav-links a.active{opacity:1;}
.nav-phone{font-size:.72rem;letter-spacing:.1em;text-decoration:none;opacity:.85;}
.nav.nav-compact .nav-links{display:none;}

.hamburger-btn{display:none;flex-direction:column;justify-content:center;gap:6px;
  width:34px;height:34px;background:none;border:none;cursor:pointer;padding:0;
  position:relative;z-index:60;}
.nav-links .dish-badge-mobile{display:none;}
.hamburger-btn span{display:block;width:100%;height:2px;background:#e9dfc9;
  transition:transform .3s ease, opacity .3s ease;}
.hamburger-btn.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.hamburger-btn.is-open span:nth-child(2){opacity:0;}
.hamburger-btn.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

.nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:55;
  opacity:0;pointer-events:none;transition:opacity .3s ease;}
.nav-backdrop.is-open{opacity:1;pointer-events:auto;}

.nav.nav-compact .hamburger-btn{display:flex;}
.nav.nav-compact .nav-links{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  gap:2.25rem;position:fixed;top:0;right:0;height:100vh;width:min(78vw,340px);
  background:#000;border-left:1px solid rgba(201,168,106,.18);
  padding:2rem 2.75rem;margin:0;z-index:58;
  transform:translateX(100%);transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.nav.nav-compact .nav-links.is-open{transform:translateX(0);}
.nav.nav-compact .nav-links li{list-style:none;}
.nav.nav-compact .nav-links a{font-size:1.15rem;}
.nav.nav-compact .nav-links .dish-badge-mobile{
  display:flex;flex-direction:column;align-items:center;gap:.3rem;
  padding-bottom:1.75rem;margin-bottom:.5rem;border-bottom:1px solid rgba(201,168,106,.18);
  width:100%;
}
.nav.nav-compact .nav-links .dish-badge-mobile img{width:140px;height:auto;display:block;}
.nav.nav-compact .nav-links .dish-badge-mobile span{font-family:'Raleway',sans-serif;font-weight:600;
  font-size:.68rem;color:#e9e9e9;text-transform:none;display:block;width:140px;text-align:center;}

/* ===== HOMEPAGE HERO (full height) ===== */
.hero{position:relative;min-height:max(620px,68vh);display:flex;align-items:flex-end;overflow:hidden;background:#000;color:#f2ede4;}
.hero.has-photo{background-size:115% auto;background-position:center 49%;background-repeat:no-repeat;}
@media(max-width:900px){
  .hero.has-photo{background-size:cover;background-position:center 30%;}
}
.hero.has-photo .hero-glow{
  background:
    radial-gradient(ellipse 900px 550px at 15% 85%, rgba(0,0,0,.9) 0%, rgba(0,0,0,.55) 40%, transparent 75%),
    radial-gradient(ellipse 950px 750px at 80% 78%, rgba(0,0,0,.82) 0%, rgba(0,0,0,.55) 45%, transparent 78%),
    linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 20%, transparent 60%, rgba(0,0,0,.25) 100%);
}
.hero.has-photo .hero-side .go{text-shadow:0 1px 8px rgba(0,0,0,.8);}
.hero.has-photo .hero-title{text-shadow:0 2px 24px rgba(0,0,0,.75), 0 1px 4px rgba(0,0,0,.9);}
.hero.has-photo .hero-index,.hero.has-photo .hero-side p{color:#f2ede4;text-shadow:0 1px 12px rgba(0,0,0,.85), 0 1px 3px rgba(0,0,0,1);}

/* ===== PAGE HERO (interior pages, shorter) ===== */
.page-hero{position:relative;min-height:max(560px,58vh);display:flex;align-items:flex-start;overflow:hidden;background:#000;color:#f2ede4;}

.hero-glow{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 50% 40% at 70% 20%, rgba(201,168,106,.14), transparent 60%);}
.light-orb{position:absolute;width:480px;height:480px;border-radius:50%;z-index:0;pointer-events:none;
  background:radial-gradient(circle, rgba(201,168,106,.16), transparent 68%);
  will-change:transform;top:0;left:0;transform:translate3d(-9999px,-9999px,0);opacity:0;transition:opacity .4s ease;}
@media(hover:none){.light-orb{display:none;}}
.grain{position:absolute;inset:0;opacity:.04;z-index:1;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.hero::after,.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;z-index:1;
  background:linear-gradient(180deg,transparent,#faf8f4);}

.hero-inner{position:relative;z-index:2;width:100%;padding:0 3rem 9rem;
  display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:end;}
.hero-index{font-size:.7rem;letter-spacing:.3em;color:#c4bcae;text-transform:uppercase;margin-bottom:2rem;
  opacity:0;animation:up .8s ease .3s forwards;}
.hero-index span{color:#c9a86a;}
.hero-title{font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(2.8rem,7vw,6.4rem);line-height:.98;letter-spacing:-.02em;
  opacity:0;animation:up 1.2s cubic-bezier(.16,1,.3,1) .5s forwards;transform:translateY(30px);}
.hero-title .line2{display:block;margin-left:8%;color:#b5ab98;font-style:italic;}
@keyframes up{to{opacity:1;transform:translateY(0);}}
.hero-side{opacity:0;transform:translateY(20px);animation:up 1s ease 1s forwards;
  border-left:1px solid rgba(201,168,106,.3);padding-left:2.5rem;}
.hero-side p{font-weight:300;font-size:1.2rem;line-height:1.9;color:#d9d2c4;max-width:38ch;}
.hero-side .go{display:inline-flex;align-items:center;gap:.8rem;margin-top:2rem;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;color:#c9a86a;
  padding-bottom:.4rem;border-bottom:1px solid rgba(201,168,106,.4);transition:border-color .4s ease,letter-spacing .4s ease;}
.hero-side .go:hover{border-color:#c9a86a;letter-spacing:.28em;}
@media(max-width:900px){
  .hero{align-items:flex-start;}
  .hero-inner{grid-template-columns:1fr;padding-top:8rem;padding-bottom:4rem;}
  .page-hero-inner{padding-top:7rem;padding-bottom:5rem;}
  .hero-side{border-left:none;border-top:1px solid rgba(201,168,106,.3);padding-left:0;padding-top:2rem;margin-top:2rem;}
}

/* Page hero: simpler single-column title + one-line description */
.page-hero-inner{position:relative;z-index:2;width:100%;padding:9rem 3rem 6.5rem;max-width:900px;}

/* Page hero with a full-bleed background photo (Solutions, Rate Cards) */
.page-hero.has-photo{background-size:cover;background-position:center top;}
.page-hero.has-photo.is-product-bg{background-size:contain;background-repeat:no-repeat;background-position:right center;}
.page-hero.has-photo .hero-glow{
  background:linear-gradient(100deg, rgba(0,0,0,.95) 0%, rgba(0,0,0,.86) 38%, rgba(0,0,0,.62) 58%, rgba(0,0,0,.3) 78%, transparent 96%);
}
.page-hero.has-photo .page-hero-inner .hero-index,
.page-hero.has-photo .page-hero-inner p{color:#f2ede4;text-shadow:0 1px 12px rgba(0,0,0,.85), 0 1px 3px rgba(0,0,0,1);}
.page-hero.has-photo .page-hero-inner h1{color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.7), 0 1px 4px rgba(0,0,0,.9);}
.page-hero-inner .hero-index{margin-bottom:1.5rem;}
.page-hero-inner h1{font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(2.4rem,5.5vw,4.2rem);line-height:1.08;letter-spacing:-.01em;margin-bottom:1.25rem;
  opacity:0;animation:up 1.1s cubic-bezier(.16,1,.3,1) .5s forwards;transform:translateY(26px);}
.page-hero-inner p{font-weight:300;font-size:1.1rem;line-height:1.8;color:#d9d2c4;max-width:52ch;
  opacity:0;animation:up 1s ease .85s forwards;transform:translateY(18px);}

/* ===== LIGHT CONTENT ZONE ===== */
.light-zone{background:#faf8f4;color:#22201c;}
.section-pad{padding:6rem 3rem;max-width:1200px;margin:0 auto;}
.section-pad.tight{padding-top:2rem;}

/* ===== TICKER ===== */
.ticker-strip{border-bottom:1px solid #e7e2d8;padding:1.3rem 0;overflow:hidden;position:relative;background:#faf8f4;}
.ticker-label{text-align:center;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:#3d3830;font-weight:600;margin-bottom:2.75rem;}
.ticker-strip::before,.ticker-strip::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;}
.ticker-strip::before{left:0;background:linear-gradient(90deg,#faf8f4,transparent);}
.ticker-strip::after{right:0;background:linear-gradient(270deg,#faf8f4,transparent);}
.ticker-row{display:flex;gap:4rem;white-space:nowrap;animation:scroll 34s linear infinite;width:max-content;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.ticker-row span{font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:#57514a;font-style:italic;}

/* ===== MANIFESTO (thin-type signature moment) ===== */
.section-pad.manifesto{padding-top:3.5rem;padding-bottom:3.5rem;}
.manifesto-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:4rem;align-items:center;}
.manifesto p{font-weight:200;font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.5;color:#3a362f;max-width:20ch;}
.manifesto p em{font-style:normal;color:#a5772e;font-weight:400;}
.manifesto-meta{margin-top:0;display:flex;flex-direction:column;gap:1.75rem;
  border-left:1px solid #e7e2d8;padding-left:2.5rem;}
.manifesto-meta div{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#3d3830;font-weight:600;}
.manifesto-meta strong{color:#a5772e;font-weight:400;display:block;font-size:1.6rem;
  font-family:'Cormorant Garamond',serif;letter-spacing:0;text-transform:none;margin-bottom:.35rem;}
@media(max-width:800px){
  .manifesto-grid{grid-template-columns:1fr;gap:2.5rem;}
  .manifesto-meta{flex-direction:row;flex-wrap:wrap;border-left:none;border-top:1px solid #e7e2d8;
    padding-left:0;padding-top:2rem;gap:2rem;}
}

/* ===== SECTION HEAD ===== */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;
  border-bottom:1px solid #e7e2d8;padding-bottom:2rem;margin-bottom:.5rem;flex-wrap:wrap;gap:1rem;}
.sec-head h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(1.8rem,3vw,2.6rem);color:#22201c;}
.sec-head span{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:#3d3830;font-weight:600;}
.sec-lead{font-weight:400;font-size:1.05rem;line-height:1.8;color:#57514a;max-width:64ch;margin:1.5rem 0 2.5rem;}

/* ===== EDITORIAL INDEX ROWS (replaces card grids) ===== */
.index-row{display:grid;grid-template-columns:80px 1fr 1.2fr 40px;gap:2rem;align-items:center;
  padding:2rem 0;border-bottom:1px solid #e7e2d8;transition:padding-left .4s ease,background .4s ease;}
.index-row:hover{padding-left:1rem;background:#f2ede2;}
.index-num{font-family:'Cormorant Garamond',serif;font-size:1.2rem;color:#3d3830;font-weight:700;}
.index-name{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.5rem;color:#22201c;}
.index-desc{font-weight:400;font-size:.98rem;line-height:1.7;color:#57514a;}
.index-arrow{font-size:1.2rem;color:#a5772e;opacity:0;transition:opacity .4s ease,transform .4s ease;transform:translateX(-8px);text-decoration:none;}
.index-row:hover .index-arrow{opacity:1;transform:translateX(0);}
@media(max-width:760px){
  .index-row{grid-template-columns:40px 1fr;}
  .index-desc,.index-arrow{grid-column:2;}
}

/* ===== QUOTE ===== */
.quote-section{padding:7rem 3rem;background:#faf8f4;border-top:1px solid #e7e2d8;border-bottom:1px solid #e7e2d8;text-align:center;}
.quote-mark{font-family:'Cormorant Garamond',serif;font-size:4rem;color:#c9b98f;line-height:1;}
.quote-mark-close{font-family:'Cormorant Garamond',serif;font-size:4rem;color:#c9b98f;line-height:1;margin:.5rem 0;}
.quote-text{font-family:'Cormorant Garamond',serif;font-weight:500;font-style:italic;
  font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.6;max-width:26ch;margin:0 auto;color:#3a362f;}
.quote-cite{margin-top:2rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#3d3830;font-weight:600;}
.quote-slider{position:relative;min-height:12.5rem;}
.quote-slide{position:absolute;top:0;left:0;right:0;opacity:0;pointer-events:none;
  transition:opacity 2.5s ease;}
.quote-slide.is-active{opacity:1;pointer-events:auto;position:relative;}
.quote-dots{display:flex;gap:.7rem;justify-content:center;margin-top:2.5rem;}
.quote-dot{width:8px;height:8px;border-radius:50%;background:#d6d0c2;border:none;padding:0;cursor:pointer;
  transition:background .3s ease,transform .3s ease;}
.quote-dot.is-active{background:#a5772e;transform:scale(1.35);}
.quote-dot:hover{background:#b5ab98;}

/* ===== TWO-COLUMN LIGHT LAYOUT (about/property-type style content) ===== */
.split{display:grid;grid-template-columns:1fr 1fr;gap:4rem;}
.split h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.5rem;margin-bottom:1rem;color:#22201c;}
.split p{font-weight:400;font-size:.98rem;line-height:1.8;color:#57514a;margin-bottom:1rem;}
@media(max-width:800px){.split{grid-template-columns:1fr;gap:2.5rem;}}

/* ===== SIMPLE LIGHT CARD (used sparingly — property types, credentials) ===== */
.tile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#e7e2d8;margin-top:1rem;}
.tile{background:#faf8f4;padding:2.4rem 1.8rem;}
.tile h4{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.2rem;margin-bottom:.6rem;color:#22201c;}
.tile p{font-size:.9rem;color:#57514a;line-height:1.7;font-weight:400;}
@media(max-width:760px){.tile-grid{grid-template-columns:1fr;}}

/* ===== FORM (contact page) ===== */
.form-wrap{max-width:640px;}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem;}
.f-group label{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#3d3830;font-weight:600;margin-bottom:.6rem;}
.f-group input,.f-group select,.f-group textarea{
  width:100%;background:transparent;border:none;border-bottom:1px solid #b5ab98;
  padding:.7rem 0;font-family:'Raleway',sans-serif;font-weight:400;font-size:1rem;color:#22201c;
  transition:border-color .3s ease;}
.f-group input::placeholder,.f-group textarea::placeholder{color:#8a8175;font-style:normal;opacity:1;}
.f-group input:focus,.f-group select:focus,.f-group textarea:focus{outline:none;border-color:#a5772e;}
.f-group textarea{resize:vertical;min-height:110px;}
.f-submit{margin-top:1rem;background:#22201c;color:#faf8f4;border:none;padding:1rem 2.6rem;
  font-family:'Raleway',sans-serif;font-weight:600;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  cursor:pointer;transition:background .3s ease;}
.f-submit:hover{background:#a5772e;}
@media(max-width:600px){.f-row{grid-template-columns:1fr;}}

/* ===== FAQ ACCORDION ===== */
.faq-item{border-bottom:1px solid #e7e2d8;padding:1.6rem 0;}
.faq-item summary{cursor:pointer;list-style:none;font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:1.2rem;color:#22201c;display:flex;justify-content:space-between;align-items:center;gap:1rem;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-family:'Raleway',sans-serif;font-weight:700;font-size:1.6rem;color:#8a5f1f;flex-shrink:0;}
.faq-item[open] summary::after{content:"–";}
.faq-item p{margin-top:1rem;font-weight:400;font-size:.98rem;line-height:1.75;color:#57514a;max-width:70ch;}

/* ===== PDF VIEWER (rates page) ===== */
.pdf-wrap{margin-top:2rem;}
.pdf-viewer{width:100%;height:640px;border:1px solid #e7e2d8;background:#fff;}
.pdf-actions{display:flex;gap:1.5rem;margin-top:1.5rem;flex-wrap:wrap;}
.text-link{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:#8a5f1f;font-weight:600;
  padding-bottom:.4rem;border-bottom:1px solid rgba(165,119,46,.4);}
.text-link:hover{border-color:#a5772e;}

/* ===== CLOSING CTA (dark bookend) ===== */
.closing{padding:8rem 3rem;text-align:center;background:#000;color:#f2ede4;}
.closing-eyebrow{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:#c9a86a;margin-bottom:2rem;}
.closing h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.15;margin-bottom:3rem;}
.closing-links{display:flex;gap:2.5rem;justify-content:center;flex-wrap:wrap;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;}
.closing-links a{text-decoration:none;padding-bottom:.5rem;border-bottom:1px solid rgba(201,168,106,.4);transition:border-color .4s;}
.closing-links a.primary{color:#c9a86a;border-color:#c9a86a;}
.closing-links a:hover{border-color:#c9a86a;}

/* ===== FOOTER ===== */
footer{padding:2.5rem 3rem;background:#000;color:#a89f92;border-top:1px solid rgba(201,168,106,.12);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.75rem;}
footer a{text-decoration:none;color:#c9a86a;}
footer a:hover{color:#c9a86a;}

/* ===== MOBILE CALL BAR ===== */
.mobile-call-bar{display:none;}
@media(max-width:760px){
  footer{padding-bottom:6.5rem;}
  .mobile-call-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;
    background:rgba(0,0,0,.95);backdrop-filter:blur(10px);border-top:1px solid rgba(201,168,106,.2);
    padding:.85rem 1.2rem;gap:1rem;}
  .mobile-call-bar a{flex:1;text-align:center;padding:.8rem 1rem;font-family:'Raleway',sans-serif;
    font-weight:600;font-size:.85rem;letter-spacing:.04em;text-decoration:none;border-radius:2px;}
  .mobile-call-bar .call-btn{background:#c9a86a;color:#1a1408;}
  .mobile-call-bar .email-btn{border:1px solid rgba(201,168,106,.5);color:#e9dfc9;}
}

@media(prefers-reduced-motion: reduce){
  .hero-title,.hero-side,.hero-index,.page-hero-inner h1,.page-hero-inner p{
    opacity:1!important;transform:none!important;animation:none!important;}
  .ticker-row{animation:none!important;}
  .ticker-strip{overflow-x:auto!important;-webkit-overflow-scrolling:touch;}
  .light-orb{display:none!important;}
}
