/*
Theme Name: RobinsonBaez
Theme URI: https://robinsonbaez.studio
Author: RobinsonBaez Studio
Author URI: https://robinsonbaez.studio
Description: Tema premium de una página para estudios de tatuaje. Vinotinto y oro, tipografía editorial, medallón animado y formulario de reserva conectado a correo. Banner, contacto, horario y dirección editables desde el Personalizador.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: robinsonbaez
*/

:root{
  --wine-deep:#170608;
  --wine:#330f18;
  --wine-mid:#4a1620;
  --wine-line: rgba(201,162,77,0.22);
  --gold:#c9a24d;
  --gold-bright:#eecf87;
  --gold-dim:#8a6f34;
  --ivory:#efe4d0;
  --ivory-dim:#c9bca4;
  --ink:#0b0304;
  --shadow: 0 20px 60px rgba(0,0,0,0.45);
  --ease: cubic-bezier(.16,.84,.44,1);
  --bar-h: 130px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--wine-deep);
  color:var(--ivory);
  font-family:'Cormorant Garamond', serif;
  font-size:19px;
  line-height:1.6;
  overflow-x:hidden;
  position:relative;
}

body::before{
  content:"";
  position:fixed; inset:0; z-index:2000; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  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");
}
body::after{
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none;
  background: radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.55) 100%);
}

a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
section{position:relative; z-index:2;}
ul{list-style:none;}

.eyebrow{
  font-family:'Jost', sans-serif; font-weight:400; font-size:12.5px;
  letter-spacing:.32em; text-transform:uppercase; color:var(--gold);
}
h1,h2,h3{ font-family:'Cinzel', serif; font-weight:600; letter-spacing:.03em; color:var(--ivory); }
.container{ max-width:1180px; margin:0 auto; padding:0 6vw; }

/* ---------------- TOP BAR (banner + header) ---------------- */
.top-bar{ position:fixed; top:0; left:0; right:0; z-index:900; display:flex; flex-direction:column; }

.announce-banner{
  display:flex; align-items:center; justify-content:center; gap:18px;
  padding:10px 6vw; background:linear-gradient(90deg, var(--gold-dim), var(--gold) 50%, var(--gold-dim));
  color:var(--ink); text-align:center;
  font-family:'Jost', sans-serif; font-size:12.5px; letter-spacing:.06em;
  max-height:60px; opacity:1; overflow:hidden;
  transition: max-height .5s var(--ease), opacity .4s var(--ease), padding .4s var(--ease);
}
.announce-banner.hidden{ max-height:0; opacity:0; padding-top:0; padding-bottom:0; }
.announce-banner strong{ font-weight:600; }
.announce-close{
  background:none; border:none; color:var(--ink); font-size:16px; cursor:pointer; line-height:1;
  opacity:.7; transition:opacity .2s ease; flex-shrink:0;
}
.announce-close:hover{ opacity:1; }

header{
  padding:26px 6vw; display:flex; align-items:center; justify-content:space-between;
  transition: background .5s var(--ease), padding .4s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.top-bar.scrolled header{
  background:rgba(23,6,8,0.86); backdrop-filter: blur(10px); padding:16px 6vw; border-bottom:1px solid var(--wine-line);
}
.logo{
  font-family:'Cinzel', serif; font-size:19px; letter-spacing:.14em; color:var(--gold-bright);
  display:flex; align-items:center; gap:10px;
}
.logo .mark{ width:22px; height:22px; }
.logo .mark path, .logo .mark circle{ stroke:var(--gold-bright); fill:none; }

nav.desktop-nav ul{ display:flex; gap:38px; }
nav.desktop-nav a{
  font-family:'Jost', sans-serif; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ivory-dim); position:relative; padding-bottom:4px; transition:color .3s ease;
}
nav.desktop-nav a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold); transition:width .35s var(--ease);
}
nav.desktop-nav a:hover{ color:var(--gold-bright); }
nav.desktop-nav a:hover::after{ width:100%; }

.header-actions{ display:flex; align-items:center; gap:18px; }

.nav-cta{
  font-family:'Jost', sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  border:1px solid var(--gold-dim); padding:10px 20px; color:var(--gold-bright);
  transition: all .35s var(--ease); white-space:nowrap;
}
.nav-cta:hover{ background:var(--gold); color:var(--ink); border-color:var(--gold); }

.burger{ display:none; flex-direction:column; gap:5px; cursor:pointer; z-index:950; background:none; border:none; }
.burger span{ width:24px; height:1px; background:var(--gold-bright); display:block; transition:.3s; }

.mobile-nav{
  position:fixed; inset:0; background:var(--wine-deep); z-index:800;
  display:flex; align-items:center; justify-content:center;
  transform:translateY(-100%); transition:transform .5s var(--ease);
}
.mobile-nav.open{ transform:translateY(0); }
.mobile-nav ul{ display:flex; flex-direction:column; align-items:center; gap:28px; }
.mobile-nav a{ font-family:'Cinzel',serif; font-size:22px; letter-spacing:.08em; color:var(--ivory); }

/* ---------------- HERO ---------------- */
.hero{
  min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:calc(var(--bar-h) + 60px) 6vw 100px; position:relative;
}
.hero-frame{ position:absolute; inset:22px; border:1px solid var(--wine-line); pointer-events:none; }
.medallion{ width:min(46vw, 300px); height:auto; margin-bottom:8px; }
.medallion path, .medallion circle{
  fill:none; stroke:var(--gold); stroke-width:1.1; stroke-linecap:round;
  stroke-dasharray:1; stroke-dashoffset:1; animation: draw 1.6s var(--ease) forwards;
}
.medallion .ring{ animation-delay:0s; }
.medallion .use-motif{ animation-delay: var(--d, 0s); }
.medallion .center-dot{
  fill:var(--gold-bright); stroke:none; opacity:0; transform-origin:200px 200px;
  animation: pop .5s var(--ease) forwards; animation-delay:2.5s;
}
@keyframes draw{ to{ stroke-dashoffset:0; } }
@keyframes pop{ 0%{ opacity:0; transform:scale(0); } 70%{ opacity:1; transform:scale(1.4); } 100%{ opacity:1; transform:scale(1); } }

.hero-image{
  width:min(46vw, 320px); aspect-ratio:1/1; object-fit:cover; margin-bottom:8px;
  border:1px solid var(--wine-line); border-radius:50%; box-shadow:var(--shadow);
}

.hero h1{
  font-size:clamp(38px, 8vw, 82px); letter-spacing:.05em;
  background:linear-gradient(180deg, var(--gold-bright), var(--gold) 60%, var(--gold-dim));
  -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom:6px;
}
.hero .tagline{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:clamp(18px,2.4vw,24px); color:var(--ivory-dim); margin-bottom:26px; }
.hero p.desc{ max-width:520px; color:var(--ivory-dim); font-size:18px; margin-bottom:38px; }
.cta-row{ display:flex; gap:20px; flex-wrap:wrap; justify-content:center; }
.btn{
  font-family:'Jost', sans-serif; font-size:12.5px; letter-spacing:.2em; text-transform:uppercase;
  padding:16px 34px; transition: all .4s var(--ease); display:inline-block; border:none; cursor:pointer;
}
.btn-solid{ background:var(--gold); color:var(--ink); }
.btn-solid:hover{ background:var(--gold-bright); border-color:var(--gold-bright); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn-ghost{ color:var(--gold-bright); background:transparent; }
.btn-ghost:hover{ background:var(--wine-line); transform:translateY(-2px); }

.scroll-cue{
  position:absolute; bottom:38px; left:50%; transform:translateX(-50%);
  font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-dim);
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-cue .line{ width:1px; height:36px; background:linear-gradient(var(--gold-dim), transparent); animation:pulse 2.4s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:.3; } 50%{ opacity:1; } }

.reveal{ opacity:0; transform:translateY(34px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in-view{ opacity:1; transform:none; }

.sec-head{ margin-bottom:56px; max-width:640px; }
.sec-head .eyebrow{ display:block; margin-bottom:14px; }
.sec-head h2{ font-size:clamp(30px,4vw,46px); }
section[id]{ scroll-margin-top: var(--bar-h); }
section.pad{ padding:130px 0; }

.philosophy{ display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:center; }
.philosophy blockquote{ font-family:'Cinzel', serif; font-size:clamp(26px,3.2vw,38px); line-height:1.5; color:var(--gold-bright); font-weight:500; }
.philosophy .body-text p{ color:var(--ivory-dim); margin-bottom:18px; font-size:18px; }
.philosophy .body-text p:last-child{ margin-bottom:0; }

.styles-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--wine-line); border:1px solid var(--wine-line); }
.style-card{ background:var(--wine-deep); padding:44px 30px; transition: background .4s var(--ease); }
.style-card:hover{ background:var(--wine); }
.style-icon{ width:46px; height:46px; margin-bottom:26px; }
.style-icon path{ fill:none; stroke:var(--gold); stroke-width:1.2; }
.style-card-image{ width:100%; aspect-ratio:1/1; object-fit:cover; margin-bottom:26px; border:1px solid var(--wine-line); }
.style-card h3{ font-size:19px; letter-spacing:.05em; margin-bottom:12px; }
.style-card p{ color:var(--ivory-dim); font-size:16.5px; }

.artists-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:2px; background:var(--wine-line); }
.artist-card{ background:var(--wine-deep); padding:50px 34px; text-align:center; }
.artist-monogram{
  width:88px; height:88px; margin:0 auto 26px; border:1px solid var(--gold-dim); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-family:'Cinzel',serif; font-size:26px; color:var(--gold-bright);
  position:relative; transition: border-color .4s ease;
}
.artist-card:hover .artist-monogram{ border-color:var(--gold-bright); }
.artist-monogram::before{ content:""; position:absolute; inset:-8px; border:1px solid var(--wine-line); border-radius:50%; }
.artist-photo{ width:88px; height:88px; margin:0 auto 26px; border-radius:50%; overflow:hidden; border:1px solid var(--gold-dim); }
.artist-photo img{ width:100%; height:100%; object-fit:cover; }
.artist-card h3{ font-size:20px; margin-bottom:6px; }
.artist-role{ font-family:'Jost',sans-serif; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; display:block; }
.artist-card p.quote{ font-style:italic; color:var(--ivory-dim); font-size:17.5px; }

.artist-mini-gallery{
  display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:1fr; gap:3px;
  margin-top:24px; min-width:0;
}
.artist-mini-gallery-item{ aspect-ratio:1/1; overflow:hidden; min-width:0; min-height:0; background:var(--wine); border-radius:5px; }
.artist-mini-gallery-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.artist-mini-gallery-item:hover img{ transform:scale(1.08); }

/* Featured single-artist layout (shown when only one artist is active) */
.artist-featured{ max-width:880px; margin:0 auto; text-align:center; }
.artist-featured-intro{ margin-bottom:20px; }
.artist-photo-large{ width:140px; height:140px; margin:0 auto 24px; border-radius:50%; overflow:hidden; border:1px solid var(--gold-dim); }
.artist-photo-large img{ width:100%; height:100%; object-fit:cover; }
.artist-monogram-large{
  width:140px; height:140px; margin:0 auto 24px; border:1px solid var(--gold-dim); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-family:'Cinzel',serif; font-size:42px; color:var(--gold-bright);
}
.artist-featured h3{ font-size:26px; margin-bottom:8px; }
.artist-featured .artist-role{ margin-bottom:18px; }
.artist-featured .quote{ font-size:19px; max-width:520px; margin:0 auto; }
.artist-mini-gallery-featured{ max-width:640px; margin:36px auto 0; gap:6px; }
.artist-mini-gallery-featured .artist-mini-gallery-item{ aspect-ratio:1/1; }

.process{ display:grid; grid-template-columns:repeat(4,1fr); gap:44px; }
.process-step{ position:relative; padding-top:36px; }
.process-step .num{ font-family:'Cinzel',serif; font-size:15px; color:var(--gold-dim); letter-spacing:.1em; margin-bottom:16px; display:block; }
.process-step h3{ font-size:19px; margin-bottom:10px; }
.process-step p{ color:var(--ivory-dim); font-size:16.5px; }
.process-step::before{ content:""; position:absolute; top:0; left:0; width:30px; height:1px; background:var(--gold); }

.studio-section{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.studio-visual{
  width:70%; margin:0 auto; aspect-ratio:4/5; border:1px solid var(--wine-line); position:relative; border-radius:5px; overflow:hidden;
  background: linear-gradient(160deg, var(--wine) 0%, var(--wine-deep) 100%);
  display:flex; align-items:center; justify-content:center;
}
.studio-visual svg{ width:70%; opacity:.85; }
.studio-visual svg path, .studio-visual svg circle{ fill:none; stroke:var(--gold-dim); stroke-width:1; }
.studio-visual img{ width:100%; height:100%; object-fit:cover; border-radius:5px; }
.studio-details dl{ display:grid; grid-template-columns:auto 1fr; gap:14px 26px; margin-top:26px; }
.studio-details dt{ font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.studio-details dd{ color:var(--ivory-dim); }
.studio-details p.lead{ font-size:19px; color:var(--ivory-dim); margin-bottom:8px; }

.booking{ display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; }
.booking-info p{ color:var(--ivory-dim); margin-bottom:26px; }
.booking-info .contact-line{ display:flex; align-items:center; gap:12px; margin-bottom:16px; font-family:'Jost',sans-serif; font-size:15px; }
.booking-info .contact-line svg{ width:18px; height:18px; }
.booking-info .contact-line svg path{ fill:none; stroke:var(--gold); stroke-width:1.4; }

form{ display:flex; flex-direction:column; gap:22px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field{ position:relative; }
.field label{ display:block; font-family:'Jost',sans-serif; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-dim); margin-bottom:8px; }
.field input, .field select, .field textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--wine-line);
  color:var(--ivory); font-family:'Cormorant Garamond',serif; font-size:18px; padding:10px 2px; transition:border-color .3s ease;
}
.field select{ appearance:none; cursor:pointer; }
.field select option{ background:var(--wine-deep); color:var(--ivory); }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:110px; }
.field input[type=file]{
  border:1px dashed var(--wine-line); background:transparent; color:var(--ivory-dim);
  font-family:'Jost',sans-serif; font-size:13.5px; padding:16px; cursor:pointer;
}
.field input[type=file]::file-selector-button{
  font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  background:var(--gold); color:var(--ink); border:none; padding:8px 16px; margin-right:14px; cursor:pointer;
}
.hp-field{ position:absolute !important; left:-9999px !important; top:-9999px !important; }
.submit-row{ display:flex; align-items:center; gap:22px; margin-top:6px; flex-wrap:wrap; }
.form-note{ font-family:'Jost',sans-serif; font-size:13px; color:var(--ivory-dim); }
.confirm-msg{ display:none; border:1px solid var(--gold-dim); padding:22px 26px; margin-top:6px; font-style:italic; color:var(--gold-bright); }
.confirm-msg.error{ border-color:#a8443f; color:#e2a29d; }
.confirm-msg.show{ display:block; }

footer{ border-top:1px solid var(--wine-line); padding:60px 0 34px; }
.footer-top{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:40px; margin-bottom:50px; }
.footer-logo{ font-family:'Cinzel',serif; font-size:22px; letter-spacing:.14em; color:var(--gold-bright); margin-bottom:12px; }
.footer-tag{ color:var(--ivory-dim); font-style:italic; max-width:280px; }
.footer-links{ display:flex; gap:60px; flex-wrap:wrap; }
.footer-col h4{ font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.footer-col ul{ display:flex; flex-direction:column; }
.footer-col a{ display:block; color:var(--ivory-dim); font-family:'Jost',sans-serif; font-size:14.5px; margin-bottom:10px; transition:color .3s ease; }
.footer-col a:hover{ color:var(--gold-bright); }
.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-family:'Jost',sans-serif; font-size:12.5px; color:var(--gold-dim);
  padding-top:24px; border-top:1px solid var(--wine-line);
}

/* generic page/post content (page.php, single.php, index.php) */
.entry-content{ color:var(--ivory-dim); font-size:18px; }
.entry-content p{ margin-bottom:18px; }
.entry-content a{ color:var(--gold-bright); text-decoration:underline; }
.page-hero{ padding:calc(var(--bar-h) + 70px) 0 60px; }
.page-hero h1{ font-size:clamp(32px,5vw,54px); }
.post-list article{ padding:34px 0; border-bottom:1px solid var(--wine-line); }
.post-list h2 a{ color:var(--gold-bright); font-family:'Cinzel',serif; font-size:26px; }
.pagination-row{ display:flex; gap:20px; padding:40px 0 0; }

@media (max-width:980px){
  nav.desktop-nav, .nav-cta{ display:none; }
  .burger{ display:flex; }
  .philosophy, .studio-section, .booking{ grid-template-columns:1fr; }
  .styles-grid{ grid-template-columns:repeat(2,1fr); }
  .artists-grid{ grid-template-columns:1fr; }
  .process{ grid-template-columns:repeat(2,1fr); }
  .studio-visual{ width:100%; height:350px; aspect-ratio:auto; }
}
@media (max-width:560px){
  .styles-grid, .process, .field-row{ grid-template-columns:1fr; }
  section.pad{ padding:90px 0; }
  body{ font-size:17.5px; }
}

@media (prefers-reduced-motion: reduce){
  .medallion path, .medallion circle{ animation:none !important; stroke-dashoffset:0 !important; }
  .medallion .center-dot{ animation:none !important; opacity:1 !important; transform:scale(1) !important; }
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .scroll-cue .line{ animation:none !important; }
}

/* ---------------- HEADER CART ---------------- */
.header-cart{ position:relative; display:inline-flex; align-items:center; justify-content:center; color:var(--gold-bright); }
.header-cart-count{
  position:absolute; top:-8px; right:-10px; background:var(--gold); color:var(--ink);
  font-family:'Jost',sans-serif; font-size:10px; font-weight:600; border-radius:50%;
  width:16px; height:16px; display:flex; align-items:center; justify-content:center;
}

/* ---------------- PORTFOLIO ---------------- */
.portfolio-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:3px; }
.portfolio-grid-full{ margin-top:34px; }
.portfolio-item{
  position:relative; display:block; background:var(--wine-deep); overflow:hidden; border-radius:5px;
  aspect-ratio:1/1; width:100%; min-width:0; min-height:0;
}
.portfolio-item img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:5px; transition:transform .6s var(--ease); }
.portfolio-item:hover img{ transform:scale(1.06); }
.portfolio-placeholder{ width:100%; height:100%; background:linear-gradient(160deg, var(--wine), var(--wine-deep)); }
.portfolio-caption{
  position:absolute; left:0; right:0; bottom:0; padding:18px 20px;
  background:linear-gradient(0deg, rgba(11,3,4,0.88), transparent);
  display:flex; flex-direction:column; gap:2px; opacity:0; transform:translateY(8px);
  transition: opacity .35s var(--ease), transform .35s var(--ease);
}
.portfolio-item:hover .portfolio-caption{ opacity:1; transform:none; }
.portfolio-caption strong{ font-family:'Cinzel',serif; font-size:16px; color:var(--ivory); }
.portfolio-caption em{ font-family:'Jost',sans-serif; font-style:normal; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-bright); }
.portfolio-more{ text-align:center; margin-top:44px; }

.portfolio-filters{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.filter-btn{
  font-family:'Jost',sans-serif; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  background:transparent; border:1px solid var(--wine-line); color:var(--ivory-dim);
  padding:9px 18px; cursor:pointer; transition:all .3s ease;
}
.filter-btn:hover{ border-color:var(--gold-dim); color:var(--gold-bright); }
.filter-btn.active{ background:var(--gold); border-color:var(--gold); color:var(--ink); }

.portfolio-single{ display:grid; grid-template-columns:380px 1fr; gap:60px; align-items:start; padding-top:calc(var(--bar-h) + 40px); }
.portfolio-single-media{ max-width:380px; }
.portfolio-single-media img{ width:100%; max-height:460px; aspect-ratio:4/5; object-fit:cover; border:1px solid var(--wine-line); border-radius:5px; }
.portfolio-single-info dl{ display:grid; grid-template-columns:auto 1fr; gap:12px 24px; margin:10px 0 0; }
.portfolio-single-info dt{ font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); }
.portfolio-single-info dd{ color:var(--ivory-dim); }

/* ---------------- SHOP PREVIEW (WooCommerce) ---------------- */
.shop-preview-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; }
.shop-preview-card{ background:var(--wine); padding:30px; text-align:center; border-radius:5px; }
.shop-preview-card img{ aspect-ratio:1/1; object-fit:cover; margin:0 auto 18px; border:1px solid var(--wine-line); border-radius:5px; }
.shop-preview-card h3{ font-size:17px; margin-bottom:10px; }
.shop-preview-price{ display:block; color:var(--gold-bright); font-family:'Jost',sans-serif; font-size:15px; margin-bottom:16px; }
.shop-preview-card .button{
  font-family:'Jost',sans-serif; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  border:none; color:var(--gold-bright); background:transparent; padding:12px 22px; display:inline-block;
}
.shop-preview-card .button:hover{ background:none; transform:none; }

/* ---------------- WOOCOMMERCE (shop, product, cart, checkout, my account) ---------------- */
.woocommerce-page-pad{ padding-top:40px !important; }
.woocommerce ul.products{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--wine-line); list-style:none; }
.woocommerce ul.products li.product{ background:var(--wine-deep); padding:30px; text-align:center; list-style:none; }
.woocommerce ul.products li.product img{ border:1px solid var(--wine-line); margin-bottom:16px; }
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:'Cinzel',serif; font-size:17px; color:var(--ivory); }
.woocommerce ul.products li.product .price{ color:var(--gold-bright); font-family:'Jost',sans-serif; }
.woocommerce span.onsale{ background:var(--gold); color:var(--ink); font-family:'Jost',sans-serif; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce-page a.button {
  font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  background:var(--gold); color:var(--ink); border:1px solid var(--gold); border-radius:0; padding:14px 26px;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover{
  background:var(--gold-bright); border-color:var(--gold-bright); color:var(--ink);
}
.woocommerce div.product p.price, .woocommerce div.product span.price{ color:var(--gold-bright); font-size:24px; }
.woocommerce-message, .woocommerce-info{ border-top-color:var(--gold) !important; background:var(--wine); color:var(--ivory); }
.woocommerce-error{ border-top-color:#a8443f !important; background:var(--wine); color:var(--ivory); }
.woocommerce-message .button, .woocommerce-info .button{ float:none; margin-top:10px; display:inline-block; }
.woocommerce table.shop_table{ border:1px solid var(--wine-line); color:var(--ivory-dim); font-size:16.5px; }
.woocommerce table.shop_table th{ color:var(--gold); font-family:'Jost',sans-serif; text-transform:uppercase; font-size:12.5px; letter-spacing:.1em; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th{ padding:16px 14px; font-size:16.5px; }
.woocommerce table.shop_table td a{ color:var(--gold-bright); font-size:16.5px; }
.woocommerce td.product-name, .woocommerce td.product-name a{ font-size:17px; }
.woocommerce .quantity .qty{ font-size:16px; padding:8px; height:auto; }
.woocommerce-cart table.cart td.actions .coupon .input-text{ font-size:16px; padding:10px; }
.woocommerce .cart-collaterals .cart_totals table th,
.woocommerce .cart-collaterals .cart_totals table td{ font-size:16.5px; padding:12px 10px; }
.woocommerce .cart-collaterals .cart_totals .order-total .amount{ color:var(--gold-bright); font-size:19px; }

.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea{
  background:var(--wine-deep) !important; border:1px solid var(--wine-line) !important; color:var(--ivory) !important; padding:12px; font-size:16px;
}
.woocommerce form .form-row label{ color:var(--ivory-dim); font-size:14.5px; }
.woocommerce-checkout .select2-container--default .select2-selection--single{
  background:var(--wine-deep) !important; border:1px solid var(--wine-line) !important; height:44px !important; border-radius:0;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{
  color:var(--ivory) !important; line-height:44px !important; padding-left:12px;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{ height:42px; }
.woocommerce-checkout .select2-dropdown{ background:var(--wine-deep) !important; border:1px solid var(--wine-line) !important; }
.woocommerce-checkout .select2-container--default .select2-results__option{ color:var(--ivory); }
.woocommerce-checkout .select2-container--default .select2-results__option--highlighted[aria-selected]{ background:var(--gold) !important; color:var(--ink) !important; }
.woocommerce-checkout .select2-search--dropdown .select2-search__field{ background:var(--wine-deep); color:var(--ivory); border:1px solid var(--wine-line); }
.woocommerce-checkout-review-order-table, .woocommerce-cart-form{ color:var(--ivory-dim); }
.woocommerce .star-rating{ color:var(--gold); }
.woocommerce nav.woocommerce-pagination ul{ border-color:var(--wine-line); }
.woocommerce nav.woocommerce-pagination ul li{ border-color:var(--wine-line); }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span{ color:var(--ivory-dim); }
.woocommerce nav.woocommerce-pagination ul li a:hover, .woocommerce nav.woocommerce-pagination ul li span.current{ background:var(--gold); color:var(--ink); }

/* Single product page: narrower, calmer reading width + rounded gallery image */
body.single-product .woocommerce-page-pad .container{ max-width:80%; width:80%; }
.woocommerce div.product div.images img,
.woocommerce-product-gallery__image img,
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper img{
  border-radius:5px;
}
.woocommerce div.product .single_add_to_cart_button,
.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button.button.alt{
  font-family:'Jost',sans-serif; font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  background:var(--gold) !important; color:var(--ink) !important; border:1px solid var(--gold) !important; border-radius:0;
  padding:14px 26px;
}
.woocommerce div.product .single_add_to_cart_button:hover,
.woocommerce div.product form.cart .button:hover{
  background:var(--gold-bright) !important; border-color:var(--gold-bright) !important; color:var(--ink) !important;
}

@media (max-width:980px){
  body.single-product .woocommerce-page-pad .container{ max-width:100%; width:auto; }
}

@media (max-width:980px){
  .portfolio-grid, .portfolio-grid-full, .shop-preview-grid, .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); }
  .portfolio-single{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .portfolio-grid, .portfolio-grid-full, .shop-preview-grid, .woocommerce ul.products{ grid-template-columns:1fr; }
}
