.pto-wrap{max-width:1120px;margin:30px auto;padding:0 18px}.pto-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.pto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:20px;margin:25px 0}.pto-product{border:1px solid #e8e0d6;border-radius:10px;padding:16px;text-align:center}.pto-product img{width:100%;height:170px;object-fit:contain}.pto-product h3{font-size:17px}.pto-price{font-weight:700}.pto-wrap button,.pto-link{background:#59412e;color:white;border:0;padding:10px 16px;border-radius:5px;cursor:pointer}.pto-search{display:flex;gap:10px}.pto-search input{flex:1;min-width:0;padding:10px}.pto-table{width:100%;border-collapse:collapse;margin:20px 0}.pto-table td,.pto-table th{padding:12px;border-bottom:1px solid #ddd;text-align:left}.pto-table input{width:75px}.pto-form{display:inline-block;margin:5px}.pto-note{margin-top:25px;padding:14px;background:#f7f3ed}.pto-notice{padding:10px;background:#e7f4e9}.pto-pages a{padding:8px}@media(max-width:600px){.pto-table td,.pto-table th{padding:6px;font-size:12px}.pto-heading{align-items:flex-start;flex-direction:column}}

/* Cabecera exclusiva del canal, sin alterar la cabecera de reservas en el resto de la web. */
body.pto-channel-page #masthead,body.pto-channel-page .site-header,body.pto-channel-page header#header,body.pto-channel-page .main-header{display:none!important}
.pto-channel-nav{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:17px 22px;margin:0 0 28px;background:#f7f2e9;border:1px solid #e7ddcf;border-radius:12px}
.pto-channel-nav .pto-brand{font-weight:800;font-size:23px;color:#463121;text-decoration:none;line-height:1.2}.pto-channel-nav .pto-brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:5px;color:#796b5b}
.pto-channel-nav nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.pto-channel-nav nav a{font-weight:650;text-decoration:none;color:#463121}.pto-channel-nav nav a:hover{text-decoration:underline}
.pto-empty{padding:26px;border:1px dashed #cdbfae;background:#fcfaf7;border-radius:10px;margin:20px 0}
@media(max-width:600px){.pto-channel-nav{padding:14px}.pto-channel-nav nav{gap:12px}.pto-channel-nav .pto-brand{font-size:20px}}

/* v0.3.1: plantilla exclusiva con cabecera corporativa inspirada en el canal HORECA. */
body.pto-standalone{margin:0;background:#fff;color:#171717;font-family:inherit;min-height:100vh}
.pto-hero{background:#eee8da;min-height:265px;position:relative}
.pto-hero-inner{max-width:1320px;margin:auto;min-height:265px;display:flex;align-items:center;justify-content:center;padding:20px 24px;position:relative}
.pto-hero-brand{display:flex;flex-direction:column;align-items:center;gap:13px;color:#171717;text-decoration:none!important;font-weight:800;font-size:25px;letter-spacing:1px}
.pto-header-logo{width:auto!important;max-width:330px!important;max-height:158px!important;object-fit:contain!important;height:auto!important}
.pto-header-logo-fallback{font-size:55px;font-family:cursive;font-style:italic;font-weight:500;letter-spacing:-2px}
.pto-hero-cta{position:absolute;right:22px;top:48px;border-radius:40px;padding:14px 32px;background:#8e8170;color:#fff!important;text-decoration:none!important;font-weight:700}
.pto-main-nav{border-bottom:1px solid #eee;background:#fff}
.pto-main-nav-inner{max-width:1120px;margin:auto;min-height:72px;padding:12px 18px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.pto-main-nav nav{display:flex;gap:26px;flex-wrap:wrap}
.pto-main-nav a{color:#171717;text-decoration:none;font-size:14px;font-weight:700}
.pto-main-nav a:hover{text-decoration:underline}
.pto-nav-greeting{font-size:14px;font-weight:600}
.pto-standalone-main{padding:42px 16px 85px;min-height:400px}
.pto-standalone .pto-wrap{max-width:1120px;margin:0 auto;padding:0}
.pto-standalone .pto-heading h2{font-size:36px}
@media(max-width:700px){.pto-hero,.pto-hero-inner{min-height:210px}.pto-hero-inner{padding:20px 15px 60px}.pto-header-logo{max-width:230px!important;max-height:110px!important}.pto-header-logo-fallback{font-size:37px}.pto-hero-brand{font-size:18px}.pto-hero-cta{top:auto;right:auto;bottom:12px;padding:9px 22px}.pto-main-nav-inner{flex-direction:column;gap:12px;padding:15px}.pto-main-nav nav{justify-content:center;gap:15px}.pto-standalone-main{padding-top:25px}.pto-standalone .pto-heading h2{font-size:28px}}

/* v0.3.2: tipografía corporativa en todo el canal online, sin afectar reservas/HORECA.
   La fuente Gotham Rounded debe estar cargada por el tema o por una licencia válida. */
html body.pto-channel-page,
html body.pto-channel-page *:not(.pto-header-logo-fallback):not(.pto-header-logo-fallback *),
html body.pto-standalone,
html body.pto-standalone *:not(.pto-header-logo-fallback):not(.pto-header-logo-fallback *) {
  font-family: "Gotham Rounded", sans-serif !important;
}
/* El logotipo gráfico mantiene su apariencia original. */

/* v0.3.3: tarjetas de producto sin marco, siguiendo la tienda de reservas.
   Solo afecta al catálogo online; los formularios siguen operando sobre la cesta PTO. */
html body.pto-standalone .pto-grid {
  grid-template-columns:repeat(4,minmax(0,1fr));
  column-gap:28px;row-gap:44px;align-items:start;
}
html body.pto-standalone .pto-grid .pto-product {
  border:0!important;border-radius:0!important;padding:0!important;
  background:transparent!important;box-shadow:none!important;text-align:center;
}
html body.pto-standalone .pto-product > a {display:block;text-decoration:none;}
html body.pto-standalone .pto-product img {
  display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;
  border:0;border-radius:0;box-shadow:none;
}
html body.pto-standalone .pto-product h3 {
  font-size:24px;line-height:25px;font-weight:500;color:#2c2a26;
  margin:22px 0;min-height:50px;
}
html body.pto-standalone .pto-product .pto-price {
  display:block;font-size:21px;line-height:27px;font-weight:500;
  color:#000;margin:22px 0;
}
html body.pto-standalone .pto-product .pto-form {margin:0;}
html body.pto-standalone .pto-product .pto-form button {
  background:#8b806f;color:#fff;border:0;border-radius:999px;
  padding:13px 24px;font-size:15px;font-weight:700;line-height:1;
  min-height:44px;box-shadow:none;transition:all .25s ease;
}
html body.pto-standalone .pto-product .pto-form button:hover {
  background:#7b705f;transform:translateY(-1px);
}
@media(max-width:900px){html body.pto-standalone .pto-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}}
@media(max-width:650px){
  html body.pto-standalone .pto-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
  html body.pto-standalone .pto-product h3{font-size:16px;line-height:25px;margin:0;min-height:42px;}
  html body.pto-standalone .pto-product .pto-price{font-size:18px;margin:12px 0;}
  html body.pto-standalone .pto-product .pto-form button{font-size:11px;padding:5px 17px;min-height:32px;}
}
/* v0.3.4: ficha exclusiva de producto para Tienda Online */
.pto-breadcrumb{font-size:13px;margin-bottom:32px;color:#827665}.pto-breadcrumb a{color:#59412e;text-decoration:none}
.pto-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:65px;align-items:start}
.pto-detail-image img{width:100%;max-height:550px;object-fit:contain;height:auto}
.pto-detail-info h1{font-size:36px;line-height:1.15;margin:0 0 22px;font-weight:700}
.pto-detail-price{font-size:25px;font-weight:700;margin:0 0 22px}.pto-detail-description{font-size:15px;line-height:1.65}
.pto-detail-buy{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:24px 0}
.pto-detail-buy input[type=number]{width:105px;padding:12px;border:1px solid #d5cabb;border-radius:0}
.pto-detail-buy select{width:100%;max-width:420px;padding:13px;border:1px solid #d5cabb;background:#fff}
.pto-detail-buy button,.pto-select-options{display:inline-block!important;background:#8b806f!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:14px 26px!important;font-weight:700!important;text-decoration:none!important;cursor:pointer}
.pto-back-link{display:inline-block;margin-top:18px;color:#59412e;text-decoration:underline}.pto-detail-long{margin-top:55px;max-width:850px;line-height:1.7}
@media(max-width:700px){.pto-detail-grid{grid-template-columns:1fr;gap:20px}.pto-detail-info h1{font-size:28px}.pto-detail-long{margin-top:30px}}

/* v0.3.5: checkout integrado en la plantilla propia de Tienda Online */
.pto-checkout{max-width:1120px;margin:0 auto;padding:30px 20px 60px}
.pto-checkout .woocommerce form .form-row input.input-text,.pto-checkout .woocommerce form .form-row textarea,.pto-checkout .woocommerce form .form-row select{border:1px solid #d9d1c4;border-radius:3px;padding:12px;box-sizing:border-box}
.pto-checkout .woocommerce #payment{background:#f5f0e8}
.pto-checkout .woocommerce #payment #place_order{background:#715a41;color:white}
@media(max-width:767px){.pto-checkout{padding:18px 14px 40px}}

/* Native Angel Puchi product information design (scoped to online detail). */
.pto-detail .puchi-product-info-full {
    position: relative;
    left: 50%;
    right: auto;
    width: 100vw;
    max-width: none;
    margin: 65px 0 8% -50vw;
    background: #766c5e;
    color: #fff;
    padding: 70px 0 80px;
    clear: both;
    box-sizing: border-box;
}

.pto-detail .puchi-product-info-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
    box-sizing: border-box;
}

.pto-detail .puchi-product-info-title {
    font-size: 28px;
    font-family: "Cormorant", Sans-serif;
    line-height: 1.2;
    font-weight: 500;
    color: #fff;
    margin: 0 0 55px;
}

.pto-detail .puchi-product-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 56px 70px;
}

.pto-detail .puchi-product-info-item {
    min-width: 0;
}

.pto-detail .puchi-product-info-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255,255,255,0.45);
    margin-bottom: 28px;
}

.pto-detail .puchi-product-info-head h3 {
    margin: 0;
    font-family: "Gotham Rounded", "Nunito", sans-serif;
    font-size: 22px;
    line-height: 1.25;
    font-weight: 700;
    color: #fff;
}

.pto-detail .puchi-product-info-plus {
    font-family: "Gotham Rounded", "Nunito", sans-serif;
    font-size: 22px;
    line-height: 1;
    font-weight: 700;
    color: #fff;
    flex: 0 0 auto;
}

.pto-detail .puchi-product-info-content,
.pto-detail .puchi-product-info-content p,
.pto-detail .puchi-product-info-content li {
    font-family: "Gotham Rounded", "Nunito", sans-serif;
    font-size: 17px;
    line-height: 1.35;
    font-weight: 300;
    color: #fff;
}

.pto-detail .puchi-product-info-content p {
    margin: 0 0 14px;
}

.pto-detail .puchi-product-info-content p:last-child {
    margin-bottom: 0;
}

.pto-detail .puchi-product-info-content ul,
.pto-detail .puchi-product-info-content ol {
    margin: 0;
    padding-left: 20px;
}

@media (max-width: 921px) {
    .pto-detail .puchi-product-info-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .pto-detail .puchi-product-info-title {
        margin-bottom: 36px;
    }
}
@media (max-width: 768px) {
  .pto-detail .puchi-product-info-inner { padding: 0 20px; }
  .pto-detail .puchi-product-info-full { padding: 48px 0 56px; }
}

/* v0.3.10 - footer exclusivo de Tienda Online */
body.pto-standalone { min-height:100vh; display:flex; flex-direction:column; }
body.pto-standalone .pto-standalone-main { flex:1 0 auto; width:100%; }
.pto-footer { margin-top:54px; background:#fff; color:#766f66; font-family:"Gotham Rounded","Nunito",sans-serif; font-size:13px; }
.pto-footer-inner { max-width:1200px; margin:0 auto; padding:24px 20px 30px; border-top:1px solid #e8e5e1; }
.pto-footer-top,.pto-footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.pto-footer-top { padding-bottom:20px; }
.pto-footer-top strong { display:block; font-weight:600; }
.pto-footer-top span { display:block; margin-top:4px; }
.pto-footer-secure { white-space:nowrap; font-weight:600; }
.pto-footer-bottom { border-top:1px solid #f0eeeb; padding-top:18px; }
.pto-footer-bottom nav { display:flex; flex-wrap:wrap; gap:12px 22px; }
.pto-footer a { color:inherit; text-decoration:none; }
.pto-footer a:hover { text-decoration:underline; }
.pto-footer-return { white-space:nowrap; font-weight:600; }
@media(max-width:650px) {
 .pto-footer-top,.pto-footer-bottom { align-items:flex-start; flex-direction:column; gap:16px; }
 .pto-footer-bottom nav { flex-direction:column; gap:12px; }
}

/* v0.3.11: footer always fills available width */
.pto-footer { width:100%; box-sizing:border-box; }
